-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcolorbox.min.js
8 lines (8 loc) · 247 KB
/
colorbox.min.js
1
2
3
4
5
6
7
8
function initColorbox(){var e={},t;return e["/camera/topcamera.js"]=function(e,t,n){function l(e,t){return e.viewMatrix().tz-t.viewMatrix().tz}var r=e("../lib/colortraits").Klass,i=e("../lib/colortraits").Trait,s=e("../lib/colortraits").compose,o=e("../lib/transformable").TransformableTrait,u=e("../lib/timestamp").TimeStamper,a=e("../lib/geometry"),f=[],c=s([o],{__init:function(){this.subTraits(0).__init(u.create())},getPstnRelativeToMatrix:function(e,t){var n=a.matrixInvert(a.matrixMultiply(this.matrix(),t));return a.pointApplyMatrix(e,n)},compareMatrix:function(e,t){return e.tz==undefined||t.tz==undefined?0:t.tz-e.tz},draw:function(e,t){var n=e.getContext("2d"),r=this.matrix(),i=a.isIdentityMatrix(r);n.save(),i||n.setTransform(r.a,r.b,r.c,r.d,r.tx,r.ty),f.length=0;var s=t.emitDisplayObjects(f),o=f.length;this.updateViewMatrix(f),s!==null&&(this.dirtyRectToBounding(s),this.filterDisplayObjects(s),f.length!=0&&(n.beginPath(),n.rect(s.x,s.y,s.width,s.height),n.closePath(),n.clip(),n.clearRect(s.x,s.y,s.width,s.height)),t.clearminBoundingDirtyRect()),f.sort(l);for(var u=0,o=f.length;u<o;++u)f[u].draw(e);n.restore(),e.sketchpad().requestPaint&&e.sketchpad().requestPaint()},getGameToViewMatrix:function(){return this.matrix()},updateViewMatrix:function(e){var t=this.matrix(),n=a.isIdentityMatrix(t),r=e.length,i,s;for(var o=0;o<r;++o)i=e[o],n?s=a.matrixMultiply(i.worldMatrix(),i.gprim().matrix()):(s=a.matrixMultiply(i.worldMatrix(),i.gprim().matrix()),a.matrixMultiplyBy(s,t)),e[o].setviewMatrix(s)},filterDisplayObjects:function(e){if(e.x==undefined||e.y==undefined||e.width==undefined||e.height==undefined){f.length=0;return}var t=[];for(var n=0,r=f.length;n<r;++n){var i=f[n].gprim().bbox(),s=f[n].worldMatrix(),o=this.matrix(),u=a.matrixMultiply(o,s);a.rectApplyByMatrixToBoundRect(i,u),a.boundRectOverlap(i,e)&&t.push(f[n])}f=t},dirtyRectToBounding:function(e){var t=this.matrix(),n=a.isIdentityMatrix(t);n||a.rectApplyByMatrixToBoundRect(e,t)}},[]),h=r.extend({initialize:function(){this.subTraits(0).__init()}},[],[c]);n({TopCameraTrait:c,TopCamera:h})},e["/selection/selectionutil.js"]=function(e,t,n){function r(e,t,n,i){if(n<=0)return[];var s=e.children();for(var o=0;o<s.length;o++){if(i)return t?[s[0]]:[];if(t(s[o]))return[s[o]];var u=r(s[o],t,n-1);if(u.length===1)return u;continue}return[]}function i(e,t,n,r){var s=[];if(n<=0)return s;var o=e.children();for(var u=0;u<o.length;u++){r?t&&s.push(o[u]):t(o[u])&&s.push(o[u]);var a=i(o[u],t,n-1,r);s.concat(a)}return s}n({findFirst:r,findAll:i})},e["/sprites/composite.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/compositegprim").CompositeTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("lineWidth"),u.grant("lineWidth")],[s("gprims"),u.grant("gprims")],[s("strokeStyle"),u.grant("strokeStyle")],[s("fillStyle"),u.grant("fillStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineDash"])),[u]);n(a)},e["/stage.js"]=function(e,t,n){var r=e("world").WorldTrait,i=e("./lib/util").objectDotCreate,s=e("./lib/colortraits").Klass,o=e("./lib/debug").assert,u=s.extend({initialize:function(e){var t=i(e);t.bubbling=!0,t.autorepaint=!0;var n=e.container;if(n){var r=e.width?e.width:n.offsetWidth?n.offsetWidth:0,s=e.height?e.height:n.offsetHeight?n.offsetHeight:0;!r||!s?o(!1,"bad container width height"):(t.width=r,t.height=s)}this.execProto("initialize",t),this.subTraits(0).__init(t)}},{},[r]);n({Stage:u})},e["/thirdlib/rx/rx.time.js"]=function(e,t,n){(function(t,n){var r=typeof exports=="object"&&exports,i=typeof module=="object"&&module&&module.exports==r&&module,s=typeof global=="object"&&global;s.global===s&&(window=s),typeof define=="function"&&define.amd?define(["rx","exports"],function(e,r){return t.Rx=n(t,r,e),t.Rx}):typeof module=="object"&&module&&module.exports===r?module.exports=n(t,module.exports,e("./rx")):t.Rx=n(t,{},t.Rx)})(this,function(e,t,n,r){function w(e,t){return new o(function(n){return t.scheduleWithAbsolute(e,function(){n.onNext(0),n.onCompleted()})})}function E(e,t,n){var r=b(t);return new o(function(t){var i=0,s=e;return n.scheduleRecursiveWithAbsolute(s,function(e){var o;r>0&&(o=n.now(),s+=r,s<=o&&(s=o+r)),t.onNext(i++),e(s)})})}function S(e,t){var n=b(e);return new o(function(e){return t.scheduleWithRelative(n,function(){e.onNext(0),e.onCompleted()})})}function x(e,t,n){return e===t?new o(function(e){return n.schedulePeriodicWithState(0,t,function(t){return e.onNext(t),t+1})}):u(function(){return E(n.now()+e,t,n)})}function C(e,t){var n=this;return new o(function(r){var i=!1,s=new p,o=null,u=[],a=!1,f;return f=n.materialize().timestamp(t).subscribe(function(n){var f,l;n.value.kind==="E"?(u=[],u.push(n),o=n.value.exception,l=!a):(u.push({value:n.value,timestamp:n.timestamp+e}),l=!i,i=!0),l&&(o!==null?r.onError(o):(f=new h,s.disposable(f),f.disposable(t.scheduleRecursiveWithRelative(e,function(e){var n,s,f,l;if(o!==null)return;a=!0;do f=null,u.length>0&&u[0].timestamp-t.now()<=0&&(f=u.shift().value),f!==null&&f.accept(r);while(f!==null);l=!1,s=0,u.length>0?(l=!0,s=Math.max(0,u[0].timestamp-t.now())):i=!1,n=o,a=!1,n!==null?r.onError(n):l&&e(s)}))))}),new d(f,s)})}function k(e,t){var n=this;return u(function(){var r=e-t.now();return C.call(n,r,t)})}function L(e,t){return new o(function(n){function o(){s&&(s=!1,n.onNext(i)),r&&n.onCompleted()}var r,i,s;return new d(e.subscribe(function(e){s=!0,i=e},n.onError.bind(n),function(){r=!0}),t.subscribe(o,n.onError.bind(n),o))})}var i=n.Observable,s=i.prototype,o=n.Internals.AnonymousObservable,u=i.defer,a=i.empty,f=i.throwException,l=i.fromArray,c=n.Scheduler.timeout,h=n.SingleAssignmentDisposable,p=n.SerialDisposable,d=n.CompositeDisposable,v=n.RefCountDisposable,m=n.Subject,g=n.Internals.BinaryObserver,y=n.Internals.addRef,b=n.Scheduler.normalize,T=i.interval=function(e,t){return t||(t=c),x(e,e,t)},N=i.timer=function(e,t,n){var i;return n||(n=c),t!==r&&typeof t=="number"?i=t:t!==r&&typeof t=="object"&&(n=t),e instanceof Date&&i===r?w(e.getTime(),n):e instanceof Date&&i!==r?(i=t,E(e.getTime(),i,n)):i===r?S(e,n):x(e,i,n)};return s.delay=function(e,t){return t||(t=c),e instanceof Date?k.call(this,e.getTime(),t):C.call(this,e,t)},s.throttle=function(e,t){t||(t=c);var n=this;return new o(function(r){var i=new p,s=!1,o=0,u,a=null;return u=n.subscribe(function(n){var u,f;s=!0,a=n,o++,u=o,f=new h,i.disposable(f),f.disposable(t.scheduleWithRelative(e,function(){s&&o===u&&r.onNext(a),s=!1}))},function(e){i.dispose(),r.onError(e),s=!1,o++},function(){i.dispose(),s&&r.onNext(a),r.onCompleted(),s=!1,o++}),new d(u,i)})},s.windowWithTime=function(e,t,n){var i=this,s;return t===r&&(s=e),n===r&&(n=c),typeof t=="number"?s=t:typeof t=="object"&&(s=e,n=t),new o(function(t){var r,o,u=s,a=e,f=[],l,c=new p,g=0;return o=new d(c),l=new v(o),r=function(){var e,i,o,p,d;o=new h,c.disposable(o),i=!1,e=!1,a===u?(i=!0,e=!0):a<u?i=!0:e=!0,p=i?a:u,d=p-g,g=p,i&&(a+=s),e&&(u+=s),o.disposable(n.scheduleWithRelative(d,function(){var n;e&&(n=new m,f.push(n),t.onNext(y(n,l))),i&&(n=f.shift(),n.onCompleted()),r()}))},f.push(new m),t.onNext(y(f[0],l)),r(),o.add(i.subscribe(function(e){var t,n;for(t=0;t<f.length;t++)n=f[t],n.onNext(e)},function(e){var n,r;for(n=0;n<f.length;n++)r=f[n],r.onError(e);t.onError(e)},function(){var e,n;for(e=0;e<f.length;e++)n=f[e],n.onCompleted();t.onCompleted()})),l})},s.windowWithTimeOrCount=function(e,t,n){var r=this;return n||(n=c),new o(function(i){var s,o,u=0,a,f,l=new p,c=0;return o=new d(l),a=new v(o),s=function(t){var r=new h;l.disposable(r),r.disposable(n.scheduleWithRelative(e,function(){var e;if(t!==c)return;u=0,e=++c,f.onCompleted(),f=new m,i.onNext(y(f,a)),s(e)}))},f=new m,i.onNext(y(f,a)),s(0),o.add(r.subscribe(function(e){var n=0,r=!1;f.onNext(e),u++,u===t&&(r=!0,u=0,n=++c,f.onCompleted(),f=new m,i.onNext(y(f,a))),r&&s(n)},function(e){f.onError(e),i.onError(e)},function(){f.onCompleted(),i.onCompleted()})),a})},s.bufferWithTime=function(e,t,n){var i;return t===r&&(i=e),n||(n=c),typeof t=="number"?i=t:typeof t=="object"&&(i=e,n=t),this.windowWithTime(e,i,n).selectMany(function(e){return e.toArray()})},s.bufferWithTimeOrCount=function(e,t,n){return n||(n=c),this.windowWithTimeOrCount(e,t,n).selectMany(function(e){return e.toArray()})},s.timeInterval=function(e){var t=this;return e||(e=c),u(function(){var n=e.now();return t.select(function(t){var r=e.now(),i=r-n;return n=r,{value:t,interval:i}})})},s.timestamp=function(e){return e||(e=c),this.select(function(t){return{value:t,timestamp:e.now()}})},s.sample=function(e,t){return t||(t=c),typeof e=="number"?L(this,T(e,t)):L(this,e)},s.timeout=function(e,t,n){var r,i=this;return t||(t=f(new Error("Timeout"))),n||(n=c),e instanceof Date?r=function(e,t){n.scheduleWithAbsolute(e,t)}:r=function(e,t){n.scheduleWithRelative(e,t)},new o(function(n){var s,o=0,u=new h,a=new p,f=!1,l=new p;return a.disposable(u),s=function(){var i=o;l.disposable(r(e,function(){f=o===i;var e=f;e&&a.disposable(t.subscribe(n))}))},s(),u.disposable(i.subscribe(function(e){var t=!f;t&&(o++,n.onNext(e),s())},function(e){var t=!f;t&&(o++,n.onError(e))},function(){var e=!f;e&&(o++,n.onCompleted())})),new d(a,l)})},i.generateWithAbsoluteTime=function(e,t,n,r,i,s){return s||(s=c),new o(function(o){var u=!0,a=!1,f,l=e,c;return s.scheduleRecursiveWithAbsolute(s.now(),function(e){a&&o.onNext(f);try{u?u=!1:l=n(l),a=t(l),a&&(f=r(l),c=i(l))}catch(s){o.onError(s);return}a?e(c):o.onCompleted()})})},i.generateWithRelativeTime=function(e,t,n,r,i,s){return s||(s=c),new o(function(o){var u=!0,a=!1,f,l=e,c;return s.scheduleRecursiveWithRelative(0,function(e){a&&o.onNext(f);try{u?u=!1:l=n(l),a=t(l),a&&(f=r(l),c=i(l))}catch(s){o.onError(s);return}a?e(c):o.onCompleted()})})},s.delaySubscription=function(e,t){return t||(t=c),this.delayWithSelector(N(e,t),function(){return a()})},s.delayWithSelector=function(e,t){var n=this,r,i;return typeof e=="function"?i=e:(r=e,i=t),new o(function(e){var t=new d,s=!1,o=function(){s&&t.length===0&&e.onCompleted()},u=new p,a=function(){u.setDisposable(n.subscribe(function(n){var r;try{r=i(n)}catch(s){e.onError(s);return}var u=new h;t.add(u),u.setDisposable(r.subscribe(function(){e.onNext(n),t.remove(u),o()},e.onError.bind(e),function(){e.onNext(n),t.remove(u),o()}))},e.onError.bind(e),function(){s=!0,u.dispose(),o()}))};return r?u.setDisposable(r.subscribe(function(){a()},e.onError.bind(e),function(){a()})):a(),new d(u,t)})},s.timeoutWithSelector=function(e,t,n){e||(e=observableNever()),n||(n=f(new Error("Timeout")));var r=this;return new o(function(i){var s=new p,o=new p,u=new h;s.setDisposable(u);var a=0,f=!1,l=function(e){var t=a,r=function(){return a===t},u=new h;o.setDisposable(u),u.setDisposable(e.subscribe(function(){r()&&s.setDisposable(n.subscribe(i)),u.dispose()},function(e){r()&&i.onError(e)},function(){r()&&s.setDisposable(n.subscribe(i))}))};l(e);var c=function(){var e=!f;return e&&a++,e};return u.setDisposable(r.subscribe(function(e){if(c()){i.onNext(e);var n;try{n=t(e)}catch(r){i.onError(r);return}l(n)}},function(e){c()&&i.onError(e)},function(){c()&&i.onCompleted()})),new d(s,o)})},s.throttleWithSelector=function(e){var t=this;return new o(function(n){var r,i=!1,s=new p,o=0,u=t.subscribe(function(t){var u;try{u=e(t)}catch(a){n.onError(a);return}i=!0,r=t,o++;var f=o,l=new h;s.setDisposable(l),l.setDisposable(u.subscribe(function(){i&&o===f&&n.onNext(r),i=!1,l.dispose()},n.onError.bind(n),function(){i&&o===f&&n.onNext(r),i=!1,l.dispose()}))},function(e){s.dispose(),n.onError(e),i=!1,o++},function(){s.dispose(),i&&n.onNext(r),n.onCompleted(),i=!1,o++});return new d(u,s)})},s.skipLastWithTime=function(e,t){t||(t=c);var n=this;return new o(function(r){var i=[];return n.subscribe(function(n){var s=t.now();i.push({interval:s,value:n});while(i.length>0&&s-i[0].interval>=e)r.onNext(i.shift().value)},r.onError.bind(r),function(){var n=t.now();while(i.length>0&&n-i[0].interval>=e)r.onNext(i.shift().value);r.onCompleted()})})},s.takeLastWithTime=function(e,t,n){return this.takeLastBufferWithTime(e,t).selectMany(function(e){return l(e,n)})},s.takeLastBufferWithTime=function(e,t){var n=this;return t||(t=c),new o(function(r){var i=[];return n.subscribe(function(n){var r=t.now();i.push({interval:r,value:n});while(i.length>0&&r-i[0].interval>=e)i.shift()},r.onError.bind(r),function(){var n=t.now(),s=[];while(i.length>0){var o=i.shift();n-o.interval<=e&&s.push(o.value)}r.onNext(s),r.onCompleted()})})},s.takeWithTime=function(e,t){var n=this;return t||(t=c),new o(function(r){var i=t.scheduleWithRelative(e,function(){r.onCompleted()});return new d(i,n.subscribe(r))})},s.skipWithTime=function(e,t){var n=this;return t||(t=c),new o(function(r){var i=!1,s=t.scheduleWithRelative(e,function(){i=!0}),o=n.subscribe(function(e){i&&r.onNext(e)},r.onError.bind(r),r.onCompleted.bind(r));return new d(s,o)})},s.skipUntilWithTime=function(e,t){t||(t=c);var n=this;return new o(function(r){var i=!1,s=t.scheduleWithAbsolute(e,function(){i=!0}),o=n.subscribe(function(e){i&&r.onNext(e)},r.onError.bind(r),r.onCompleted.bind(r));return new d(s,o)})},s.takeUntilWithTime=function(e,t){t||(t=c);var n=this;return new o(function(r){return new d(t.scheduleWithAbsolute(e,function(){r.onCompleted()}),n.subscribe(r))})},n})},e["/sprites/container.js"]=function(e,t,n){var r=e("../treeactor").TreeActor,i=r.extend({initialize:function(e){this.execProto("initialize"),e!=undefined?this.setreceiveBubble(e):this.setreceiveBubble(!1)},emitDisplayObjects:function(){},emitInteractiveObjects:function(){},emitInteractiveObjects:function(){},enableAutoRepaint:function(){}},["receiveBubble"]);n(i)},e["/lib/winding.js"]=function(e,t,n){function o(e,t,n){var r=e[0].x,o=e[0].y,u=e[1].x,a=e[1].y,f=a-o,l=1;if(o>a){var c=o;o=a,a=c,l=-1}if(n<o||n>=a)return 0;var h=i(u-r,n-e[0].y)-i(f,t-e[0].x);return s(h)==l&&(l=0),l}function T(e,t,n){var r=0;if(!u(e[0].y,e[1].y,e[2].y)){var i=[{},{},{},{},{}];r=x(e,i),e=i}var s=v(e,t,n);return r>0&&(e.splice(0,2),s+=v(e,t,n)),s}function q(e,t,n){var r=[],i=_(e,r),s=0;for(var o=0;o<=i;++o)s+=I(r,t,n),r.splice(0,3);return s}function X(e,t,n){return W(e,t,n)}function $(e,t,n){var r=e[0].point(),i=0,s=[],o,u,a,f;for(var l=1;l<e.length;l++){u=e[l],a=u.type(),f=V[a];switch(a){case"A":s=[u.center().x,u.center().y,u.rx(),u.ry(),u.xaxisrotate(),u.startAngle(),u.endAngle(),!u.sweepflag()];break;case"Z":s=[r,e[0].point()];break;default:o=u.bboxPoint(),s=[r].concat(o)}i+=f(s,t,n),r=u.point()}return!!i}var r=e("./geometry"),i=function(e,t){return e*t},s=function(e){return e<0?-1:e>0?1:0},u=function(e,t,n){return e==t?!0:e<t?t<=n:t>=n},a=function(e,t){return e/t},f=function(e){return e!=e},l=function(e){return Math.sqrt(e)},c=function(e,t){return(e+t)/2},h=function(e,t,n){return e*t+n},p=function(e,t,n){e<0&&(e=-e,t=-t);if(t==0||e==0||e>=t)return 0;var r=a(e,t);return f(r)?0:r<=0||r>=1?0:(n.push(r),1)},d=function(e,t,n,r){if(e==0)return p(-n,t,r);var i=t*t-4*e*n;if(i<0||f(i))return 0;i=l(i);var s=0,o=t<0?-(t-i)/2:-(t+i)/2;s+=p(o,e,r),s+=p(n,o,r);if(s==2)if(r[0]>r[1]){var u=r[0];r[0]=r[1],r[1]=u}else r[0]==r[1]&&(s-=1);return s},v=function(e,t,n){var r=e[0].y,i=e[2].y,s=1;if(r>i){var o=r;r=i,i=o,s=-1}if(n<r||n>=i)return 0;var u=[],a=d(e[0].y-2*e[1].y+e[2].y,2*(e[1].y-e[0].y),e[0].y-n,u),f;if(0==a){var l=c(r,i);f=n<l?e[1-s].x:e[s+1].x}else{var p=u[0],v=e[0].x,m=e[2].x-2*e[1].x+v,g=2*(e[1].x-v);f=h(h(m,p,g),p,v)}return s==1&&t==e[2].x&&n==e[2].y||s==-1&&t==e[0].x&&n==e[0].y?0:f<=t?s:0},m=function(e,t,n){var r=e-t,i=t-n;return r<0&&(i=-i),r==0||i<0},g=function(e,t,n){return e+(t-e)*n},y=function(e,t,n){var r=g(e[0].x,e[1].x,n),i=g(e[1].x,e[2].x,n);t[0].x=e[0].x,t[1].x=r,t[2].x=g(r,i,n),t[3].x=i,t[4].x=e[2].x},b=function(e,t,n){var r=g(e[0].y,e[1].y,n),i=g(e[1].y,e[2].y,n);t[0].y=e[0].y,t[1].y=r,t[2].y=g(r,i,n),t[3].y=i,t[4].y=e[2].y},w=function(e,t,n){y(e,t,n),b(e,t,n)},E=function(e){e[1].y=e[3].y=e[2].y},S=function(e){return Math.abs(e)},x=function(e,t){var n=e[0].y,r=e[1].y,i=e[2].y;if(m(n,r,i)){var s=[];if(p(n-r,n-r-r+i,s))return w(e,t,s[0]),E(t),1;r=S(n-r)<S(r-i)?n:i}return t[0].x=e[0].x,t[0].y=n,t[1].x=e[1].x,t[1].y=r,t[2].x=e[2].x,t[2].y=i,0},N=function(e,t,n,r,i){var s=r-e+3*(t-n),o=2*(e-t-t+n),u=t-e;return d(s,o,u,i)},C=function(e,t,n){var r=g(e[0].x,e[1].x,n),i=g(e[1].x,e[2].x,n),s=g(e[2].x,e[3].x,n),o=g(r,i,n),u=g(i,s,n),a=g(o,u,n);t[0].x=e[0].x,t[1].x=r,t[2].x=o,t[3].x=a,t[4].x=u,t[5].x=s,t[6].x=e[3].x},k=function(e,t,n){var r=g(e[0].y,e[1].y,n),i=g(e[1].y,e[2].y,n),s=g(e[2].y,e[3].y,n),o=g(r,i,n),u=g(i,s,n),a=g(o,u,n);t[0].y=e[0].y,t[1].y=r,t[2].y=o,t[3].y=a,t[4].y=u,t[5].y=s,t[6].y=e[3].y},L=function(e,t,n){if(!(n>0&&n<1))debugger;C(e,t,n),k(e,t,n)},A=function(e){e[2].y=e[4].y=e[3].y},O=function(e){e[5].y=e[7].y=e[6].y},M=function(e,t,n,r){if(t)if(r==0)for(var i=0,s=e.length;i<s;i++)t[i]=e[i];else{var o=[];o[0]=n[0];var u=[];for(var i=0;i<r;i++){var a=[{},{},{},{},{},{},{}];L(e,a,o[0]);for(var f=0,s=a.length;f<s;f++)t[i*3+f]=a[f];if(i==r-1)break;u=a.slice(3,7),e=u,a=a.splice(0,3),o=[];if(!p(n[i+1]-n[i],1-n[i],o)){t[7]=t[8]=t[9]=e[3];break}}}},_=function(e,t){var n=[],r=N(e[0].y,e[1].y,e[2].y,e[3].y,n);return M(e,t,n,r),t&&r>0&&(A(t),r==2&&O(t)),r},D=function(e,t){return e>t?e:t},P=function(e,t){return e<t?e:t},H=function(e,t,n){var r,i;r=i=e[0].x;for(var s=1;s<4;++s)r=P(r,e[s].x),i=D(i,e[s].x);t[0]=r,n[0]=i},B=function(e,t,n,r,i){return h(h(h(e,i,t),i,n),i,r)},j=function(e,t,n,r,i,s){!(e<i&&i<r);var o=e-i,u=r+3*(t-n)-e,a=3*(n-t-t+e),f=3*(t-e),l=1/4096,h=0,p=1,d,v;for(v=0;v<16;v++){d=c(h,p);var m=B(u,a,f,o,d);m<0?(h=d,m=-m):p=d;if(m<l)break}s[0]=d},F=function(e,t,n,r,i){var s=r+3*(t-n)-e,o=3*(n-t-t+e),u=3*(t-e),a=e;return B(s,o,u,a,i)},I=function(e,t,n){var r=e[0],i=e[3],s=[],o=1;e[0].y>e[3].y&&(s[0]=e[3],s[1]=e[2],s[2]=e[1],s[3]=e[0],e=s,o=-1);if(n<e[0].y||n>=e[3].y)return 0;var u=[],a=[];H(e,u,a);if(t<u[0])return 0;if(t>a[0])return o;var f=[];j(e[0].y,e[1].y,e[2].y,e[3].y,n,f);var l=F(e[0].x,e[1].x,e[2].x,e[3].x,f[0]);return o==1&&t==i.x&&n==i.y||o==-1&&t==r.x&&n==r.y?0:l<=t?o:0},R=function(e,t,n,r){var i=0;if(e==0)r[0]=-n/t,i=1;else{var s=t*t-4*e*n,o=undefined,u=undefined;s>0?(o=(-t+Math.sqrt(s))/(2*e),u=(-t-Math.sqrt(s))/(2*e),i=2):s==0&&(o=u=-t/(2*e),i=1),r[0]=o,r[1]=u}return i},U={x:1,y:0},z=function(e,t,n){var i=t/e[2],s=n/e[3],o=r.getVectorAngle(U,{x:i,y:s}),u=e[6]-e[5],a=o-e[5];return a=Math.abs(a)<1e-6?0:a,e[7]&&a>0?a-=Math.PI*2:!e[7]&&a<0&&(a+=Math.PI*2),Math.abs(a)==0?-1:Math.abs(a)==Math.abs(u)?1:Math.abs(a)<Math.abs(u)?2:0},W=function(e,t,n){var i=0,s=e[2],o=e[3],u=r.identityMatrix();r.matrixTranslateBy(u,e[0],e[1]),r.matrixRotateBy(u,e[4]),r.matrixInvertBy(u);var a={x:t,y:n};r.pointApplyByMatrix(a,u);var f={x:t-1,y:n};r.pointApplyByMatrix(f,u);var l={x:f.x-a.x,y:f.y-a.y},c=o*o*l.x*l.x+s*s*l.y*l.y,h=2*o*o*a.x*l.x+2*s*s*a.y*l.y,p=o*o*a.x*a.x+s*s*a.y*a.y-s*s*o*o,d=[],v=R(c,h,p,d);if(v==1&&d[0]!==0)return 0;var m={};for(var g=0;g<d.length;g++)if(d[g]>=0){var y=a.x+d[g]*l.x,b=a.y+d[g]*l.y,w=z(e,y,b);w?(m.flag=w,m.x=y,m.y=b):v-=1}else v-=1;if(v==1){var E=-s*m.y/o,S=o*m.x/s;e[7]||(E=-E,S=-S);if(l.x*S-l.y*E>0)i+=1;else if(l.x*S-l.y*E<0)i-=1;else if(a.y<0)m.flag==1?i-=1:m.flag==-1&&(i+=1);else if(a.y>0)return 0;m.flag==-1&&i==-1&&(i+=1),m.flag==1&&i==1&&(i-=1)}return i},V={L:function(e,t,n){return o(e,t,n)},Q:function(e,t,n){return T(e,t,n)},C:function(e,t,n){return q(e,t,n)},A:function(e,t,n){return X(e,t,n)},Z:function(e,t,n){return o(e,t,n)}};n({isPointInPath:$,windingCounts:V,winding_line:o,winding_quad:T,winding_cubic:q,winding_ellipse:X})},e["/sprites/text.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/textgprim").TextTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("text"),u.grant("text")],[s("font"),u.grant("font")],[s("strokeStyle"),u.grant("strokeStyle")],[s("fillStyle"),u.grant("fillStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY"])),[u]);n(a)},e["/gprims/arcgprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./shaptrait").ShapTrait,s=e("../lib/geometry"),o=r.Klass,u=r.READONLY,a=r.CUSTOM_SETTER,f={radius:10,startAngle:0,endAngle:Math.PI,anticlockwise:!1},l=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=f),this._t.setradius(e.radius),this._t.setstartAngle(e.startAngle),this._t.setendAngle(e.endAngle),this._t.setanticlockwise(e.anticlockwise==undefined?!1:e.anticlockwise),this._t.settype("arc"),this._t.setlength(undefined)},setradius:function(e){return this._t.cache().bbox=undefined,this._t.setradius(e),this._t.setlength(undefined),this},setstartAngle:function(e){return this._t.cache().bbox=undefined,this._t.setstartAngle(e),this._t.setlength(undefined),this},setendAngle:function(e){return this._t.cache().bbox=undefined,this._t.setendAngle(e),this._t.setlength(undefined),this},setanticlockwise:function(e){return this._t.cache().bbox=undefined,this._t.setanticlockwise(e),this._t.setlength(undefined),this},localBbox:function(){var e=this._t.anticlockwise(),t=this._t.startAngle(),n=this._t.endAngle(),r=this._t.radius();n<t&&(n+=Math.PI*2);if(e){var i=t;t=n,n=i+Math.PI*2}var o=[];o.push({x:r*Math.cos(t),y:r*Math.sin(t)}),o.push({x:r*Math.cos(n),y:r*Math.sin(n)});var u=Math.floor(t/(Math.PI*2)),a=u*Math.PI*2;while(a<=n)a>=t&&o.push({x:r*Math.cos(a),y:r*Math.sin(a)}),a+=Math.PI/2;var f,l,c,h;for(var p=0,d=o.length;p<d;p++){var v=o[p];if(v.x<f||f==undefined)f=v.x;if(v.x>l||l==undefined)l=v.x;if(v.y<c||c==undefined)c=v.y;if(v.y>h||h==undefined)h=v.y}var m=this._t.lineWidth();return s.rectMake(f-m/2,c-m/2,l-f+m,h-c+m)},localInside:function(e,t){var n=this._t.startAngle(),r=this._t.endAngle(),i=this._t.radius(),o=this._t.lineWidth(),u=this._t.anticlockwise(),a=Math.sqrt(e*e+t*t),f=i-o/2<=a&&a<=i+o/2;if(!f)return!1;if(2*Math.PI<=r-n||r-n<=-2*Math.PI)return!0;r<n&&(r+=Math.PI*2);if(u){var l=n;n=r,r=l+Math.PI*2}var c=i*Math.cos(n),h=i*Math.sin(n),p=s.getVectorAngle({x:c,y:h},{x:e,y:t})+n;return p>=n&&p<=r},localHook:function(e){this.hookMany(this._t,["strokeFlag","radius","startAngle","endAngle","anticlockwise","strokeStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","lineCap","lineDash","anchorPoint"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["strokeFlag","radius","startAngle","endAngle","anticlockwise","strokeStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","lineCap","lineDash","anchorPoint"],e,"a")},length:function(){var e=this._t.length();if(e==undefined){var t=this._t.radius(),n=this._t.__detaAngle(this._t.startAngle(),this._t.endAngle(),this._t.anticlockwise());e=2*Math.PI*t*n/(Math.PI*2),this._t.setlength(e)}return e},pointAtPercent:function(e){var t=this.startAngle(),n=this.endAngle(),r=this.radius(),i=this.anticlockwise();if(e<=0)return{x:r*Math.cos(t),y:r*Math.sin(t)};if(e>=1)return{x:r*Math.cos(n),y:r*Math.sin(n)};var s=this.length(),o=this._t.__detaAngle(t,n,i),u=e*o,a;return i?a=t-u:a=t+u,{x:r*Math.cos(a),y:r*Math.sin(a)}},percentAtLength:function(e){var t=this._t.length();return e<0?0:t<e?1:e/t},__detaAngle:function(e,t,n){return e=(e+Math.PI*2)%(Math.PI*2),t=(t+Math.PI*2)%(Math.PI*2),n?Math.PI*2-(t-e):t-e}},["radius","startAngle","endAngle","anticlockwise","length"].concat(i.grantMany(["strokeFlag","cache","type","id","tag","strokeStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","lineCap","lineDash","anchorPoint"]))),c=o.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[u("type"),l.grant("type")],[a("radius"),l.grant("radius")],[a("startAngle"),l.grant("startAngle")],[a("endAngle"),l.grant("endAngle")],[a("anticlockwise"),l.grant("anticlockwise")],[a("lineWidth"),l.grant("lineWidth")],[a("strokeStyle"),l.grant("strokeStyle")],[a("shadowColor"),l.grant("shadowColor")]].concat(l.grantMany(["strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineDash"])),[l]);n({ArcKlass:c,ArcTrait:l})},e["/sprites/polygon.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/polygongprim").PolygonTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("vertexes"),u.grant("vertexes")],[s("strokeStyle"),u.grant("strokeStyle")],[s("fillStyle"),u.grant("fillStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash"])),[u]);n(a)},e["/selection/selection.js"]=function(e,t,n){var r=e("../lib/colortraits").READONLY,i=e("../lib/colortraits").PRIVATE,s=e("../lib/colortraits").Klass,o=e("../lib/debug").assert,u=e("./selectionutil"),a=function(e){return Object.prototype.toString.call(e)==="[object Array]"},f=function(e,t,n){return o(a(e),"selectionRoot is not bind to array data in DataDivide."),e},l=s.extend({initialize:function(e){this._t.setgroups(e)},select:function(e,t){var n=[],r=this._t.groups(),i=typeof e=="boolean",s,o,a;return this.each(function(r,s){o=u.findFirst(r,e,t||Infinity,i),a={elements:o,selectionRoot:r},n.push(a)}),l.create(n)},selectAll:function(e,t){var n=[],r=this._t.groups(),i=typeof e=="boolean",s,o,a;return this.each(function(r,s){o=u.findAll(r,e,t||Infinity,i),a={elements:o,selectionRoot:r},n.push(a)}),l.create(n)},filter:function(e){var t=[],n=this._t.groups(),r=0;for(var i=0;i<n.length;i++){var s={elements:[],selectionRoot:n[i].selectionRoot};for(var o=0;o<n[i].elements.length;o++)e(n[i].elements[o],r)&&s.elements.push(n[i].elements[o]),r++;s.elements.length>0&&t.push(s)}return l.create(t)},each:function(e){var t=0,n=this._t.groups();for(var r=0;r<n.length;r++)for(var i=0;i<n[r].elements.length;i++)e(n[r].elements[i],t),t++;return this},call:function(e){o(typeof e=="function","Selection.call must be give function."),e.apply(undefined,[this].concat(Array.prototype.slice.call(arguments,1)))},size:function(){var e=0;return this.each(function(t){e++}),e},empty:function(){return this.size()===0},append:function(e){var t=[];return this.each(function(n,r){var i={elements:[],selectionRoot:n},s=typeof e=="function"?e.call(n,n.dynamicProperty("data"),r):e,u=typeof s.create=="function"?s.create():s;o(n.addChild,"node must have addChild method."),n.addChild(u),i.elements.push(u),t.push(i)}),l.create(t)},remove:function(){this.each(function(e,t){return e.parent&&e.parent()&&e.parent().removeChild&&e.parent().removeChild(e)})},setProperty:function(e,t){return this._t.__setProperty(e,t,!1)},property:function(e){return this._t.__property(e,!1)},setDynamicProperty:function(e,t){return this._t.__setProperty(e,t,!0)},dynamicProperty:function(e){return this._t.__property(e,!0)},__property:function(e,t){var n=[],r=typeof e;return o(r==="string","Illegal property name type."),this.each(function(r,i){var s=t?r.dynamicProperty(e):r[e]?r[e]():undefined;n.push(s)}),n},__setProperty:function(e,t,n){var r=typeof e;o(r==="string"||r==="object"||r==="function","Illegal setProperty nameorvalues type.");var i=n?"setDynamicProperty ":"setProperty ";return this.each(function(s,u){if(r==="string"){var a=typeof t=="function"?t.call(s,s.dynamicProperty("data"),u):t;n?s.setDynamicProperty(e,a):s["set"+e](a)}else if(r==="object"){o(t===undefined,i+"set goup properties only allow one param.");for(var f in e){var a=typeof e[f]=="function"?e[f].call(s,s.dynamicProperty("data"),u):e[f];n?s.setDynamicProperty(f,a):s["set"+f](a)}}else{var l=e.call(s,s.dynamicProperty("data"),u),c=typeof l;o(c==="string"||c==="object","function nameorvalues must return string or key-value object.");if(c==="string"){var a=typeof t=="function"?t.call(s,s.dynamicProperty("data"),u):t;n?s.setDynamicProperty(l,a):s["set"+l](a)}else for(var f in l)o(t===undefined,i+"set goup properties only allow one param."),n?s.setDynamicProperty(f,l[f]):s["set"+f](l[f])}}),this},__arrayData:function(e,t,n){o(a(e),"data bind error: value must be array or function that return array.");var r=typeof t=="function",i=[],s=[],u=[];if(!r){var f=e.length-this.size(),l=this.size()-e.length,h=0,p=this._t.groups();for(var v=0;v<p.length;v++){var m={elements:[],selectionRoot:p[v].selectionRoot},g={elements:[],selectionRoot:p[v].selectionRoot},y={elements:[],selectionRoot:p[v].selectionRoot};for(var b=0;b<p[v].elements.length;b++)f>=0?(p[v].elements[b].setDynamicProperty("data",e[h]),m.elements.push(p[v].elements[b])):h<e.length?(p[v].elements[b].setDynamicProperty("data",e[h]),m.elements.push(p[v].elements[b])):y.elements.push(p[v].elements[b]),h++;i.push(m),s.push(g),u.push(y)}if(f)for(var v=0;v<f;v++){var w=d.create();w.setDynamicProperty("data",e[e.length-(f-v)]),s[s.length-1].elements.push(w)}}else{var p=this._t.groups();for(var v=0;v<p.length;v++)for(var b=0;b<p[v].elements.length;b++){var E=t(p[v].elements[b]);typeof E=="string"||E===undefined?p[v].elements[b].__store_key_remove_later__=E:o(!1,"nodekey must return string or undefined.")}var S={};for(var v=0;v<e.length;v++){var E=n(e[v]);o(typeof E=="string","nodekey must return string."),S[E]=e[v]}for(var v=0;v<p.length;v++){var m={elements:[],selectionRoot:p[v].selectionRoot},g={elements:[],selectionRoot:p[v].selectionRoot},y={elements:[],selectionRoot:p[v].selectionRoot};for(var b=0;b<p[v].elements.length;b++){var x=p[v].elements[b].__store_key_remove_later__;x&&S[x]?(p[v].elements[b].setDynamicProperty("data",S[x]),delete S[x],delete p[v].elements[b].__store_key_remove_later__,m.elements.push(p[v].elements[b])):(y.elements.push(p[v].elements[b]),delete p[v].elements[b].__store_key_remove_later__)}i.push(m),s.push(g),u.push(y)}for(var E in S){var w=d.create();w.setDynamicProperty("data",S[E]),s[s.length-1].elements.push(w)}}return c.create(i,s,u)},__functionData:function(e,t,n){var r=typeof t=="function",i=[],s=[],u=[],f=this._t.groups();for(var l=0;l<f.length;l++){var h={elements:[],selectionRoot:f[l].selectionRoot},p={elements:[],selectionRoot:f[l].selectionRoot},v={elements:[],selectionRoot:f[l].selectionRoot},m=f[l].selectionRoot&&f[l].selectionRoot.dynamicProperty("data");aGroupValueArr=e(m,l,f[l].elements.length),o(a(aGroupValueArr),"data bind error: function must return array.");if(!r){var g=aGroupValueArr.length-f[l].elements.length,y=aGroupValueArr.length-f[l].elements.length;for(var b=0;b<f[l].elements.length;b++)g>=0?(f[l].elements[b].setDynamicProperty("data",aGroupValueArr[b]),h.elements.push(f[l].elements[b])):b<aGroupValueArr.length?(f[l].elements[b].setDynamicProperty("data",aGroupValueArr[b]),h.elements.push(f[l].elements[b])):v.elements.push(f[l].elements[b]);if(g)for(var w=0;w<g;w++){var E=d.create();E.setDynamicProperty("data",aGroupValueArr[aGroupValueArr.length-(g-w)]),p.elements.push(E)}}else{for(var b=0;b<f[l].elements.length;b++){var w=t(f[l].elements[b]);typeof w=="string"||w===undefined?f[l].elements[b].__store_key_remove_later__=w:o(!1,"nodekey must return string or undefined.")}var S={};for(var b=0;b<aGroupValueArr.length;b++){var w=n(aGroupValueArr[b]);o(typeof w=="string","nodekey must return string."),S[w]=aGroupValueArr[b]}for(var b=0;b<f[l].elements.length;b++){var x=f[l].elements[b].__store_key_remove_later__;x&&S[x]?(f[l].elements[b].setDynamicProperty("data",S[x]),delete S[x],delete f[l].elements[b].__store_key_remove_later__,h.elements.push(f[l].elements[b])):(v.elements.push(f[l].elements[b]),delete f[l].elements[b].__store_key_remove_later__)}for(var w in S){var E=d.create();E.setDynamicProperty("data",S[w]),p.elements.push(E)}}i.push(h),s.push(p),u.push(v)}return c.create(i,s,u)},data:function(e,t,n){return o(!t&&!n||typeof t=="function"&&typeof n=="function","nodekey & datakey must be given function both or both not."),typeof e=="function"?this._t.__functionData(e,t,n):this._t.__arrayData(e,t,n)},replaceWith:function(e){var t=[],n=0,r=this._t.groups();for(var i=0;i<r.length;i++){var s={elements:[]},o=0;for(var u=0;u<r[i].elements.length;u++){var a=typeof e=="function"?e.call(r[i].elements[u],r[i].elements[u],n):e.create(),f=r[i].elements.splice(o,1,a)[0];a.setDynamicProperty("data",f.dynamicProperty("data")),o++,f.parent().replaceChild(f,a),s.elements.push[f],n++}}return l.create(t)}},[i("groups")]),c=l.extend({initialize:function(e,t,n){this.execProto("initialize",e),this
._t.set__enter__(p.create(t,this)),this._t.set__exit__(h.create(n,this))},enter:function(){return this._t.__enter__()},exit:function(){return this._t.__exit__()}},[i("__enter__"),i("__exit__")]),h=l.extend({initialize:function(e,t){this.execProto("initialize",e),this._t.set__update__(t)},update:function(){return this._t.__update__()}},[i("__update__")]),p=s.extend({initialize:function(e,t){this._t.setgroups(e),this._t.set__update__(t)},update:function(){return this._t.__update__()},size:function(){var e=0,t=this._t.groups();for(var n=0;n<t.length;n++)for(var r=0;r<t[n].elements.length;r++)e++;return e},empty:function(){return this.size()===0},append:function(e){var t=[],n=this._t.groups(),r=0;for(var i=0;i<n.length;i++){var s={elements:[],selectionRoot:n[i].selectionRoot};for(var u=0;u<n[i].elements.length;u++){var a=typeof e=="function"?e.call(n[i].elements[u],n[i].elements[u].dynamicProperty("data"),r):e,f=typeof a.create=="function"?a.create():a;f.setDynamicProperty("data",n[i].elements[u].dynamicProperty("data")),o(n[i].selectionRoot.addChild,"node must have addChild method."),n[i].selectionRoot.addChild(f),s.elements.push(f),r++}t.push(s)}return l.create(t)}},[i("groups"),i("__update__")]),d=s.extend({initialize:function(){this.attributes={}},setDynamicProperty:function(e,t){this.attributes[e]=t},dynamicProperty:function(e){return this.attributes[e]}}),v=function(e){var t=[{elements:[e],selectionRoot:undefined}];return l.create(t)};n({select:v,DataDivide:f})},e["/gprims/autowraptextgprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("../lib/helper"),s=e("./compositegprim").CompositeTrait,o=e("../lib/geometry"),u=e("./textgprim").TextKlass,a=e("../lib/debug").assert,f=r.Klass,l=r.READONLY,c=r.CUSTOM_SETTER,h={text:"A",maxWidth:Infinity,maxHeight:Infinity,align:"left",lineSpacing:0,styles:[{font:{style:"normal",weight:400,size:16,family:"Arial"}}]},p=s.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=h),this._t.settext(e.text==undefined?"":e.text),this._t.setmaxWidth(e.maxWidth==undefined?Infinity:e.maxWidth<0?0:e.maxWidth),this._t.setmaxHeight(e.maxHeight==undefined?Infinity:e.maxHeight<0?0:e.maxHeight),this._t.setalign(e.align==undefined?"left":e.align),this._t.setlineSpacing(e.lineSpacing==undefined?0:e.lineSpacing),this._t.setstyles(e.styles==undefined?[{font:{style:"normal",weight:400,size:16,family:"Arial"}}]:e.styles),this._t.__splitText(),this._t.__updateListLines()},settext:function(e){return this._t.cache().bbox=undefined,this._t.settext(e),this._t.__splitText(),this._t.__updateListLines(),this},setmaxWidth:function(e){return e=e<0?0:e,this._t.cache().bbox=undefined,this._t.setmaxWidth(e),this._t.__splitText(),this._t.__updateListLines(),this},setmaxHeight:function(e){return e=e<0?0:e,this._t.cache().bbox=undefined,this._t.setmaxHeight(e),this._t.__splitText(),this._t.__updateListLines(),this},setalign:function(e){return this._t.cache().bbox=undefined,this._t.setalign(e),this._t.__splitText(),this._t.__updateListLines(),this},setlineSpacing:function(e){return this._t.cache().bbox=undefined,this._t.setlineSpacing(e),this._t.__splitText(),this._t.__updateListLines(),this},localHook:function(e){this.hookMany(this._t,["gprims","maxWidth","maxHeight","align","lineSpacing","strokeStyle","strokeFlag","fillFlag","text","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","anchorPoint"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["gprims","maxWidth","maxHeight","align","lineSpacing","strokeStyle","strokeFlag","fillFlag","text","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","anchorPoint"],e,"a")},__splitText:function(){var e=this._t.maxWidth(),t=this._t.text(),n=[];if(e==Infinity)n.push(t);else{var r=this._t.lineSpacing(),s=this._t.maxHeight(),o=this._t.styles(),u=o.length,a=o[0].font,f=a.size,l=t.length,c=0,h=parseInt(e/f,10),n=[],p=0,d=f;while(c<l&&d<s&&h!==0){var v=current="";for(;;){if(c+h>l)break;var m=t.substr(c,h),g=i.measureText(m,a).width;if(g==e)break;g>e?(current="-",h--):(current="+",h++);if(v&&v!=current){current=="+"&&h--;break}v=current}n.push(t.substr(c,h)),c+=h,++p,p<u&&o[p].font!==undefined&&(a=o[p].font,f=a.size,h=parseInt(e/f,10)),d+=f+r}}this._t.setsplittexts(n)},__updateListLines:function(){var e=this._t.maxWidth(),t=this._t.splittexts(),n=[],r=this._t.styles(),s=this._t.lineSpacing(),o=this._t.align(),a=0,f=r.length,l=r[0].font,c=r[0].fillStyle,h=r[0].strokeStyle,p=0;for(var d=0,v=t.length;d<v;d++){if(e!==Infinity){var m;o=="center"?(m=i.measureText(t[d],l).width,a=(e-m)/2):o=="right"&&(m=i.measureText(t[d],l).width,a=e-m)}var g=u.create({font:l,text:t[d],y:p,x:a,fillStyle:c,strokeStyle:h});n.push(g),p+=l.size+s;if(d+1<f){var y=r[d+1];l=y.font!==undefined?y.font:l,c=y.fillStyle!==undefined?y.fillStyle:c,h=y.strokeStyle!==undefined?y.strokeStyle:h}}this.setgprims(n)},lines:function(){return this._t.splittexts().length},splitTexts:function(){return this._t.splittexts()},lineStyle:function(e){var t=this._t.styles();return e>=t.length?t[t.length-1]:t[e]},setlineStyle:function(e,t){var n=this._t.styles();if(e<n.length)n.splice(e,1,t);else if(e=n.length)n.push(t);else{for(var r=n.length,i=r-1;r<e;++r)n.push(n[i]);n.push(t)}return this._t.setstyles(n),this._t.__splitText(),this._t.__updateListLines(),this},setstyles:function(e){return this._t.setstyles(e),this._t.__splitText(),this._t.__updateListLines(),this}},["text","splittexts","maxWidth","maxHeight","align","lineSpacing","styles"].concat(s.grantMany(["gprims","strokeStyle","strokeFlag","fillFlag","cache","type","id","tag","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","anchorPoint"]))),d=f.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[l("type"),p.grant("type")],[c("text"),p.grant("text")],[c("gprims"),p.grant("gprims")],[c("styles"),p.grant("styles")],[c("maxWidth"),p.grant("maxWidth")],[c("maxHeight"),p.grant("maxHeight")],[c("align"),p.grant("align")],[c("lineSpacing"),p.grant("lineSpacing")],[c("strokeStyle"),p.grant("strokeStyle")],[c("fillStyle"),p.grant("fillStyle")],[c("shadowColor"),p.grant("shadowColor")]].concat(p.grantMany(["strokeFlag","fillFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY"])),[p]);n({AutoWrapTextTrait:p,AutoWrapTextKlass:d})},e["/gprims/clipgprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./gprim").GPrimTrait,s=e("../lib/debug"),o=e("../lib/geometry"),u=r.Klass,a=r.READONLY,f=r.CUSTOM_SETTER,l={clipx:0,clipy:0,clipw:0,cliph:0},c=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=l),this._t.setgprim(e.gprim==undefined?s.error("CilpGPrim constructor: param error"):e.gprim),this._t.setclipx(e.clipx==undefined?0:e.clipx),this._t.setclipy(e.clipy==undefined?0:e.clipy),this._t.setclipw(e.clipw==undefined?0:e.clipw),this._t.setcliph(e.cliph==undefined?0:e.cliph),this._t.settype("clip")},setclipw:function(e){return this._t.cache().bbox=undefined,this._t.setclipw(e),this},setcliph:function(e){return this._t.cache().bbox=undefined,this._t.setcliph(e),this},localBbox:function(){return o.rectMake(0,0,this._t.clipw(),this._t.cliph())},localInside:function(e,t){return 0<=e&&e<=this._t.clipw()&&0<=t&&t<=this._t.cliph()&&this._t.gprim().inside(e+this._t.clipx(),t+this._t.clipy())},localHook:function(e){this.hookMany(this._t,["gprim","clipx","clipy","clipw","cliph","anchorPoint"],e,"a"),this._t.gprim().localHook(e)},unlocalHook:function(e){this.unhookMany(this._t,["gprim","clipx","clipy","clipw","cliph"],e,"a"),this._t.gprim().unlocalHook()}},["gprim","clipx","clipy","clipw","cliph"].concat(i.grantAll())),h=u.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[a("type"),c.grant("type")],[f("clipw"),c.grant("clipw")],[f("cliph"),c.grant("cliph")]].concat(c.grantMany(["id","tag","gprim","clipx","clipy"])),[c]);n({ClipTrait:c,ClipKlass:h})},e["/world.js"]=function(e,t,n){var r=e("./lib/colortraits").Klass,i=e("./lib/colortraits").Trait,s=e("./lib/colortraits").compose,o=e("scene").TreeSceneTrait,u=e("camera/all").TopCameraTrait,a=e("eventdecider").EventDecider,f=e("eventdecider").BubbleEventDecider,l=e("painter/all").HonestPainter,c=e("./lib/helper"),h=e("./lib/dirtymanager").DirtyManagerTrait,p=e("./lib/autorepaint").AutoRepaintTrait,d=e("./thirdlib/rx/all"),v=30,m=10,g=s([o,u,h,p],{__init:function(e){this.subTraits(0).__init({owner:this,interactable:e.interactable}),this.subTraits(1).__init(),this.subTraits(2).__init(e),this.subTraits(3).__init(e),this._t.setgTime(0),this._t.setbFreeze(!1),e.bubbling&&this._t.setbubbling(e.bubbling),e.invalidateTime?this._t.setinvalidateTime(e.invalidateTime):this._t.setinvalidateTime(m),this.initInvalidate(),this._t.setpainter(l.create(c.createSketchpad(e.width,e.height,e.container))),this._t.bubbling()?this._t.seteventDecider(f.create(this,this._t.painter().eventObservables(),this)):this._t.seteventDecider(a.create(this,this._t.painter().eventObservables(),this)),e.frameRate?this._t.setframeRate(e.frameRate):this._t.setframeRate(v),this._t.setinterval(Math.floor(1e3/this._t.frameRate())),e.showFPS?this._t.setshowFPS(e.showFPS):this._t.setshowFPS(!1),this.createEventStream("system")},redraw:function(){return this.dirtyMgrFlag()||this._t.painter().clear(),this.draw(this._t.painter(),this),this},update:function(e,t){this.subTraits(0).__update(e,t),this.redraw()},loop:function(){function f(){e=new Date,t=e.getTime(),n=t-lastTime,lastTime=t,r+=n,s.setgTime(r),o&&(a+=n,u++,a>2e3&&(document.getElementById("fps").innerHTML=Math.floor(u*1e3/a)+"",a=0,u=0)),i.update(r,n)}var e=new Date,t=lastTime=e.getTime(),n=0,r=this._t.gTime(),i=this,s=this._t,o=this._t.showFPS();if(o)var u=0,a=0;return this.update(r,0),this._t.settimer(setInterval(f,this._t.interval())),this},freeze:function(){return this._t.setbFreeze(!0),clearInterval(this._t.timer()),this._t.settimer(undefined),this},unfreeze:function(){return this.loop(),this._t.setbFreeze(!1),this},eventDecider:function(){return this._t.eventDecider()},initInvalidate:function(){this._t.setinvalidateFlag(!1),this._t.setinvalidateSubject(new d.Subject);var e=this,t=this._t;return this._t.invalidateSubject().asObservable().delay(this._t.invalidateTime()).subscribe(function(n){e.redraw(),t.setinvalidateFlag(!1)}),this},invalidate:function(){if(this._t.invalidateFlag()===!0)return;return this._t.setinvalidateFlag(!0),this._t.invalidateSubject().onNext("redraw"),this},setSize:function(e,t){return this._t.painter().setWidth(e),this._t.painter().setHeight(t),this.invalidate(),this},getSize:function(){return this._t.painter().getSize()},painter:function(){return this._t.painter()}},["invalidateTime","invalidateFlag","invalidateSubject","bubbling","frameRate","showFPS","interval","gTime","timer","painter","eventDecider","bFreeze"]),y=r.extend({initialize:function(e){this.subTraits(0).__init(e)}},[],[g]);n({WorldTrait:g,World:y})},e["/thirdlib/rx/rx.html.js"]=function(e,t,n){(function(t,n){var r=typeof exports=="object"&&exports&&(typeof t=="object"&&t&&t==t.global&&(window=t),exports);if(typeof define=="function"&&define.amd)define(["rx","exports"],function(e,r){return t.Rx=n(t,r,e),t.Rx});else if(typeof module=="object"&&module&&module.exports==r){var i=n(t,module.exports,e("./rx"));module.exports=i}else t.Rx=n(t,{},t.Rx)})(this,function(e,t,n,r){function p(){if(e.XMLHttpRequest)return new e.XMLHttpRequest;try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){throw new Error("XMLHttpRequest is not supported by your browser")}}var i=n.Observable,s=i.prototype,o=i.createWithDisposable,u=n.Disposable.create,a=n.CompositeDisposable,f=n.RefCountDisposable,l=n.AsyncSubject,c=function(t,n,r){var i=new a,s=function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),u(function(){e.removeEventListener(t,n,!1)})):e.attachEvent?(e.attachEvent("on"+t,n),u(function(){e.detachEvent("on"+t,n)})):(e["on"+t]=n,u(function(){e["on"+t]=null}))};if(t&&t.nodeName||t===e)i.add(s(t,n,r));else if(t&&t.length)for(var o=0,f=t.length;o<f;o++)i.add(c(t[o],n,r));return i};i.fromEvent=function(e,t){return o(function(n){var r=function(e){n.onNext(e)};return c(e,t,r)})};var h=function(){var e=document.createElement("div");return function(t){e.appendChild(t),e.innerHTML=""}}();i.getJSONPRequest=function(){var t=0;return function(n){var i=new l,s=document.getElementsByTagName("head")[0]||document.documentElement,c=document.createElement("script"),p="rxjscallback"+t++,n=n.replace("=JSONPCallback","="+p);e[p]=function(e){i.onNext(e),i.onCompleted()},c.src=n,c.async=!0,c.onload=c.onreadystatechange=function(t,n){if(n||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,s&&c.parentNode&&h(c),c=r,delete e[p]},s.insertBefore(c,s.firstChild);var d=new f(u(function(){/loaded|complete/.test(c.readyState)||(c.abort(),c.onload=c.onreadystatechange=null,s&&c.parentNode&&h(c),c=r,delete e[p],i.onError(new Error("The script has been aborted")))}));return o(function(e){return new a(i.subscribe(e),d.getDisposable())})}}();var d=i.ajax=function(e){typeof e=="string"&&(e={method:"GET",url:e,async:!0}),e.async===r&&(e.async=!0);var t=new l,n=p();if(e.headers){var i=e.headers,s;for(s in i)n.setRequestHeader(s,i[s])}try{details.user?n.open(e.method,e.url,e.async,e.user,e.password):n.open(e.method,e.url,e.async),n.onreadystatechange=n.onload=function(){if(n.readyState===4){var e=n.status;e>=200&&e<=300||e===0||e===""?(t.onNext(n),t.onCompleted()):t.onError(n)}},n.onerror=n.onabort=function(){t.onError(n)},n.send(e.body||null)}catch(c){t.onError(c)}var h=new f(u(function(){n.readyState!==4&&(n.abort(),t.onError(n))}));return o(function(e){return new a(t.subscribe(e),h.getDisposable())})};i.post=function(e,t){return d({url:e,body:t,method:"POST",async:!0})};var v=i.get=function(e){return d({url:e,method:"GET",async:!0})};return typeof window.JSON!="undefined"&&(i.getJSON=function(e){return v(e).select(function(e){return JSON.parse(e.responseText)})}),n})},e["/camera/all.js"]=function(e,t,n){n({TopCamera:e("./topcamera").TopCamera,TopCameraTrait:e("./topcamera").TopCameraTrait})},e["/singlegprimtreeactor.js"]=function(e,t,n){var r=e("./lib/colortraits").Trait,i=e("treeactor").TreeActor,s=e("./lib/colortraits").READONLY,o=e("./lib/colortraits").PRIVATE,u=e("./lib/colortraits").CUSTOM_SETTER,a=e("./lib/geometry"),f=e("pidget"),l=f.DisplayObject,c=f.InteractiveObject,h=f.EffectedDisplayObject,p=f.EffectedInteractiveObject,d=i.extend({initialize:function(e){function r(e){if(e.type=="clipperChanged"||e.type=="effectChanged"){var t={gprim:n.gprim(),matrix:n.matrix(),actor:n};!e.clipper&&!e.effect?(n.setdisplayObject(l.create(t)),n.setinteractiveObject(c.create(t))):(n.setdisplayObject(h.create(t)),n.setinteractiveObject(p.create(t)))}}this.execProto("initialize",e);var t=e.gprim;this._t.setgprim(t),this._t.setdisplayObject(l.create({gprim:t,worldMatrix:this.matrix(),effect:{ownerActor:this},actor:this})),this._t.setinteractiveObject(c.create({gprim:t,worldMatrix:this.matrix(),actor:this})),this._t.setopenVisRefs(0);var n=this;this.subscribe("system",r),this.setbeforeBbox(undefined)},emitDisplayObjects:function(e){return this._t.displayObject().setworldMatrix(this.matrix()),e.push(this._t.displayObject()),e},emitInteractiveObjects:function(e){return this._t.interactiveObject().setworldMatrix(this.matrix()),e.push(this._t.interactiveObject()),e},hookVisible:function(e){this.execProto("hookActorVisible",e),this.hook(this._t,"gprim",e,"a"),this.gprim().hookGPrimVisible(e)},unhookVisible:function(e){this.execProto("unhookActorVisible",e),this.unhook(this._t,"gprim",e,"a"),this.gprim().unhookGPrimVisible(e)},__openVisibleStream:function(e){if(this._t.openVisRefs()==0){var t=this,n=function(e){t.notify("system","visibleChanged")};this.hookVisible(n),this._t.setopenVisCB(n)}this._t.setopenVisRefs(this._t.openVisRefs()+1)},__closeVisibleStream:function(){this._t.setopenVisRefs(this._t.openVisRefs()-1),this._t.openVisRefs()==0&&this.unhookVisible(this._t.openVisCB())},enableAutoRepaint:function(){this._t.__openVisibleStream();var e=this,t=this.subscribe("system",function(t){t=="visibleChanged"&&e.ownerScene().owner().invalidate()});this.setvisobserver(t)},enableDirtyRects:function(){this.setbeforeBbox(this.bbox()),this._t.__openVisibleStream();var e=this,t=this.subscribe("system",function(){var t=e.beforeBbox();e.ownerScene().calculateDirtyRect(t),e.ownerScene().calculateDirtyRect(e.bbox()),e.setbeforeBbox(e.bbox())});this._t.setdirtyobserver(t)},disableDirtyRects:function(){this._t.__closeVisibleStream(),this._t.dirtyobserver().dispose()},disableAutoRepaint:function(){this._t.__closeVisibleStream(),this._t.visobserver().dispose()},bbox:function(){return a.rectApplyMatrixToBoundRect(this.gprim().bbox(),this.matrix())},setgprim:function(e){return this._t.setgprim(e),this._t.displayObject().setgprim(e),this._t.interactiveObject().setgprim(e),this}},[u("gprim"),"displayObject","interactiveObject","visobserver","dirtyobserver","beforeBbox",o("openVisRefs"),o("openVisCB")]);n({SingleGPrimTreeActor:d})},e["/lib/dirtymanager.js"]=function(e,t,n){var r=e("./colortraits"),i=e("./geometry"),s=e("./eventstream"),o=r.Klass,u=r.Trait,a=r.compose,f=function(e){e.enableDirtyRects()},l=function(e){e.disableDirtyRects()},c=a([s],{__init:function(e){this.subTraits(0).__init(),this._t.setdirtyMgrFlag(e==null||e.dirtyMgrFlag==undefined?!1:e.dirtyMgrFlag);if(this._t.dirtyMgrFlag()){this._t.setminBoundingDirtyRect({}),this.createEventStream("system");var t=this;this.subscribe("system",function(e){e.type=="addActor"?e.actor.forEach(f):e.type=="removeActor"&&e.actor.forEach(l),t.calculateDirtyRect(e.actor.bbox())})}else this._t.setminBoundingDirtyRect(null)},calculateDirtyRect:function(e){var t=this._t.minBoundingDirtyRect();if(t.x==undefined){var n=Math.floor(e.x),r=Math.floor(e.y),i=Math.ceil(e.x+e.width),s=Math.ceil(e.y+e.height);t.x=n,t.y=r,t.width=i-n,t.height=s-r}else{var n=Math.floor(Math.min(t.x,e.x)),r=Math.floor(Math.min(t.y,e.y)),i=Math.ceil(Math.max(t.x+t.width,e.x+e.width)),s=Math.ceil(Math.max(t.y+t.height,e.y+e.height));t.x=n,t.y=r,t.width=i-n,t.height=s-r}},minBoundingDirtyRect:function(){return this._t.minBoundingDirtyRect()},clearminBoundingDirtyRect:function(){var e=this._t.minBoundingDirtyRect();e.x=undefined,e.y=undefined,e.width=undefined,e.height=undefined},dirtyMgrFlag:function(){return this._t.dirtyMgrFlag()}},["dirtyMgrFlag","minBoundingDirtyRect"]);n({DirtyManagerTrait:c})},e["/gprims/polygongprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./shaptrait").ShapTrait,s=e("../lib/geometry"),o=r.Klass,u=r.READONLY,a=r.CUSTOM_SETTER,f={vertexes:[{x:10,y:0},{x:0,y:20},{x:20,y:20}]},l=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=f),this._t.setvertexes(e.vertexes==undefined?[]:e.vertexes),this._t.settype("polygon"),this._t.setlength(undefined)},setvertexes:function(e){return this._t.cache().bbox=undefined,this._t.setvertexes(e),this._t.setlength(undefined),this},localBbox:function(){var e=Infinity,t=Infinity,n=-Infinity,r=-Infinity,i=this._t.vertexes();for(var o in i){var u=i[o];e=u.x<e?u.x:e,t=u.y<t?u.y:t,n=u.x>n?u.x:n,r=u.y>r?u.y:r}var a=0;if(this._t.strokeStyle()!==undefined||this._t.strokeFlag())a=1;return s.rectMake(e,t,n-e+a,r-t+a)},localInside:function(e,t){var n=this._t.vertexes();return s.isPointInPolygon(e,t,n)},localHook:function(e){this.hookMany(this._t,["fillFlag","strokeFlag","vertexes","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash","anchorPoint"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["fillFlag","strokeFlag","vertexes","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash","anchorPoint"],e,"a")},length:function(){var e=this._t.length();if(e==undefined){e=0;var t=this._t.vertexes(),n,r;for(var i=0,s=t.length;i<s;i++)n=t[i],i==s-1?r=t[0]:r=t[i+1],e+=Math.sqrt((n.x-r.x)*(n.x-r.x)+(n.y-r.y)*(n.y-r.y));this._t.setlength(e)}return e},pointAtPercent:function(e){var t=this._t.vertexes();if(e<=0||e>=1)return{x:t[0].x,y:t[0].y};var n=t.length,r=this.length(),i=0;for(var s=0,n=t.length;s<n;s++){var o=t[s],u;s==n-1?u=t[0]:u=t[s+1];var a=Math.sqrt((o.x-u.x)*(o.x-u.x)+(o.y-u.y)*(o.y-u.y));i+=a;if(r*e<=i){var f=(r*e-i+a)/a;return{x:o.x+f*(u.x-o.x),y:o.y+f*(u.y-o.y)}}}},percentAtLength:function(e){var t=this._t.length();return e<0?0:t<e?1:e/t}},["vertexes","length"].concat(i.grantMany(["fillFlag","strokeFlag","cache","type","id","tag","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash","anchorPoint"]))),c=o.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[u("type"),l.grant("type")],[a("vertexes"),l.grant("vertexes")],[a("strokeStyle"),l.grant("strokeStyle")],[a("fillStyle"),l.grant("fillStyle")],[a("shadowColor"),l.grant("shadowColor")]].concat(l.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash"])),[l]);n({PolygonKlass:c,PolygonTrait:l})},e["/sprites/sprite.js"]=function(e,t,n){var r=e("../singlegprimtreeactor").SingleGPrimTreeActor,i=e("../lib/geometry").identityMatrix(),s=r.extend({initialize:function(e){this.execProto("initialize",e)},emitDisplayObjects:function(e){return this.displayObject().setworldMatrix(i),e.push(this.displayObject()),e},emitInteractiveObjects:function(e){return this.interactiveObject().setworldMatrix(i),e.push(this.interactiveObject()),e},hookVisible:function(e){this.gprim().hookGPrimVisible(e)},unhookVisible:function(e){this.gprim().unhookGPrimVisible(e)}});n(s)},e["/colorbox.js"]=function(e,t,n){var r={};r.Stage=e("stage").Stage;var i=e("/sprites/all");for(var s in i)i.hasOwnProperty(s)&&(r[s]=i[s]);r.helper=e("./lib/helper");var o=e("./lib/colortraits"),u=e("./lib/debug"),a=e("./selection/selection"),f=e("./selection/selector");r.Klass=o.Klass,r.Trait=o.Trait,r.compose=o.compose,r.composeGrantProperties=o.composeGrantProperties,r.READONLY=o.READONLY,r.PRIVATE=o.PRIVATE,r.assert=u.assert,r.selection=a,r.selector=f,n(r)},e["/gprims/rectgprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./shaptrait").ShapTrait,s=e("../lib/geometry"),o=r.Klass,u=r.READONLY,a=r.CUSTOM_SETTER,f=[{width:10,height:10}],l={x:0,y:0},c=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=f),this._t.setwidth(e.width==undefined?10:e.width),this._t.setheight(e.height==undefined?10:e.height),this._t.settype("rect"),this._t.setlength(undefined)},setwidth:function(e){return this._t.cache().bbox=undefined,this._t.setwidth(e),this._t.setlength(undefined),this},setheight:function(e){return this._t.cache().bbox=undefined,this._t.setheight(e),this._t.setlength(undefined),this},width:function(){return this._t.width()},height:function(){return this._t.height()},localBbox:function(){var e=0;if(this._t.strokeStyle()!==undefined||this._t.strokeFlag())e=this._t.lineWidth();return s.rectMake(-e/2,-e/2,this._t.width()+e,this._t.height()+e)},localInside:function(e,t){var n=0;if(this._t.strokeStyle()!==undefined||this._t.strokeFlag())n=this._t.lineWidth();return e>-n/2&&e<this._t.width()+n&&t>-n/2&&t<this._t.height()+n?!0:!1},localHook:function(e){this.hookMany(this._t,["fillFlag","strokeFlag","width","height","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","anchorPoint"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["fillFlag","strokeFlag","width","height","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","anchorPoint"],e,"a")},length:function(){var e=this._t.length();return e==undefined&&(e=(this._t.width()+this._t.height())*2,this._t.setlength(e)),e},pointAtPercent:function(e){if(e<=0||e>=1)return l;var t=this._t.width(),n=this._t.height(),r=this.length();return t>=e*r?{x:r*e,y:0}:t+n>=e*r?{x:t,y:e*r-t}:t*2+n>=e*r?{x:t-(e-.5)*r,y:n}:{x:0,y:(1-e)*r}},percentAtLength:function(e){var t=this._t.length();return e<0?0:t<e?1:e/t}},["width","height","length"].concat(i.grantMany(["fillFlag","strokeFlag","cache","type","id","tag","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","anchorPoint"]))),h=o.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[u("type"),c.grant("type")],[a("lineWidth"),c.grant("lineWidth")],[a("strokeStyle"),c.grant("strokeStyle")],[a("fillStyle"),c.grant("fillStyle")],[a("shadowColor"),c.grant("shadowColor")]].concat(c.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY"])),[c]);n({RectKlass:h,RectTrait:c})},e["/gprims/imagegprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./gprim").GPrimTrait,s=e("../lib/helper"),o=e("../lib/geometry"),u=r.Klass,a=r.READONLY,f=r.CUSTOM_SETTER,l={image:"http://img0.bdstatic.com/img/image/shouye/mxangel.jpg"},c=100,h=100,p=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=l),this._t.setimage(typeof e.image=="string"?s.loadImage(e.image):e.image==undefined?s.loadImage(""):e.image),this._t.settype("image"),this._t.setalpha(e.alpha==undefined?1:e.alpha),this._t.setconstraintmode(e.constraintmode),this._t.setwidth(e.width==undefined?c:e.width),this._t.setheight(e.height==undefined?h:e.height);if(this._t.image().complete)this._t.cache().bbox=undefined,this._t.setwidth(e.width==undefined?this._t.image().width:e.width),this._t.setheight(e.height==undefined?this._t.image().height:e.height);else{var t=this._t;s.loadImage(t.image().src,function(){t.cache().bbox=undefined,t.setwidth(e.width==undefined?t.image().width:e.width),t.setheight(e.height==undefined?t.image().height:e.height)})}},setwidth:function(e){return this._t.cache().bbox=undefined,this._t.setwidth(e),this},setheight:function(e){return this._t.cache().bbox=undefined,this._t.setheight(e),this},width:function(){return this._t.width()},height:function(){return this._t.height()},localBbox:function(){return o.rectMake(0,0,this._t.width(),this._t.height())},localInside:function(e,t){return this._t.alpha()==0?!1:e>0&&e<this._t.width()&&t>0&&t<this._t.height()?!0:!1},localHook:function(e){return this.hookMany(this._t,["image","width","height","constraintmode","alpha","anchorPoint"],e,"a"),this},unlocalHook:function(e){this.unhookMany(this._t,["image","width","height","constraintmode","alpha","anchorPoint"],e,"a")}},["image","width","height","constraintmode","alpha"].concat(i.grantAll())),d=u.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[a("type"),p.grant("type")]].concat(p.grantMany(["alpha","constraintmode","image","tag","id"])),[p]);n({ImageKlass:d,ImageTrait:p})},e["/lib/transformable.js"]=function(e,t,n){var r=e("./geometry"),i=e("./util"),s=e("./colortraits").Klass,o=e("./colortraits").Trait,u=e("./debug").assert,a=o.extend({__init:function(e,t){u(e,"param error");var n=[];n[0]={x:0,y:0,z:0,sx:1,sy:1,r:0},this._t.setmatrixs(n),this._t.settimeStamper(e),this._t.setdirtyStamp(e.now()),this._t.setcalculateStamp(e.now()-1),this._t.set__depTransformable__(t)},setx:function(e){var t=this._t.matrixs()[0];return t.x=e,this.stepForwardTimeStamp__(),this},x:function(){var e=this._t.matrixs()[0];return e.x},sety:function(e){var t=this._t.matrixs()[0];return t.y=e,this.stepForwardTimeStamp__(),this},y:function(e){var t=this._t.matrixs()[0];return t.y},setz:function(e){var t=this._t.matrixs()[0];return t.z=e,this.stepForwardTimeStamp__(),this},z:function(){var e=this._t.matrixs()[0];return e.z},move:function(e,t,n){var r=this._t.matrixs()[0];return r.x=e,r.y=t,typeof n=="number"&&(r.z=n),this.stepForwardTimeStamp__(),this},moveBy:function(e,t,n){var r=this._t.matrixs()[0];return r.x+=e,r.y+=t,typeof z=="number"&&(r.z+=n),this.stepForwardTimeStamp__(),this},setrotation:function(e){var t=this._t.matrixs()[0];return t.r=e,this.stepForwardTimeStamp__(),this},rotation:function(){var e=this._t.matrixs()[0];return e.r},rotateBy:function(e){var t=this._t.matrixs()[0];return t.r+=e,this.stepForwardTimeStamp__(),this},applyScaleY:function(e){var t=this._t.matrixs()[0];return t.sy*=e,this.stepForwardTimeStamp__(),this},setscale:function(e,t){var n=this._t.matrixs()[0];return n.sx=e,n.sy=t,this.stepForwardTimeStamp__(),this},scale:function(){var e=this._t.matrixs()[0];return{sx:e.sx,sy:e.sy}},scaleBy:function(e,t){var n=this._t.matrixs()[0];return n.sx*=e,n.sy*=t,this.stepForwardTimeStamp__(),this},transform:function(e){var t=r.decomposeMatrix(e),e=this._t.matrixs()[0];return e.x=t.x,e.y=t.y,e.sx=t.sx,e.sy=t.sy,e.r=t.r,this.stepForwardTimeStamp__(),this},pushMatrix:function(e){var t=this._t.matrixs();return t.push(e),this.stepForwardTimeStamp__(),this},popMatrix:function(){var e=this._t.matrixs();return u(e.length>1,"logical error"),this.stepForwardTimeStamp__(),e.pop()},matrix:function(){var e=this.transformable_dirty__();if(e){var t=this._t.__depTransformable__(),n=t?i.copy(t.matrix()):r.identityMatrix(),s=this._t.matrixs(),o=s[0];(o.x!=0||o.y!=0||o.z!=0)&&r.matrixTranslateBy(n,o.x,o.y,o.z),o.r!=0&&r.matrixRotateBy(n,o.r),(o.sx!=1||o.sy!=1)&&r.matrixScaleBy(n,o.sx,o.sy);for(var u=1;u<s.length;u++)this["__"+s[u][0]+"matrix",n](s[u].slice(1));return this._t.set__matrix__(n),e==1?this._t.setcalculateStamp(t.stamp()):e==2&&this._t.setcalculateStamp(this._t.dirtyStamp()),n}return this._t.__matrix__()},setDepTransformable:function(e){var t=this._t.__depTransformable__();return this._t.set__depTransformable__(e),this.stepForwardTimeStamp__(),t},stamp:function(){return this._t.calculateStamp()},dirtyStamp:function(){return this._t.dirtyStamp()},transformable_dirty__:function(){var e=this._t.__depTransformable__(),t=0;if(e&&e.transformable_dirty__()||e&&this.stamp()<e.stamp())t=1;return this._t.calculateStamp()<this._t.dirtyStamp()&&(t=2),t},stepForwardTimeStamp__:function(){this._t.timeStamper().stepForward(),this._t.setdirtyStamp(this._t.timeStamper().now())}},["matrixs","timeStamper","dirtyStamp","calculateStamp","__depTransformable__","__matrix__"]);n({TransformableTrait:a})},e["/interactor.js"]=function(e,t,n){function f(e,t){var n=t.mouseX-e.mouseX,r=t.mouseY-e.mouseY;return n*n+r*r<a*a}var r=e("./lib/colortraits").Klass,i=e("./lib/colortraits").Trait,s=e("./lib/debug"),o=e("./thirdlib/rx/all"),u=e("./lib/util").objectDotCreate,a=2,l=r.extend({initialize:function(e){this.settype(e),this.setsubject(new o.Subject),this.setobservable(this.subject().asObservable())}},["observable","subject","type"]),c=l.extend({initialize:function(){this.execProto("initialize","mouseOver")}}),h=l.extend({initialize:function(){this.execProto("initialize","mouseMoved")}}),p=l.extend({initialize:function(){this.execProto("initialize","mouseOut")}}),d=l.extend({initialize:function(){this.execProto("initialize","keyPressed")}}),v=l.extend({initialize:function(){this.execProto("initialize","keyReleased")}}),m=l.extend({initialize:function(){this.execProto("initialize","mousewheel")}}),g=l.extend({initialize:function(){this.execProto("initialize","mousePressed")}}),y=l.extend({initialize:function(){this.execProto("initialize","mouseReleased")}}),b=i.extend({__init:function(e){this._type="mouseReleased",this.setobservable(e.getInteractObservable(this.type()).delay(0))}}),w=l.extend({initialize:function(e){this.execProto("initialize","mouseReleased"),this.subTraits(0).__init(e)}},[],[b]),E=l.extend({initialize:function(e){this.execProto("initialize","mouseClicked"),this._t.__bindActor(e)},__bindActor:function(e){var t=0,n=e.getInteractObservable("mousePressed").select(function(e){return t=e.sourceEvt.button,e}),r=e.getInteractObservable("mouseMoved").where(function(e){return e.sourceEvt.button===t}),i=e.getInteractObservable("mouseReleased").where(function(e){return e.sourceEvt.button===t}),t=0,s=n.then(function(e){var t=e,n=u(t);return n.type="mouseClicked",r.takeUntil(i).skipWhile(function(e){return n=u(e),n.type="mouseClicked",f(t,e)}).take(1).aggregate(n,function(e,t){return!1}).where(function(e){return e})});this.setobservable(s)}}),S=l.extend({initialize:function(e){this.execProto("initialize","mouseDragged"),this._t.__bindActor(e)},__bindActor:function(e){var t=0,n=e.getInteractObservable("mousePressed"),r=e.getInteractObservable("mouseMoved"),i=e.getInteractObservable("mouseReleased"),s=!1,o=!1,a,l=this.subject(),c,h;n.subscribe(function(e){a=e,s=!0,c=r.subscribe(function(e){if(!f(a,e)){h=e;var t=u(e);t.type="mouseDragged",s&&(t.dragStart=!0,s=!1,o=!0),l.onNext(t)}})});var p=i.subscribe(function(e){c&&(c.dispose(),c=undefined);if(o){var t=u(h);t.type="mouseDragged",t.dragEnd=!0,l.onNext(t),o=!1,h=undefined}});return;var d,t,v}}),x=l.extend({initialize:function(){this.execProto("initialize","twoFingerTouch")}});setShakeSpan=function(
e){e=e},n({Interactor:l,MouseOverInteractor:c,MouseOutInteractor:p,MouseMovedInteractor:h,KeyPressedInteractor:d,KeyReleasedInteractor:v,MousewheelInteractor:m,MouseReleasedInteractor:y,MousePressedInteractor:g,MouseClickedInteractor:E,MouseDraggedInteractor:S,Interactors:{mouseOver:c,mouseOut:p,mouseMoved:h,mousePressed:g,mouseReleased:y,keyPressed:d,keyReleased:v,mousewheel:m,mouseDragged:S,mouseClicked:E,twoFingerTouch:x},setShakeSpan:setShakeSpan})},e["/gprims/shaptrait.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./gprim").GPrimTrait,s=e("../lib/helper"),o=r.Trait,u={},a=o.extend({__init:function(e){e==undefined&&(e=u),this.setstrokeStyle(e.strokeStyle),this.setfillStyle(e.fillStyle),this.setshadowColor(e.shadowColor),this._t.setshadowBlur(e.shadowBlur==undefined?0:e.shadowBlur),this._t.setshadowOffsetX(e.shadowOffsetX==undefined?0:e.shadowOffsetX),this._t.setshadowOffsetY(e.shadowOffsetY==undefined?0:e.shadowOffsetY),this._t.setlineCap(e.lineCap==undefined?"butt":e.lineCap),this._t.setlineJoin(e.lineJoin==undefined?"miter":e.lineJoin),this._t.setmiterLimit(e.miterLimit==undefined?10:e.miterLimit),this._t.setlineWidth(e.lineWidth==undefined?1:e.lineWidth),this._t.setlineDash(e.lineDash),this._t.setfillFlag(e.fillFlag==undefined?!1:e.fillFlag),this._t.setstrokeFlag(e.strokeFlag==undefined?!1:e.strokeFlag)},applyStyle:function(e){this._t.lineWidth()!=1&&(e.lineWidth=this._t.lineWidth()),this._t.lineCap()!="butt"&&(e.lineCap=this._t.lineCap()),this._t.lineJoin()!="miter"&&(e.lineJoin=this._t.lineJoin()),this._t.miterLimit()!=10&&(e.miterLimit=this._t.miterLimit());if(this._t.strokeStyle()!=undefined){var t=this._t.strokeStyle();t.r!==undefined&&(t=this._t._strokeString()),e.strokeStyle=t}if(this._t.fillStyle()!=undefined){var n=this._t.fillStyle();n.r!==undefined&&(n=this._t._fillString()),e.fillStyle=n}if(this._t.shadowColor()!=undefined){var r=this._t.shadowColor();r.r!==undefined&&(r=this._t._shadowString()),e.shadowColor=r}return this._t.shadowBlur()!=0&&(e.shadowBlur=this._t.shadowBlur()),this._t.shadowOffsetX()!=0&&(e.shadowOffsetX=this._t.shadowOffsetX()),this._t.shadowOffsetY()!=0&&(e.shadowOffsetY=this._t.shadowOffsetY()),this._t.lineDash()!=undefined&&e.setLineDash(this._t.lineDash()),this},setfillStyle:function(e){e!==undefined&&e.r!==undefined&&this._t.set_fillString(s.colorToString(e)),this._t.setfillStyle(e)},setstrokeStyle:function(e){e!==undefined&&e.r!==undefined&&this._t.set_strokeString(s.colorToString(e)),this._t.setstrokeStyle(e)},setshadowColor:function(e){e!==undefined&&e.r!==undefined&&this._t.set_shadowString(s.colorToString(e)),this._t.setshadowColor(e)}},["_shadowString","_strokeString","_fillString","fillFlag","strokeFlag","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineWidth","lineDash"]),f=r.compose([i,a],{__init:function(e){this.subTraits(0).__init(e),this.subTraits(1).__init(e)},setlineWidth:function(e){return this._t.cache().bbox=undefined,this._t.setlineWidth(e),this}},i.grantAll().concat(a.grantAll()));n({ShapTrait:f})},e["/gprims/annulusgprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./shaptrait").ShapTrait,s=e("../lib/geometry"),o=r.Klass,u=r.READONLY,a=r.CUSTOM_SETTER,f={innerradius:0,outerradius:10,startAngle:0,endAngle:Math.PI*2,anticlockwise:!1},l=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=f),this._t.setinnerradius(e.innerradius==undefined?0:e.innerradius),this._t.setouterradius(e.outerradius),this._t.setstartAngle(e.startAngle),this._t.setendAngle(e.endAngle),this._t.setanticlockwise(e.anticlockwise==undefined?!1:e.anticlockwise),this._t.settype("annulus"),this._t.setlength(undefined)},setinnerradius:function(e){return this._t.cache().bbox=undefined,this._t.setinnerradius(e),this._t.setlength(undefined),this},setouterradius:function(e){return this._t.cache().bbox=undefined,this._t.setouterradius(e),this._t.setlength(undefined),this},setstartAngle:function(e){return this._t.cache().bbox=undefined,this._t.setstartAngle(e),this._t.setlength(undefined),this},setendAngle:function(e){return this._t.cache().bbox=undefined,this._t.setendAngle(e),this._t.setlength(undefined),this},setanticlockwise:function(e){return this._t.cache().bbox=undefined,this._t.setanticlockwise(e),this._t.setlength(undefined),this},localBbox:function(){var e=this._t.anticlockwise(),t=this._t.startAngle(),n=this._t.endAngle(),r=this._t.innerradius(),i=this._t.outerradius();n<t&&(n+=Math.PI*2);if(e){var o=t;t=n,n=o+Math.PI*2}var u=[];u.push({x:r*Math.cos(t),y:r*Math.sin(t)}),u.push({x:r*Math.cos(n),y:r*Math.sin(n)}),u.push({x:i*Math.cos(t),y:i*Math.sin(t)}),u.push({x:i*Math.cos(n),y:i*Math.sin(n)});var a=Math.floor(t/(Math.PI*2)),f=a*Math.PI*2;while(f<=n)f>=t&&u.push({x:i*Math.cos(f),y:i*Math.sin(f)}),f+=Math.PI/2;var l,c,h,p;for(var d=0,v=u.length;d<v;d++){var m=u[d];if(m.x<l||l==undefined)l=m.x;if(m.x>c||c==undefined)c=m.x;if(m.y<h||h==undefined)h=m.y;if(m.y>p||p==undefined)p=m.y}return s.rectMake(l,h,c-l+1,p-h+1)},localInside:function(e,t){var n=this._t.startAngle(),r=this._t.endAngle(),i=this._t.innerradius(),o=this._t.outerradius(),u=this._t.anticlockwise(),a=Math.sqrt(e*e+t*t),f=a>=i&&a<=o;if(!f)return!1;if(2*Math.PI<=r-n||r-n<=-2*Math.PI)return!0;r<n&&(r+=Math.PI*2);if(u){var l=n;n=r,r=l+Math.PI*2}var c=Math.cos(n),h=Math.sin(n),p=s.getVectorAngle({x:c,y:h},{x:e,y:t})+n;return p>=n&&p<=r},localHook:function(e){this.hookMany(this._t,["innerradius","outerradius","startAngle","endAngle","anticlockwise","strokeFlag","strokeStyle","fillFlag","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash","anchorPoint"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["innerradius","outerradius","startAngle","endAngle","anticlockwise","strokeFlag","strokeStyle","fillFlag","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash","anchorPoint"],e,"a")},length:function(){var e=this._t.length();if(e==undefined){var t=this._t.outerradius(),n=this._t.innerradius();e=0,e+=2*(t-n);var r=this._t.__detaAngle(this._t.startAngle(),this._t.endAngle(),this._t.anticlockwise());e+=2*Math.PI*t*r/(Math.PI*2)+2*Math.PI*n*r/(Math.PI*2),this._t.setlength(e)}return e},pointAtPercent:function(e){var t=this.startAngle(),n=this.endAngle(),r=this.innerradius(),i=this.outerradius(),s=this.anticlockwise();if(e<=0||e>=1)return{x:r*Math.cos(t),y:r*Math.sin(t)};var o=this.length(),u=i-r,a=this._t.__detaAngle(t,n,s),f=2*Math.PI*i*a/(Math.PI*2),l=2*Math.PI*r*a/(Math.PI*2),c,h,p;return e*o<u?(c=r+e*o,{x:c*Math.cos(t),y:c*Math.sin(t)}):e*o<u+f?(h=(e*o-u)/f*a,s?p=t-h:p=t+h,{x:i*Math.cos(p),y:i*Math.sin(p)}):e*o<2*u+f?(c=2*i-e*o-r+f,{x:c*Math.cos(n),y:c*Math.sin(n)}):(h=(1-(1-e)*o/l)*a,s?p=n+h:p=n-h,{x:r*Math.cos(p),y:r*Math.sin(p)})},percentAtLength:function(e){var t=this._t.length();return e<0?0:t<e?1:e/t},__detaAngle:function(e,t,n){return e=(e+Math.PI*2)%(Math.PI*2),t=(t+Math.PI*2)%(Math.PI*2),n?Math.PI*2-(t-e):t-e}},["innerradius","outerradius","startAngle","endAngle","anticlockwise","length"].concat(i.grantMany(["cache","type","id","tag","strokeFlag","strokeStyle","fillFlag","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash","anchorPoint"]))),c=o.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[u("type"),l.grant("type")],[a("innerradius"),l.grant("innerradius")],[a("outerradius"),l.grant("outerradius")],[a("startAngle"),l.grant("startAngle")],[a("endAngle"),l.grant("endAngle")],[a("anticlockwise"),l.grant("anticlockwise")],[a("strokeStyle"),l.grant("strokeStyle")],[a("fillStyle"),l.grant("fillStyle")],[a("shadowColor"),l.grant("shadowColor")]].concat(l.grantMany(["id","tag","strokeFlag","fillFlag","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash"])),[l]);n({AnnulusKlass:c,AnnulusTrait:l})},e["/lib/helper.js"]=function(e,t,n){function i(e,t,n){arguments.length==1&&(n=e,e=undefined);var r=document.createElement("canvas");return n==null?document.body.appendChild(r):n.appendChild(r),window.FlashCanvas&&window.FlashCanvas.initElement(r),e!=undefined&&(r.width=e),t!=undefined&&(r.height=t),r}function s(e,t){var n=document.createElement("canvas");return e!=undefined&&(n.width=e),t!=undefined&&(n.height=t),window.FlashCanvas&&window.FlashCanvas.initElement(n),n}function o(e,t){var n=new Image;return n.src=e,n.onload=function(){t&&t()},n}function u(){return document.createElement("audio")}function f(){if(a!=undefined)return a;var e=document.getElementsByTagName("canvas")[0];return e==undefined&&(e=i()),a=e.getContext("2d"),a}function l(e,t){var n=f();n.save(),n.font=c(t);var r=n.measureText(e);return r.height=t.size,n.restore(),r}function c(e){var t=e.style==undefined?"normal":e.style,n=e.weight==undefined?400:e.weight,r=e.size==undefined?16:e.size,i=e.family==undefined?"Arial":e.family;return t+" "+n+" "+r+"px"+" "+i}function h(e){if(!e)return[];var t=e,n=["m","M","l","L","z","Z","c","C","q","Q","a","A"];t=t.replace(/ /g," "),t=t.replace(/ /g,","),t=t.replace(/,,/g,",");var r;for(r=0;r<n.length;r++)t=t.replace(new RegExp(n[r],"g"),"|"+n[r]);var i=t.split("|"),s=[];for(r=1;r<i.length;r++){var o=i[r],u=o.charAt(0);o=o.slice(1),o=o.replace(new RegExp("e,-","g"),"e-");var a=o.split(",");a.length>0&&a[0]===""&&a.shift();for(var f=0;f<a.length;f++)a[f]=parseFloat(a[f]);isNaN(a[a.length-1])&&a.pop();var l=[];l.push(u.toUpperCase()),l=l.concat(a),s.push(l)}return s}function p(e,t,n,r){var i=f();return i.createLinearGradient(e,t,n,r)}function d(e,t,n,r,i,s){var o=f();return o.createRadialGradient(e,t,n,r,i,s)}function v(e,t){var n=f();return n.createPattern(e,t)}function m(e){var t=r(e,function(e){return{x:e[0],y:e[1]}});return t}function g(e){var t=1;return e.a!==undefined&&(t=e.a),"rgba("+e.r+", "+e.g+", "+e.b+", "+t+")"}var r=e("./util").arrayMap,a;n({createSketchpad:i,loadImage:o,createAudio:u,createHiddenSketchpad:s,measureText:l,fontToString:c,svgToArray:h,createLinearGradient:p,createRadialGradient:d,createPattern:v,arraysToPointArrays:m,colorToString:g})},e["/lib/eventstream.js"]=function(e,t,n){var r=e("./colortraits").Klass,i=e("./colortraits").Trait,s=e("../thirdlib/rx/all"),o=i.extend({__init:function(){return this._t.subject()==undefined&&this._t.setsubject({}),this},createEventStream:function(e){if(this._t.subject()[e]==undefined){var t=new s.Subject;this._t.subject()[e]={subject:t,observable:t.asObservable()}}return this._t.subject()[e].observable},getEventStream:function(e){return this._t.subject()[e].observable},deleteEventStream:function(e){return delete this._t.subject()[e],this},notify:function(e,t){return this._t.subject()[e].subject.onNext(t),this},subscribe:function(e,t){return this._t.subject()[e].observable.subscribe(function(){}),this._t.subject()[e].observable.subscribe(t)}},["subject"]);n(o)},e["/gprims/gprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("../lib/timestamp"),s=e("../lib/transformable").TransformableTrait,o=e("../query").QueryTrait,u=e("../lib/geometry"),a=i.globalTimeStamp,f=r.Klass,l=r.READONLY,c=u.Rect(0,0,0,0),h=r.compose([s,o],{__init:function(e){e==undefined&&(e={}),this.subTraits(0).__init(a),this.subTraits(1).__init(e),this._t.setcache({}),this._t.settype("gprim"),this._t.setanchorPoint({x:0,y:0,type:"absolute"}),e.ratioAnchor!==undefined&&this._t.setanchorPoint({x:e.ratioAnchor.ratiox,y:e.ratioAnchor.ratioy,type:"ratio"}),e.anchor!==undefined&&this._t.setanchorPoint({x:e.anchor.x,y:e.anchor.y,type:"absolute"}),e.x!==undefined&&this.setx(e.x),e.y!==undefined&&this.sety(e.y),e.z!==undefined&&this.setz(e.z)},width:function(){return this.bbox().width},height:function(){return this.bbox().height},bbox:function(){var e=this._t.cache(),t=this.stamp();if(undefined!=e.bbox&&t==e.stamp)return e.bbox;var n=this.matrix(),r=this.localBbox(),i=this.anchor();return r.x-=i.x,r.y-=i.y,r=u.rectApplyMatrixToBoundRect(r,n),e.stamp=this.stamp(),e.bbox=r,r},inside:function(e,t){var n=this.bbox();if(n.x<=e&&e<n.x+n.width&&n.y<=t&&t<n.y+n.height){var r=u.matrixInvert(this.matrix()),i=u.pointApplyMatrix({x:e,y:t},r),s=this.anchor();return i.x+=s.x,i.y+=s.y,this.localInside(i.x,i.y)}return!1},setratioAnchor:function(e){var t=this._t.anchorPoint();return t.x=e.ratiox,t.y=e.ratioy,t.type="ratio",this},ratioAnchor:function(){var e=this._t.anchorPoint();if(e.type=="absolute"){var t=this.localBbox();return{ratiox:e.x/t.width,ratioy:e.y/t.height}}return{ratiox:e.x,ratioy:e.y}},setanchor:function(e){var t=this._t.anchorPoint();return t.x=e.x,t.y=e.y,t.type="absolute",this},anchor:function(){var e=this._t.anchorPoint();if(e.type=="absolute")return{x:e.x,y:e.y};var t=this.localBbox();return{x:e.x*t.width,y:e.y*t.height}},localBbox:function(){return c},localInside:function(e,t){return!1},hookGPrimVisible:function(e){this.localHook(e),this.hook(this.subTraits(0),"dirtyStamp",e,"a"),this.hook(this.subTraits(0),"dirtyStamp",e,"b")},localHook:function(e){this.hook(this._t,"anchorPoint",e,"a")},unhookGPrimVisible:function(e){this.unlocalHook(e),this.unhook(this.subTraits(0),"dirtyStamp",e,"a"),this.unhook(this.subTraits(0),"dirtyStamp",e,"b")},unlocalHook:function(e){this.unhook(this._t,"anchorPoint",e,"a")}},["type","cache","anchorPoint"].concat(o.grantAll())),p=f.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[l("type"),h.grant("type")]].concat(h.grantMany(["id","tag"])),[h]);n({GPrimTrait:h,GPrim:p})},e["/painter/all.js"]=function(e,t,n){n({HonestPainter:e("./honestpainter").HonestPainter})},e["/lib/autorepaint.js"]=function(e,t,n){var r=e("./colortraits"),i=e("./geometry"),s=e("./eventstream"),o=r.Klass,u=r.Trait,a=r.compose,f=function(e){e.enableAutoRepaint()},l=function(e){e.disableAutoRepaint()},c=a([s],{__init:function(e){this.subTraits(0).__init(),this._t.setautorepaint(e==null||e.autorepaint==undefined?!1:e.autorepaint);if(this._t.autorepaint()){this.createEventStream("system");var t=this;this.subscribe("system",function(e){e.type=="addActor"&&e.actor.enableAutoRepaint?e.actor.forEach(f):e.type=="removeActor"&&e.actor.disableAutoRepaint&&e.actor.forEach(l),t.owner().invalidate()})}},autorepaint:function(){return this._t.autorepaint()}},["autorepaint"]);n({AutoRepaintTrait:c})},e["/lib/colortraits.js"]=function(e,t,n){function v(e){var t={},n=a(e);for(var r in e._properties)e._properties.hasOwnProperty(r)&&(t[r]=n+r);e._defaultNameMap=t}function w(e,t,n){p(e,n),n=d(n);var r={},o=[],u=[],a={},f=c(y,{_methods:r,_lMethods:a,_directUsedTraits:e,_properties:n});for(var l=0;l<e.length;++l){var b=e[l],w=b._methods;s(w,function(e){r[e]!==undefined&&r[e]!==w[e]?i(!1,"`"+e+"' method conflicts!!!"):r[e]=w[e]}),o=o.concat(b._usedTraits),o.push(b),u.push(e[l]._namesMap)}f._usedTraits=o,v(f);var E=m(f,n);return u.push(E),f._namesMap=g(u),s(t,function(e){var n=t[e];i(typeof n=="function","expect function"),h(e)?a[e]={_ownerTrait:f,_func:n}:r[e]={_ownerTrait:f,_func:n}}),f}function E(e){var t={},n=e._aggregateTrait,r=n._properties;for(var i in r){if(!r.hasOwnProperty(i))continue;var s=r[i],o;s&&s.isGrant?o=wt([s,n.grant(i)]):o=n.grant(i)}return t}function S(e){var t={},n=e.proto();n!=null&&n.isEntity&&l(t,n._properties);var r=e._aggregateTrait,i=r._properties;for(var s in i)i.hasOwnProperty(s)&&(t[s]=e);return t}function x(e,t){return function(){var n=this._t;this._t=this._ts[t];var r=e.call(this);return this._t=n,r}}function T(e,t){return function(n){var r=this._t;this._t=this._ts[t];var i=e.call(this,n);return this._t=r,i}}function N(e,t){return function(n,r){var i=this._t;this._t=this._ts[t];var s=e.call(this,n,r);return this._t=i,s}}function C(e,t){return function(n,r,i){var s=this._t;this._t=this._ts[t];var o=e.call(this,n,r,i);return this._t=s,o}}function k(e,t){return function(n,r,i,s){var o=this._t;this._t=this._ts[t];var u=e.call(this,n,r,i,s);return this._t=o,u}}function L(e,t){return function(n,r,i,s,o){var u=this._t;this._t=this._ts[t];var a=e.call(this,n,r,i,s,o);return this._t=u,a}}function A(e,t){return function(n,r,i,s,o,u){var a=this._t;this._t=this._ts[t];var f=e.call(this,n,r,i,s,o,u);return this._t=a,f}}function O(e,t){return function(n,r,i,s,o,u,a){var f=this._t;this._t=this._ts[t];var l=e.call(this,n,r,i,s,o,u,a);return this._t=f,l}}function M(e,t){return function(n,r,i,s,o,u,a,f){var l=this._t;this._t=this._ts[t];var c=e.call(this,n,r,i,s,o,u,a,f);return this._t=l,c}}function D(e,t,n){return function(){return e.call(this._o)}}function P(e,t,n){return function(t){return e.call(this._o,t)}}function H(e,t,n){return function(t,n){return e.call(this._o,t,n)}}function B(e,t,n){return function(t,n,r){return e.call(this._o,t,n,r)}}function j(e,t,n){return function(t,n,r,i){return e.call(this._o,t,n,r,i)}}function F(e,t,n){return function(t,n,r,i,s){return e.call(this._o,t,n,r,i,s)}}function I(e,t,n){return function(t,n,r,i,s,o){return e.call(this._o,t,n,r,i,s,o)}}function q(e,t,n){return function(t,n,r,i,s,o,u){return e.call(this._o,t,n,r,i,s,o,u)}}function R(e,t,n){return function(t,n,r,i,s,o,u,a){return e.call(this._o,t,n,r,i,s,o,u,a)}}function z(e,t,n,r){var o=e._globalNameMap,u={_o:e,_ownerTrait:t};n[a(t)]==null?u._ownerEntity=r[a(t)]._ownerEntity:u._ownerEntity=e;var f=t._defaultNameMap;s(t._properties,function(e){var t="set"+e,n=o[f[e]];u[e]=function(){return this._o._propertiesStore[n]},u[t]=function(e){return this._o._propertiesStore[n]=e,this._o}});var l=t._lMethods;for(var c in l){if(!l.hasOwnProperty(c))continue;i(!u.hasOwnProperty(c),"local properties's getter setter conflict local function"),u[c]=U[l[c]._func.length](l[c]._func,a(t),e)}return u}function W(e,t,n){var r={},i=e._usedTraits;for(var s in i)if(i.hasOwnProperty(s)){var o=i[s];r[a(o)]=z(e,o,n,t._ts)}return r}function X(e){var t=e._ts,n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=c(t[r],{_o:e}));e._ts=n}function V(e,t,n){return function(){var n=this._o,r=n._t;n._t=n._ts[t];var i=e.call(n);return n._t=r,i}}function $(e,t,n){return function(n){var r=this._o,i=r._t;r._t=r._ts[t];var s=e.call(r,n);return r._t=i,s}}function J(e,t,n){return function(n,r){var i=this._o,s=i._t;i._t=i._ts[t];var o=e.call(i,n,r);return i._t=s,o}}function K(e,t,n){return function(n,r,i){var s=this._o,o=s._t;s._t=s._ts[t];var u=e.call(s,n,r,i);return s._t=o,u}}function Q(e,t,n){return function(n,r,i,s){var o=this._o,u=o._t;o._t=o._ts[t];var a=e.call(o,n,r,i,s);return o._t=u,a}}function G(e,t,n){return function(n,r,i,s,o){var u=this._o,a=u._t;u._t=u._ts[t];var f=e.call(u,n,r,i,s,o);return u._t=a,f}}function Y(e,t,n){return function(n,r,i,s,o,u){var a=this._o,f=a._t;a._t=a._ts[t];var l=e.call(a,n,r,i,s,o,u);return a._t=f,l}}function Z(e,t,n){return function(n,r,i,s,o,u,a){var f=this._o,l=f._t;f._t=f._ts[t];var c=e.call(f,n,r,i,s,o,u,a);return f._t=l,c}}function et(e,t,n){return function(n,r,i,s,o,u,a,f){var l=this._o,c=l._t;l._t=l._ts[t];var h=e.call(l,n,r,i,s,o,u,a,f);return l._t=c,h}}function nt(e,t){var n=t._lMethods,r={_o:e,_ownerTrait:t};for(var i in n)n.hasOwnProperty(i)&&(r[i]=tt[n[i]._func.length](n[i]._func,a(t),e));return r}function rt(e){var t={};for(var n in e._usedTraits)if(e._usedTraits.hasOwnProperty(n)){var r=e._usedTraits[n];t[a(r)]=nt(e,r)}return t}function it(e){var t=e._subTraits,n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=c(t[r],{_o:e}));e._subTraits=n}function st(e,t){var n=e._namesMap,r=t._globalNameMap,i={},s=t._maxGlobalNameNum,o;for(var u in n){var a=n[u];for(var f in a)if(a.hasOwnProperty(f)){var l=a[f];if(!r.hasOwnProperty(l)){o=s++;break}if(o===undefined){o=r[l];continue}if(o!=r[l]){o=s++;break}}for(var f in a)a.hasOwnProperty(f)&&(i[a[f]]=o);o=undefined}e._globalNameMap=i,e._maxGlobalNameNum=s}function lt(e,t){var n=e._globalNameMap,r=e._properties,o,u,a;s(r,function(t){o=r[t],a=o._specialProperties,u=o._aggregateTrait._defaultNameMap[t];var s=n[u],f,l="set"+t;a.hasOwnProperty(t)?(f=a[t],f==Tt?(e.hasOwnProperty(t)||(e[t]=function(){throw ot+t}),e.hasOwnProperty(l)||(e[l]=function(){throw ut+t})):f==xt?(i(!e.hasOwnProperty(t),"READONLY property: "+t+" getter conflict with methods"),e[t]=function(){return this._propertiesStore[s]},e.hasOwnProperty(l)||(e[l]=function(){throw at+t})):f==Nt&&(i(!e.hasOwnProperty(t),"CUSTOM_SETTER property: "+t+" getter conflict with methods"),e[t]=function(){return this._propertiesStore[s]},e.hasOwnProperty(l)||(e[l]=function(){throw ft+t}))):(i(!e.hasOwnProperty(t),"public property: "+t+" getter conflict with methods"),i(!e.hasOwnProperty(l),"public property: "+t+" setter conflict with methods"),e[t]=function(){return this._propertiesStore[s]},e[l]=function(e){return this._propertiesStore[s]=e,this})})}function ct(e,t,n){var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=e[i]);var s=t._usedTraits;for(var o=0;o<s.length;++o){var u=s[o];r[a(u)]=u,n[a(u)]=u}return r[a(t)]=t,n[a(t)]=t,r}function ht(e){var t=[],n={},r=0;for(var s in e)if(e.hasOwnProperty(s)){var o=e[s];typeof o=="string"?t[r++]=o:o instanceof Array?typeof o[0]=="string"?t[r++]=o:o[0].type?(t[r++]=[o[0].name,o[1]],n[o[0].name]=o[0].type):i(!1,"bad property"+o):o.type?(t[r++]=o.name,n[o.name]=o.type):i(!1,"bad property"+o)}return{allPropsAry:t,specialProperties:n}}function pt(e,t,n,r){var i=e.proto();if(r==null&&t==null&&n==null){e._propertiesStore=c(i._propertiesStore),X(e),it(e);return}r==null&&(r=[]),t==null&&(t={}),n==null&&(n=[]),e._propertiesStore=c(i._propertiesStore);var s=ht(n);e._specialProperties=s.specialProperties;var o=w(r,t,s.allPropsAry),u=o._methods;for(var f in u){if(!u.hasOwnProperty(f))continue;var l=u[f],h=_[l._func.length](l._func,a(l._ownerTrait));h._ownerEntity=e,e[f]=h}e._aggregateTrait=o;var p={};e._usedTraits=ct(i._usedTraits,o,p);var d=E(e),v=m(o,d);return e._properties=S(e),e._namesMap=g([i._namesMap,o._namesMap,v]),st(e,i),e._ts=W(e,i,p),e._subTraits=rt(e,r),lt(e,i),e}function dt(e,t){if(e._globalNameLocalpropInfo==null||!e.__proto__.hasOwnProperty("_globalNameLocalpropInfo")){var n={};s(e._usedTraits,function(t){var r=e._usedTraits[t];s(r._properties,function(e){n[r._defaultNameMap[e]]={traitId:t,propName:e}})});var r=e._globalNameMap,i=e._namesMap,o={};s(i,function(e){var t=i[e],u,a;s(t,function(e){u==null&&(a=r[e],u=[],o[a]=u),u.push(n[e])})}),e.__proto__._globalNameLocalpropInfo=o}}function vt(e,t,n,r,i){e._hookInfos==null&&(e._hookInfos={a:{},b:{}});var s=e._hookInfos[t],o=s[i];return o==null?(o={defaultMappedName:r,cb:n},s[i]=o):o instanceof Array?u(o,function(e){return e.defaultMappedName===r&&e.cb===n?(e.cb=n,!0):!1})||o.push({defaultMappedName:r,cb:n}):o.defaultMappedName===r&&o.cb===n?o.cb=n:s[i]=[o,{defaultMappedName:r,cb:n}],o}function mt(e,t){var n,r,i=e._hookInfos.b[t],s=e._hookInfos.a[t],u=i instanceof Array,a=s instanceof Array;return!u&&!a?i==undefined&&s!=undefined?(n=function(n){var r=this._o._propertiesStore[t];return this._o._propertiesStore[t]=n,s.cb(e,r,n),n},r=function(n){var r=this._propertiesStore[t];return this._propertiesStore[t]=n,s.cb(e,r,n),n}):i!=undefined&&s==undefined?(n=function(n){var r=this._o._propertiesStore[t];return i.cb(e,r,n)?n=r:this._o._propertiesStore[t]=n,n},r=function(n){var r=this._propertiesStore[t];return i.cb(e,r,n)?n=r:this._propertiesStore[t]=n,n}):i!=undefined&&s!=undefined?(n=function(n){var r=this._o._propertiesStore[t];return i.cb(e,r,n)?n=r:this._o._propertiesStore[t]=n,s.cb(e,r,n),n},r=function(n){var r=this._propertiesStore[t];return i.cb(e,r,n)?n=r:this._propertiesStore[t]=n,s.cb(e,r,n),n}):(n=function(e){return this._o._propertiesStore[t]=e},r=function(e){return this._propertiesStore[t]=e}):!u&&a?i==undefined?(n=function(n){var r=this._o._propertiesStore[t];return this._o._propertiesStore[t]=n,o(s,function(t){t.cb(e,r,n)}),n},r=function(n){var r=this._propertiesStore[t];return this._propertiesStore[t]=n,o(s,function(t){t.cb(e,r,n)}),n}):(n=function(n){var r=this._o._propertiesStore[t];return i(e,r,n)?n=r:this._o._propertiesStore[t]=n,o(s,function(t){t.cb(e,r,n)}),n},r=function(n){var r=this._propertiesStore[t];return i(e,r,n)?n=r:this._propertiesStore[t]=n,o(s,function(t){t.cb(e,r,n)}),n}):u&&!a?s==undefined?(n=function(n){var r=this._o._propertiesStore[t],s=!1;return o(i,function(t){s|=t.cb(e,r,n)}),s?n=r:this._o._propertiesStore[t]=n,n},r=function(n){var r=this._propertiesStore[t],s=!1;return o(i,function(t){s|=t.cb(e,r,n)}),s?n=r:this._propertiesStore[t]=n,n}):(n=function(n){var r=this._o._propertiesStore[t],u=!1;return o(i,function(t){u|=t.cb(e,r,n)}),u?n=r:this._o._propertiesStore[t]=n,s.cb(e,r,n),n},r=function(n){var r=this._propertiesStore[t],u=!1;return o(i,function(t){u|=t.cb(e,r,n)}),u?n=r:this._propertiesStore[t]=n,s.cb(e,r,n),n}):(n=function(n){var r=this._o._propertiesStore[t],u=!1;return o(i,function(t){u|=t.cb(e,r,n)}),u?n=r:this._o._propertiesStore[t]=n,o(s,function(t){t.cb(e,r,n)}),n},r=function(n){var r=this._propertiesStore[t],u=!1;return o(i,function(t){u|=t.cb(e,r,n)}),u?n=r:this._propertiesStore[t]=n,o(s,function(t){t.cb(e,r,n)}),n}),{tSetter:n,eSetter:r}}function gt(e,t){var n=e._ts,r=mt(e,t),i=e._globalNameLocalpropInfo[t],s,u,a,f;o(i,function(t){u=t.propName,a="set"+u,f=e._properties[u],s=n[t.traitId],s[a]=r.tSetter,f&&f._aggregateTrait==e._usedTraits[t.traitId]&&f._specialProperties[u]==null&&(e[a]=r.eSetter)})}function yt(e,t){var n,r;return i(typeof t=="number","getDirectedUsedTrait bad index type"),e._t==null?n=e._aggregateTrait:n=e._t._ownerTrait,n._directUsedTraits[t]}function wt(e){var t=new bt;for(var n=0;n<e.length;++n)t.merge(e[n]);return t}var r=Array.prototype.slice,i=function(e,t){if(e)return!0;var n=t===undefined?"assert !!!":t;throw console.log("exception throwed: "+n),n},s=function(e,t){for(var n in e)e.hasOwnProperty(n)&&t(n,e)},o=function(){return Array.prototype.forEach?function(e,t){e.forEach(t)}:function(e,t){var n=0,r=e.length;for(;n<r;n++)t(e[n],n)}}(),u=function(){return Array.prototype.some?function(e,t){return e.some(t)}:function(e,t){var n=0;while(n<e.length){if(t(e[n],n,e))return!0;n++}return!1}}(),a=function(){var e=0;return function(t){return t.__identifier===undefined?t.__identifier=e++:t.__identifier}}(),f=function(){return Object.create?Object.create:function(e){var t=function(){};t.prototype=e;var n=new t;return n.__proto__=e,n}}(),l=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},c=function(e,t){var n=f(e);return t&&l(n,t),n},h=function(e){return e[0]!=undefined?e[0]=="_"&&e[1]=="_":e.indexOf("__")==0},p=function(e,t){var n={},r=[];if(t===undefined)return;i(t instanceof Array,"bad properties type!!!!");for(var s=0;s<t.length;++s){var o=t[s];if(o instanceof Array){i(o.length===2,"bad properties array value length"),i(typeof o[0]=="string","bad properties array first value"),i(o[1].isGrant,"bad properties array second value");for(var f in o[1].grantTraitIdentifiers)o[1].grantTraitIdentifiers.hasOwnProperty(f)&&r.push(f)}else typeof o!="string"&&i(!1,"bad properties !!!!!!!")}var l;for(var s=0;s<e.length;++s)l=e[s],n[a(l)]=a(l);i(!u(r,function(e){if(n[e]===undefined)return!0}),"argument is not valid properties!!! ")},d=function(e){var t={};if(e!=undefined)for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];r instanceof Array?t[r[0]]=r[1]:typeof r=="string"&&(t[r]=undefined)}return t},m=function(e,t){var n=[];for(var r in t){if(!t.hasOwnProperty(r))continue;var s=e._defaultNameMap[r],o=t[r],u={};u[s]=s;if(o!=undefined){i(o.isGrant,"bad properties value!!!");for(var a in o.grantNames){if(!o.grantNames.hasOwnProperty(a))continue;u[a]=a}}n.push(u)}return n},g=function(e){var t={},n=0,r=e.length,i,s={};for(var o=0;o<r;++o){i=e[o];for(var u in i){var a=i[u],f={id:n,gId:n};for(var l in a){if(!a.hasOwnProperty(l))continue;if(t[l]!=null){var c=s[t[l].id];for(var h in c)c.hasOwnProperty(h)&&(c[h].id=n)}else t[l]=f,s[n]==null&&(s[n]={}),s[n][t[l].gId]=t[l]}++n}}var p={};for(var l in t){if(!t.hasOwnProperty(l))continue;p[t[l].id]==null&&(p[t[l].id]={}),p[t[l].id][l]=l}return p},y={},b=function(){var e=c(y,{_methods:{},_lMethods:{},_usedTraits:[],_directUsedTraits:[],_properties:{},_defaultNameMap:{},_namesMap:[],forbidden:{_ownerTrait:e}});return y.isTrait=function(){return!0},y.extend=function(e,t){p([this],t),t=d(t);var n=l({},this._methods),r={},s=c(y,{_methods:n,_lMethods:r,_properties:t});s._usedTraits=this._usedTraits.concat([this]),s._directUsedTraits=[this],v(s);var o=m(s,t);s._namesMap=g([this._namesMap,o]);for(var u in e){var a=e[u];i(typeof a=="function","expect function"),h(u)?r[u]={_ownerTrait:s,_func:a}:n[u]={_ownerTrait:s,_func:a}}return s},y.hasMethod=function(e){return!!this._methods[e]},y.grant=function(e){return new bt(this,e)},y.grantAll=function(){var e=[],t=this;return s(this._properties,function(n){e.push([n,new bt(t,n)])}),e},y.grantMany=function(e){var t=[],n=this;return o(e,function(e){t.push([e,new bt(n,e)])}),t},y.grantExclude=function(e){var t=[],n=this;return s(this._properties,function(r){u(e,function(e){return e==r?!0:!1})||t.push([r,new bt(n,r)])}),t},y.neg=function(){if(this._negtive)return _negtive;var t={},n={},r=this._usedTraits.concat([this]),i=c(y,{_methods:t,_lMethods:n,_usedTraits:r,_directUsedTraits:[this],_properties:{},_defaultNameMap:{},_namesMap:{}}),s=this._methods;for(var o in s)t[o]=e.forbidden;s=trati._lMethods;for(var o in s)n[o]=e.forbidden;return i._negtive=this,i},y.rename=function(e){var t={},n=this._usedTraits.concat([this]),r=c(y,{_methods:t,_lMethods:this._lMethods,_usedTraits:n,_directUsedTraits:[this],_properties:{},_defaultNameMap:{},_namesMap:{}}),s=this._methods;for(var o in s){var u=e[o];u=u?u:o,t[u]!==undefined&&t[u]!==s[o]&&t[u]._ownerTrait!==s[o]._ownerTrait?i(!1,"`"+u+"' name conflicts!!!"):t[u]=s[o]}return r},y.exclude=function(e){var t={},n=this._usedTraits.concat([this]),r=c(y,{_methods:t,_lMethods:this._lMethods,_usedTraits:n,_directUsedTraits:[this],_properties:{},_defaultNameMap:{},_namesMap:{}}),i=this._methods;for(var s in i)t[s]=i[s];for(var o=0;o<e.length;++o)delete t[e[o]];return r},y.select=function(e){var t={},n=this._usedTraits.concat([this]),r=c(y,{_methods:t,_lMethods:this._lMethods,_usedTraits:n,_directUsedTraits:[this],_properties:{},_defaultNameMap:{},_namesMap:{}}),i=this._methods;for(var s=0;s<e.length;++s){var o=i[e[s]];null!=o&&(t[e[s]]=o)}return r},y.alias=function(e){var t={},n=this._usedTraits.concat([this]),r=c(y,{_methods:t,_lMethods:this._lMethods,_usedTraits:n,_directUsedTraits:[this],_properties:{},_defaultNameMap:{},_namesMap:{}}),s=this._methods;for(var o in s)t[o]=s[o];for(var u in e){var a=e[u];t[a]!==undefined&&t[a]!==s[u]&&t[a]._ownerTrait!==s[u]._ownerTrait?i(!1,"`"+a+"' name conflicts!!!"):t[a]=s[u]}return r},y.prefix=function(e){var t={},n=this._usedTraits.concat([this]),r=c(y,{_methods:t,_lMethods:this._lMethods,_usedTraits:n,_directUsedTraits:[this],_properties:{},_defaultNameMap:{},_namesMap:{}}),i=this._methods;for(var s in i)t[e+s]=i[s];return r},e}(),_=[x,T,N,C,k,L,A,O,M],U=[D,P,H,B,j,F,I,q,R],tt=[V,$,J,K,Q,G,Y,Z,et],ot="Error: get private property: ",ut="Error: set private property: ",at="Error: set readonly property: ",ft="Error: did't give a setter function then you set custom_setter property: ",bt=function(){function e(e,t){this.grantNames={},this.grantTraitIdentifiers={},this.isGrant=!0;if(e!=undefined){var n=e._defaultNameMap[t],r=a(e);this.grantNames[n]=n,this.grantTraitIdentifiers[r]=r}return this}return e.prototype.merge=function(e){var t=this.grantNames,n=e.grantNames;for(var r in n)n.hasOwnProperty(r)&&(t[r]=r);var i=this.grantTraitIdentifiers,s=e.grantTraitIdentifiers;for(var r in s)s.hasOwnProperty(r)&&(i[r]=r);return this},e.prototype.compose=function(e){var t=[this];return e instanceof Array?t=t.concat(e):t=t.concat(r.call(arguments,0)),wt(t)},e}(),Et={_usedTraits:[],_namesMap:[],_properties:{},_specialProperties:{},_propertiesStore:{},_globalNameMap:{},_maxGlobalNameNum:0,isEntity:function(){return!0},proto:function(){return this.__proto__},aggregateTrait:function(){return this._aggregateTrait},execProto:function(e,t,n,r,i,s,o,u,a){var f=this._t._ownerEntity.proto()[e];return f.call(this,t,n,r,i,s,o,u,a)},tryExec:function(e,t,n,r,i,s,o,u,a){var f=this[e];if(f)return f.call(this,t,n,r,i,s,o,u,a)},hasMethod:function(e){return!!this[e]},hasProperty:function(e){return this._properties.hasOwnProperty(e)},clone:function(e,t,n){var r=c(this);return pt(r,e,t,n),r},hook:function(e,t,n,r){var i=e._ownerTrait;if(i==null||n==null)return this;r==undefined&&(r="a");var s=i._defaultNameMap[t],o=this._globalNameMap[s];return dt(this,o),vt(this,r,n,s,o),gt(this,o),this},hookMany:function(e,t,n,r){var i=t.length;for(var s=0;s<i;++s)this.hook(e,t[s],n,r);return this},unhook:function(e,t,n,r){var s=e._ownerTrait;if(s==null)return this;r==undefined&&(r="a");var o=s._defaultNameMap[t],a=this._globalNameMap[o],f=this._hookInfos[r],l=f[a];l==null&&i(!1,"unhook cb is undefined!!");if(l instanceof Array){var c=l.length==2
;u(l,function(e,t){return e.defaultMappedName===o&&e.cb===n?(l.splice(t,1),!0):!1})?c&&(f[a]=f[a][0]):i(!1,"unhook a no exist cb hook")}else l.defaultMappedName===o&&l.cb===n?delete f[a]:i(!1,"unhook a no exist cb");return gt(this,a),this},unhookMany:function(e,t,n,r){var i=t.length;for(var s=0;s<i;++s)this.unhook(e,t[s],n,r);return this},subTraits:function(e){var t=yt(this,e);if(t!=null)return this._subTraits[a(t)]}},St=Et.clone({extend:function(e,t,n,r){var i;return r?i=this.clone(r[0],r[1],r[2]):i=this.clone(),i._objectProto=this._objectProto.clone(e,t,n),i}});St.create=function(){var e=this._objectProto.clone();return e.initialize.apply(e,arguments),e.Klass=this,e},St._objectProto=Et.clone({initialize:function(){}});var xt=function(e){return{name:e,type:xt}},Tt=function(e){return{name:e,type:Tt}},Nt=function(e){return{name:e,type:Nt}};n({Trait:b,compose:w,Entity:Et,Klass:St,composeGrantProperties:wt,READONLY:xt,PRIVATE:Tt,CUSTOM_SETTER:Nt})},e["/sprites/clip.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/clipgprim").ClipTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("clipw"),u.grant("clipw")],[s("cliph"),u.grant("cliph")]].concat(u.grantMany(["id","tag","gprim","clipx","clipy"])),[u]);n(a)},e["/sprites/circle.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/circlegprim").CircleTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("radius"),u.grant("radius")],[s("strokeStyle"),u.grant("strokeStyle")],[s("fillStyle"),u.grant("fillStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash"])),[u]);n(a)},e["/gprims/proceduregprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./gprim").GPrimTrait,s=r.Klass,o=r.READONLY,u={},a=i.extend({__init:function(e){this.subTraits(0).__init(e),this._t.settype("proceduregprim"),e==undefined&&(e=u),this._t.setdraw(e.draw==undefined?function(e,t){}:e.draw),this._t.setlocalBbox(e.localBbox==undefined?function(){return indetifyRect}:e.localBbox),this._t.setlocalInside(e.locaInside==undefined?function(e,t){return!1}:e.localInside)}},["localBbox","localInside","localDraw"].concat(i.grantAll())),f=s.create({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[o("type"),a.grant("type")],["localBbox",a.grant("localBbox")],["localInside",a.grant("localInside")],["draw",a.grant("draw")]].concat(PathTrait.grantMany("id")),[a]);n({ProcedureTrait:a,ProcedureKlass:f})},e["/treeactor.js"]=function(e,t,n){var r=e("./treeactorbase").TreeActor,i=r.extend({initialize:function(e){this.execProto("initialize",e),this.dynamicAttrs={}},setProperty:function(e,t){if(!this.hasProperty(e))throw"actor has no property named:"+e;return this["set"+e](t),this},property:function(e){if(this.hasProperty(e))return this[e]();throw"actor has no property named:"+e},setDynamicProperty:function(e,t){return this.dynamicAttrs[e]=t,this},dynamicProperty:function(e){return this.dynamicAttrs[e]}});n({TreeActor:i})},e["/thirdlib/rx/rx.js"]=function(e,t,n){(function(e,t){function o(){}function u(e){return e}function a(){return(new Date).getTime()}function f(e,t){return e===t}function l(e,t){return e-t}function c(e){return e.toString()}function h(e){throw e}function m(){if(this.isDisposed)throw new Error(v)}function y(e,t){return e.length===1&&Array.isArray(e[t])?e[t]:g.call(e)}function x(e,t){var n=new Array(e);for(var r=0;r<e;r++)n[r]=t();return n}function F(e,t){this.scheduler=e,this.disposable=t,this.isDisposed=!1}function I(e,t,n,r,i){this.scheduler=e,this.state=t,this.action=n,this.dueTime=r,this.comparer=i||l,this.disposable=new P}function wt(e,t){return new Lt(function(n){var r=new P,i=new B;return i.setDisposable(r),r.setDisposable(e.subscribe(n.onNext.bind(n),function(e){var r,s;try{s=t(e)}catch(o){n.onError(o);return}r=new P,i.setDisposable(r),r.setDisposable(s.subscribe(n))},n.onCompleted.bind(n))),i})}function Ct(e,t){var n=this;return new Lt(function(r){var i=0,s=e.length;return n.subscribe(function(n){if(i<s){var o=e[i++],u;try{u=t(n,o)}catch(a){r.onError(a);return}r.onNext(u)}else r.onCompleted()},r.onError.bind(r),r.onCompleted.bind(r))})}function kt(e){return this.select(e).mergeObservable()}var n=typeof exports=="object"&&exports,r=typeof module=="object"&&module&&module.exports==n&&module,i=typeof global=="object"&&global;i.global===i&&(e=i);var s={Internals:{}},p="Sequence contains no elements.",d="Argument out of range",v="Object has been disposed",g=Array.prototype.slice,b={}.hasOwnProperty,w=this.inherits=s.Internals.inherits=function(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n},E=s.Internals.addProperties=function(e){var t=g.call(arguments,1);for(var n=0,r=t.length;n<r;n++){var i=t[n];for(var s in i)e[s]=i[s]}},S=s.Internals.addRef=function(e,t){return new Lt(function(n){return new A(t.getDisposable(),e.subscribe(n))})};Function.prototype.bind||(Function.prototype.bind=function(e){var t=this,n=g.call(arguments,1),r=function(){if(this instanceof r){function i(){}i.prototype=t.prototype;var s=new i,o=t.apply(s,n.concat(g.call(arguments)));return Object(o)===o?o:s}return t.apply(e,n.concat(g.call(arguments)))};return r});var T=Object("a"),N=T[0]!="a"||!(0 in T);Array.prototype.every||(Array.prototype.every=function(t){var n=Object(this),r=N&&{}.toString.call(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if({}.toString.call(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(t){var n=Object(this),r=N&&{}.toString.call(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if({}.toString.call(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(e){var t=[],n,r=new Object(this);for(var i=0,s=r.length>>>0;i<s;i++)n=r[i],i in r&&e.call(arguments[1],n,i,r)&&t.push(n);return t}),Array.isArray||(Array.isArray=function(e){return Object.prototype.toString.call(e)=="[object Array]"}),Array.prototype.indexOf||(Array.prototype.indexOf=function(t){var n=Object(this),r=n.length>>>0;if(r===0)return-1;var i=0;arguments.length>1&&(i=Number(arguments[1]),i!==i?i=0:i!==0&&i!=Infinity&&i!==-Infinity&&(i=(i>0||-1)*Math.floor(Math.abs(i))));if(i>=r)return-1;var s=i>=0?i:Math.max(r-Math.abs(i),0);for(;s<r;s++)if(s in n&&n[s]===t)return s;return-1});var C=function(e,t){this.id=e,this.value=t};C.prototype.compareTo=function(e){var t=this.value.compareTo(e.value);return t===0&&(t=this.id-e.id),t};var k=function(e){this.items=new Array(e),this.length=0},L=k.prototype;L.isHigherPriority=function(e,t){return this.items[e].compareTo(this.items[t])<0},L.percolate=function(e){if(e>=this.length||e<0)return;var t=e-1>>1;if(t<0||t===e)return;if(this.isHigherPriority(e,t)){var n=this.items[e];this.items[e]=this.items[t],this.items[t]=n,this.percolate(t)}},L.heapify=function(e){e===t&&(e=0);if(e>=this.length||e<0)return;var n=2*e+1,r=2*e+2,i=e;n<this.length&&this.isHigherPriority(n,i)&&(i=n),r<this.length&&this.isHigherPriority(r,i)&&(i=r);if(i!==e){var s=this.items[e];this.items[e]=this.items[i],this.items[i]=s,this.heapify(i)}},L.peek=function(){return this.items[0].value},L.removeAt=function(e){this.items[e]=this.items[--this.length],delete this.items[this.length],this.heapify()},L.dequeue=function(){var e=this.peek();return this.removeAt(0),e},L.enqueue=function(e){var t=this.length++;this.items[t]=new C(k.count++,e),this.percolate(t)},L.remove=function(e){for(var t=0;t<this.length;t++)if(this.items[t].value===e)return this.removeAt(t),!0;return!1},k.count=0;var A=s.CompositeDisposable=function(){this.disposables=y(arguments,0),this.isDisposed=!1,this.length=this.disposables.length},O=A.prototype;O.add=function(e){this.isDisposed?e.dispose():(this.disposables.push(e),this.length++)},O.remove=function(e){var t=!1;if(!this.isDisposed){var n=this.disposables.indexOf(e);n!==-1&&(t=!0,this.disposables.splice(n,1),this.length--,e.dispose())}return t},O.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var e=this.disposables.slice(0);this.disposables=[],this.length=0;for(var t=0,n=e.length;t<n;t++)e[t].dispose()}},O.clear=function(){var e=this.disposables.slice(0);this.disposables=[],this.length=0;for(var t=0,n=e.length;t<n;t++)e[t].dispose()},O.contains=function(e){return this.disposables.indexOf(e)!==-1},O.toArray=function(){return this.disposables.slice(0)};var M=s.Disposable=function(e){this.isDisposed=!1,this.action=e};M.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var _=M.create=function(e){return new M(e)},D=M.empty={dispose:o},P=s.SingleAssignmentDisposable=function(){this.isDisposed=!1,this.current=null},H=P.prototype;H.disposable=function(e){return e?this.setDisposable(e):this.getDisposable()},H.getDisposable=function(){return this.current},H.setDisposable=function(e){if(this.current)throw new Error("Disposable has already been assigned");var t=this.isDisposed;t||(this.current=e),t&&e&&e.dispose()},H.dispose=function(){var e;this.isDisposed||(this.isDisposed=!0,e=this.current,this.current=null),e&&e.dispose()};var B=s.SerialDisposable=function(){this.isDisposed=!1,this.current=null};B.prototype.getDisposable=function(){return this.current},B.prototype.setDisposable=function(e){var t=this.isDisposed,n;t||(n=this.current,this.current=e),n&&n.dispose(),t&&e&&e.dispose()},B.prototype.disposable=function(e){if(!e)return this.getDisposable();this.setDisposable(e)},B.prototype.dispose=function(){var e;this.isDisposed||(this.isDisposed=!0,e=this.current,this.current=null),e&&e.dispose()};var j=s.RefCountDisposable=function(){function e(e){this.disposable=e,this.disposable.count++,this.isInnerDisposed=!1}function t(e){this.underlyingDisposable=e,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return e.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,this.disposable.count===0&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},t.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,this.count===0&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},t.prototype.getDisposable=function(){return this.isDisposed?D:new e(this)},t}();F.prototype.dispose=function(){var e=this;this.scheduler.schedule(function(){e.isDisposed||(e.isDisposed=!0,e.disposable.dispose())})},I.prototype.invoke=function(){this.disposable.disposable(this.invokeCore())},I.prototype.compareTo=function(e){return this.comparer(this.dueTime,e.dueTime)},I.prototype.isCancelled=function(){return this.disposable.isDisposed},I.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var q=s.Scheduler=function(){function t(e,t,n,r){this.now=e,this._schedule=t,this._scheduleRelative=n,this._scheduleAbsolute=r}function n(e,t){var n=t.first,r=t.second,i=new A,s=function(t){r(t,function(t){var n=!1,r=!1,o=e.scheduleWithState(t,function(e,t){return n?i.remove(o):r=!0,s(t),D});r||(i.add(o),n=!0)})};return s(n),i}function r(e,t,n){var r=t.first,i=t.second,s=new A,o=function(t){i(t,function(t,r){var i=!1,u=!1,a=e[n].call(e,t,r,function(e,t){return i?s.remove(a):u=!0,o(t),D});u||(s.add(a),i=!0)})};return o(r),s}function i(e,t){return t(),D}var s=t.prototype;return s.catchException=function(e){return new J(this,e)},s.schedulePeriodic=function(e,t){return this.schedulePeriodicWithState(null,e,function(){t()})},s.schedulePeriodicWithState=function(t,n,r){var i=t,s=e.setInterval(function(){i=r(i)},n);return _(function(){e.clearInterval(s)})},s.schedule=function(e){return this._schedule(e,i)},s.scheduleWithState=function(e,t){return this._schedule(e,t)},s.scheduleWithRelative=function(e,t){return this._scheduleRelative(t,e,i)},s.scheduleWithRelativeAndState=function(e,t,n){return this._scheduleRelative(e,t,n)},s.scheduleWithAbsolute=function(e,t){return this._scheduleAbsolute(t,e,i)},s.scheduleWithAbsoluteAndState=function(e,t,n){return this._scheduleAbsolute(e,t,n)},s.scheduleRecursive=function(e){return this.scheduleRecursiveWithState(e,function(e,t){e(function(){t(e)})})},s.scheduleRecursiveWithState=function(e,t){return this.scheduleWithState({first:e,second:t},function(e,t){return n(e,t)})},s.scheduleRecursiveWithRelative=function(e,t){return this.scheduleRecursiveWithRelativeAndState(t,e,function(e,t){e(function(n){t(e,n)})})},s.scheduleRecursiveWithRelativeAndState=function(e,t,n){return this._scheduleRelative({first:e,second:n},t,function(e,t){return r(e,t,"scheduleWithRelativeAndState")})},s.scheduleRecursiveWithAbsolute=function(e,t){return this.scheduleRecursiveWithAbsoluteAndState(t,e,function(e,t){e(function(n){t(e,n)})})},s.scheduleRecursiveWithAbsoluteAndState=function(e,t,n){return this._scheduleAbsolute({first:e,second:n},t,function(e,t){return r(e,t,"scheduleWithAbsoluteAndState")})},t.now=a,t.normalize=function(e){return e<0&&(e=0),e},t}(),R="Scheduler is not allowed to block the thread",U=q.immediate=function(){function e(e,t){return t(this,e)}function t(e,t,n){if(t>0)throw new Error(R);return n(this,e)}function n(e,t,n){return this.scheduleWithRelativeAndState(e,t-this.now(),n)}return new q(a,e,t,n)}(),z=q.currentThread=function(){function t(){e=new k(4)}function n(e,t){return this.scheduleWithRelativeAndState(e,0,t)}function r(n,r,i){var s=this.now()+q.normalize(r),o=new I(this,n,i,s),u;if(!e){u=new t;try{e.enqueue(o),u.run()}catch(a){throw a}finally{u.dispose()}}else e.enqueue(o);return o.disposable}function i(e,t,n){return this.scheduleWithRelativeAndState(e,t-this.now(),n)}var e;t.prototype.dispose=function(){e=null},t.prototype.run=function(){var t;while(e.length>0){t=e.dequeue();if(!t.isCancelled()){while(t.dueTime-q.now()>0);t.isCancelled()||t.invoke()}}};var s=new q(a,n,r,i);return s.scheduleRequired=function(){return e===null},s.ensureTrampoline=function(t){return e===null?this.schedule(t):t()},s}(),W=function(){function e(e,t){t(0,this._period);try{this._state=this._action(this._state)}catch(n){throw this._cancel.dispose(),n}}function t(e,t,n,r){this._scheduler=e,this._state=t,this._period=n,this._action=r}return t.prototype.start=function(){var t=new P;return this._cancel=t,t.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,e.bind(this))),t},t}();s.VirtualTimeScheduler=function(e){function t(){return this.toDateTimeOffset(this.clock)}function n(e,t){return this.scheduleAbsoluteWithState(e,this.clock,t)}function r(e,t,n){return this.scheduleRelativeWithState(e,this.toRelative(t),n)}function i(e,t,n){return this.scheduleRelativeWithState(e,this.toRelative(t-this.now()),n)}function s(e,t){return t(),D}function o(s,o){this.clock=s,this.comparer=o,this.isEnabled=!1,this.queue=new k(1024),e.call(this,t,n,r,i)}w(o,e);var u=o.prototype;return u.schedulePeriodicWithState=function(e,t,n){var r=new W(this,e,t,n);return r.start()},u.scheduleRelativeWithState=function(e,t,n){var r=this.add(this.clock,t);return this.scheduleAbsoluteWithState(e,r,n)},u.scheduleRelative=function(e,t){return this.scheduleRelativeWithState(t,e,s)},u.start=function(){var e;if(!this.isEnabled){this.isEnabled=!0;do e=this.getNext(),e!==null?(this.comparer(e.dueTime,this.clock)>0&&(this.clock=e.dueTime),e.invoke()):this.isEnabled=!1;while(this.isEnabled)}},u.stop=function(){this.isEnabled=!1},u.advanceTo=function(e){var t,n=this.comparer(this.clock,e);if(this.comparer(this.clock,e)>0)throw new Error(d);if(n===0)return;if(!this.isEnabled){this.isEnabled=!0;do t=this.getNext(),t!==null&&this.comparer(t.dueTime,e)<=0?(this.comparer(t.dueTime,this.clock)>0&&(this.clock=t.dueTime),t.invoke()):this.isEnabled=!1;while(this.isEnabled);this.clock=e}},u.advanceBy=function(e){var t=this.add(this.clock,e),n=this.comparer(this.clock,t);if(n>0)throw new Error(d);if(n===0)return;return this.advanceTo(t)},u.sleep=function(e){var t=this.add(this.clock,e);if(this.comparer(this.clock,t)>=0)throw new Error(d);this.clock=t},u.getNext=function(){var e;while(this.queue.length>0){e=this.queue.peek();if(!e.isCancelled())return e;this.queue.dequeue()}return null},u.scheduleAbsolute=function(e,t){return this.scheduleAbsoluteWithState(t,e,s)},u.scheduleAbsoluteWithState=function(e,t,n){var r=this,i=function(e,t){return r.queue.remove(s),n(e,t)},s=new I(r,e,i,t,r.comparer);return r.queue.enqueue(s),s.disposable},o}(q),s.HistoricalScheduler=function(e){function t(t,n){var r=t==null?0:t,i=n||l;e.call(this,r,i)}w(t,e);var n=t.prototype;return n.add=function(e,t){return e+t},n.toDateTimeOffset=function(e){return(new Date(e)).getTime()},n.toRelative=function(e){return e},t}(s.VirtualTimeScheduler);var X,V=o;(function(){function t(){if(!e.postMessage||e.importScripts)return!1;var t=!1,n=e.onmessage;return e.onmessage=function(){t=!0},e.postMessage("","*"),e.onmessage=n,t}if(typeof e.process=="object"&&Object.prototype.toString.call(e.process)==="[object process]")X=e.process.nextTick;else if(typeof e.setImmediate=="function")X=e.setImmediate,V=e.clearImmediate;else if(t()){var n="ms.rx.schedule"+Math.random(),r={},i=0;function s(e){if(typeof e.data=="string"&&e.data.substring(0,n.length)===n){var t=e.data.substring(n.length),i=r[t];i(),delete r[t]}}e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s,!1),X=function(t){var s=i++;r[s]=t,e.postMessage(n+s,"*")}}else if(!e.MessageChannel)"document"in e&&"onreadystatechange"in e.document.createElement("script")?X=function(t){var n=e.document.createElement("script");n.onreadystatechange=function(){t(),n.onreadystatechange=null,n.parentNode.removeChild(n),n=null},e.document.documentElement.appendChild(n)}:(X=function(t){return e.setTimeout(t,0)},V=e.clearTimeout);else{var o=new e.MessageChannel,u={},a=0;o.port1.onmessage=function(e){var t=e.data,n=u[t];n(),delete u[t]},X=function(e){var t=a++;u[t]=e,o.port2.postMessage(t)}}})();var $=q.timeout=function(){function t(e,t){var n=this,r=new P,i=X(function(){r.isDisposed||r.setDisposable(t(n,e))});return new A(r,_(function(){V(i)}))}function n(t,n,r){var i=this,s=q.normalize(n);if(s===0)return i.scheduleWithState(t,r);var o=new P,u=e.setTimeout(function(){o.isDisposed||o.setDisposable(r(i,t))},s);return new A(o,_(function(){e.clearTimeout(u)}))}function r(e,t,n){return this.scheduleWithRelativeAndState(e,t-this.now(),n)}return new q(a,t,n,r)}(),J=function(e){function t(){return this._scheduler.now()}function n(e,t){return this._scheduler.scheduleWithState(e,this._wrap(t))}function r(e,t,n){return this._scheduler.scheduleWithRelativeAndState(e,t,this._wrap(n))}function i(e,t,n){return this._scheduler.scheduleWithAbsoluteAndState(e,t,this._wrap(n))}function s(s,o){this._scheduler=s,this._handler=o,this._recursiveOriginal=null,this._recursiveWrapper=null,e.call(this,t,n,r,i)}return w(s,e),s.prototype._clone=function(e){return new s(e,this._handler)},s.prototype._wrap=function(e){var t=this;return function(n,r){try{return e(t._getRecursiveWrapper(n),r)}catch(i){if(!t._handler(i))throw i;return D}}},s.prototype._getRecursiveWrapper=function(e){if(this._recursiveOriginal!==e){this._recursiveOriginal=e;var t=this._clone(e);t._recursiveOriginal=e,t._recursiveWrapper=t,this._recursiveWrapper=t}return this._recursiveWrapper},s.prototype.schedulePeriodicWithState=function(e,t,n){var r=this,i=!1,s=new P;return s.setDisposable(this._scheduler.schedulePeriodicWithState(e,t,function(e){if(i)return null;try{return n(e)}catch(t){i=!0;if(!r._handler(t))throw t;return s.dispose(),null}})),s},s}(q),K=s.Notification=function(){function e(e,t){this.hasValue=t==null?!1:t,this.kind=e}var t=e.prototype;return t.accept=function(e,t,n){return arguments.length===1&&typeof e=="object"?this._acceptObservable(e):this._accept(e,t,n)},t.toObservable=function(e){var t=this;return e=e||U,new Lt(function(n){return e.schedule(function(){t._acceptObservable(n),t.kind==="N"&&n.onCompleted()})})},t.equals=function(e){var t=e==null?"":e.toString();return this.toString()===t},e}(),Q=K.createOnNext=function(){function e(e){return e(this.value)}function t(e){return e.onNext(this.value)}function n(){return"OnNext("+this.value+")"}return function(r){var i=new K("N",!0);return i.value=r,i._accept=e.bind(i),i._acceptObservable=t.bind(i),i.toString=n.bind(i),i}}(),G=K.createOnError=function(){function e(e,t){return t(this.exception)}function t(e){return e.onError(this.exception)}function n(){return"OnError("+this.exception+")"}return function(r){var i=new K("E");return i.exception=r,i._accept=e.bind(i),i._acceptObservable=t.bind(i),i.toString=n.bind(i),i}}(),Y=K.createOnCompleted=function(){function e(e,t,n){return n()}function t(e){return e.onCompleted()}function n(){return"OnCompleted()"}return function(){var r=new K("C");return r._accept=e.bind(r),r._acceptObservable=t.bind(r),r.toString=n.bind(r),r}}(),Z=s.Internals.Enumerator=function(e,t,n){this.moveNext=e,this.getCurrent=t,this.dispose=n},et=Z.create=function(e,t,n){var r=!1;return n||(n=o),new Z(function(){if(r)return!1;var t=e();return t||(r=!0,n()),t},function(){return t()},function(){r||(n(),r=!0)})},tt=s.Internals.Enumerable=function(){function e(e){this.getEnumerator=e}return e.prototype.concat=function(){var e=this;return new Lt(function(t){var n=e.getEnumerator(),r=!1,i=new B,s=U.scheduleRecursive(function(e){var s,o,u=!1;if(!!r)return;try{u=n.moveNext(),u?s=n.getCurrent():n.dispose()}catch(a){o=a,n.dispose()}if(o){t.onError(o);return}if(!u){t.onCompleted();return}var f=new P;i.setDisposable(f),f.setDisposable(s.subscribe(t.onNext.bind(t),t.onError.bind(t),function(){e()}))});return new A(i,s,_(function(){r=!0,n.dispose()}))})},e.prototype.catchException=function(){var e=this;return new Lt(function(t){var n=e.getEnumerator(),r=!1,i,s=new B,o=U.scheduleRecursive(function(e){var o,u,a;a=!1;if(!!r)return;try{a=n.moveNext(),a&&(o=n.getCurrent())}catch(f){u=f}if(u){t.onError(u);return}if(!a){i?t.onError(i):t.onCompleted();return}var l=new P;s.setDisposable(l),l.setDisposable(o.subscribe(t.onNext.bind(t),function(t){i=t,e()},t.onCompleted.bind(t)))});return new A(s,o,_(function(){r=!0}))})},e}(),nt=tt.repeat=function(e,n){return n===t&&(n=-1),new tt(function(){var t,r=n;return et(function(){return r===0?!1:(r>0&&r--,t=e,!0)},function(){return t})})},rt=tt.forEach=function(e,t){return t||(t=u),new tt(function(){var n,r=-1;return et(function(){return++r<e.length?(n=t(e[r],r),!0):!1},function(){return n})})},it=s.Observer=function(){};it.prototype.toNotifier=function(){var e=this;return function(t){return t.accept(e)}},it.prototype.asObserver=function(){return new ut(this.onNext.bind(this),this.onError.bind(this),this.onCompleted.bind(this))},it.prototype.checked=function(){return new at(this)};var st=it.create=function(e,t,n){return e||(e=o),t||(t=h),n||(n=o),new ut(e,t,n)};it.fromNotifier=function(e){return new ut(function(t){return e(Q(t))},function(t){return e(G(t))},function(){return e(Y())})};var ot=s.Internals.AbstractObserver=function(e){function t(){this.isStopped=!1,e.call(this)}return w(t,e),t.prototype.onNext=function(e){this.isStopped||this.next(e)},t.prototype.onError=function(e){this.isStopped||(this.isStopped=!0,this.error(e))},t.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.completed())},t.prototype.dispose=function(){this.isStopped=!0},t.prototype.fail=function(){return this.isStopped?!1:(this.isStopped=!0,this.error(!0),!0)},t}(it),ut=s.AnonymousObserver=function(e){function t(t,n,r){e.call(this),this._onNext=t,this._onError=n,this._onCompleted=r}return w(t,e),t.prototype.next=function(e){this._onNext(e)},t.prototype.error=function(e){this._onError(e)},t.prototype.completed=function(){this._onCompleted()},t}(ot),at=function(e){function t(t){e.call(this),this._observer=t,this._state=0}w(t,e);var n=t.prototype;return n.onNext=function(e){this.checkAccess();try{this._observer.onNext(e)}catch(t){throw t}finally{this._state=0}},n.onError=function(e){this.checkAccess();try{this._observer.onError(e)}catch(t){throw t}finally{this._state=2}},n.onCompleted=function(){this.checkAccess();try{this._observer.onCompleted()}catch(e){throw e}finally{this._state=2}},n.checkAccess=function(){if(this._state===1)throw new Error("Re-entrancy detected");if(this._state===2)throw new Error("Observer completed");this._state===0&&(this._state=1)},t}(it),ft=s.Internals.ScheduledObserver=function(e){function t(t,n){e.call(this),this.scheduler=t,this.observer=n,this.isAcquired=!1,this.hasFaulted=!1,this.queue=[],this.disposable=new B}return w(t,e),t.prototype.next=function(e){var t=this;this.queue.push(function(){t.observer.onNext(e)})},t.prototype.error=function(e){var t=this;this.queue.push(function(){t.observer.onError(e)})},t.prototype.completed=function(){var e=this;this.queue.push(function(){e.observer.onCompleted()})},t.prototype.ensureActive=function(){var e=!1,t=this;!this.hasFaulted&&this.queue.length>0&&(e=!this.isAcquired,this.isAcquired=!0),e&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(e){var n;if(!(t.queue.length>0)){t.isAcquired=!1;return}n=t.queue.shift();try{n()}catch(r){throw t.queue=[],t.hasFaulted=!0,r}e()}))},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.disposable.dispose()},t}(ot),lt=function(e){function t(){e.apply(this,arguments)}return w(t,e),t.prototype.next=function(t){e.prototype.next.call(this,t),this.ensureActive()},t.prototype.error=function(t){e.prototype.error.call(this,t),this.ensureActive()},t.prototype.completed=function(){e.prototype.completed.call(this),this.ensureActive()},t}(ft),ct,ht=s.Observable=function(){function e(e){this._subscribe=e}return ct=e.prototype,ct.finalValue=function(){var e=this;return new Lt(function(t){var n=!1,r;return e.subscribe(function(e){n=!0,r=e},t.onError.bind(t),function(){n?(t.onNext(r),t.onCompleted()):t.onError(new Error(p))})})},ct.subscribe=ct.forEach=function(e,t,n){var r;return typeof e=="object"?r=e:r=st(e,t,n),this._subscribe(r)},ct.toArray=function(){function e(e,t){var n=e.slice(0);return n.push(t),n}return this.scan([],e).startWith([]).finalValue()},e}();ht.start=function(e,t,n){return pt(e,t)()};var pt=ht.toAsync=function(e,t,n){return t||(t=$),function(){var r=g.call(arguments,0),i=new Dt;return t.schedule(function(){var t;try{t=e.apply(n,r)}catch(s){i.onError(s);return}i.onNext(t),i.onCompleted()}),i.asObservable()}};ct.observeOn=function(e){var t=this;return new Lt(function(n){return t.subscribe(new lt(e,n))})},ct.subscribeOn=function(e){var t=this;return new Lt(function(n){var r=new P,i=new B;return i.setDisposable(r),r.setDisposable(e.schedule(function(){i.setDisposable(new F(e,t.subscribe(n)))})),i})},ht.create=function(e){return new Lt(function(t){return _(e(t))})},ht.createWithDisposable=function(e){return new Lt(e)};var dt=ht.defer=function(e){return new Lt(function(t){var n;try{n=e()}catch(r){return bt(r).subscribe(t)}return n.subscribe(t)})},vt=ht.empty=function(e){return e||(e=U),new Lt(function(t){return e.schedule(function(){t.onCompleted()})})},mt=ht.fromArray=function(e,t){return t||(t=z),new Lt(function(n){var r=0;return t.scheduleRecursive(function(t){r<e.length?(n.onNext(e[r++]),t()):n.onCompleted()})})};ht.generate=function(e,t,n,r,i){return i||(i=z),new Lt(function(s){var o=!0,u=e;return i.scheduleRecursive(function(e){var i,a;try{o?o=!1:u=n(u),i=t(u),i&&(a=r(u))}catch(f){s.onError(f);return}i?(s.onNext(a),e()):s.onCompleted()})})};var gt=ht.never=function(){return new Lt(function(){return D})};ht.range=function(e,t,n){return n||(n=z),new Lt(function(r){return n.scheduleRecursiveWithState(0,function(n,i){n<t?(r.onNext(e+n),i(n+1)):r.onCompleted()})})},ht.repeat=function(e,t,n){return n||(n=z),t==null&&(t=-1),yt(e,n).repeat(t)};var yt=ht.returnValue=function(e,t){return t||(t=U),new Lt(function(n){return t.schedule(function(){n.onNext(e),n.onCompleted()})})},bt=ht.throwException=function(e,t){return t||(t=U),new Lt(function(n){return t.schedule(function(){n.onError(e)})})};ht.using=function(e,t){return new Lt(function(n){var r=D,i,s;try{i=e(),i&&(r=i),s=t(i)}catch(o){return new A(bt(o).subscribe(n),r)}return new A(s.subscribe(n),r)})},ct.amb=function(e){var t=this;return new Lt(function(n){function a(){r||(r=i,u.dispose())}function f(){r||(r=s,o.dispose())}var r,i="L",s="R",o=new P,u=new P;return o.setDisposable(t.subscribe(function(e){a(),r===i&&n.onNext(e)},function(e){a(),r===i&&n.onError(e)},function(){a(),r===i&&n.onCompleted()})),u.setDisposable(e.subscribe(function(e){f(),r===s&&n.onNext(e)},function(e){f(),r===s&&n.onError(e)},function(){f(),r===s&&n.onCompleted()})),new A(o,u)})},ht.amb=function(){function n(e,t){return e.amb(t)}var e=gt(),t=y(arguments,0);for(var r=0,i=t.length;r<i;r++)e=n(e,t[r]);return e},ct.catchException=function(e){return typeof e=="function"?wt(this,e):Et([this,e])};var Et=ht.catchException=function(){var e=y(arguments,0);return rt(e).catchException()};ct.combineLatest=function(){var e=g.call(arguments);return Array.isArray(e[0])?e[0].unshift(this):e.unshift(this),St.apply(this,e)};var St=ht.combineLatest=function(){var e=g.call(arguments),t=e.pop();return Array.isArray(e[0])&&(e=e[0]),new Lt(function(n){function f(e){var r;s[e]=!0;if(o||(o=s.every(function(e){return e}))){try{r=t.apply(null,a)}catch(i){n.onError(i);return}n.onNext(r)}else u.filter(function(t,n){return n!==e}).every(function(e){return e})&&n.onCompleted()}function l(e){u[e]=!0,u.every(function(e){return e})&&n.onCompleted()}var r=function(){return!1},i=e.length,s=x(i,r),o=!1,u=x(i,r),a=new Array(i),c=new Array(i);for(var h=0;h<i;h++)(function(t){c[t]=new P,c[t].setDisposable(e[t].subscribe(function(e){a[t]=e,f(t)},n.onError.bind(n),function(){l(t)}))})(h);return new A(c)})};ct.concat=function(){var e=g.call(arguments,0);return e.unshift(this),xt.apply(this,e)};var xt=ht.concat=function(){var e=y(arguments,0);return rt(e).concat()};ct.concatObservable=ct.concatAll=function(){return this.merge(1)},ct.merge=function(e){if(typeof e!="number")return Tt(this,e);var t=this;return new Lt(function(n){var r=0,i=new A,s=!1,o=[],u=function(e){var t=new P;i.add(t),t.setDisposable(e.subscribe(n.onNext.bind(n),n.onError.bind(n),function(){var e;i.remove(t),o.length>0?(e=o.shift(),u(e)):(r--,s&&r===0&&n.onCompleted())}))};return i.add(t.subscribe(function(t){r<e?(r++,u(t)):o.push(t)},n.onError.bind(n),function(){s=!0,r===0&&n.onCompleted()})),i})};var Tt=ht.merge=function(){var e,t;return arguments[0]?arguments[0].now?(e=arguments[0],t=g.call(arguments,1)):(e=U,t=g.call(arguments,0)):(e=U,t=g.call(arguments,1)),Array.isArray(t[0])&&(t=t[0]),mt(t,e).mergeObservable()};ct.mergeObservable=ct.mergeAll=function(){var e=this;return new Lt(function(t){var n=new A,r=!1,i=new P;return n.add(i),i.setDisposable(e.subscribe(function(e){var i=new P;n.add(i),i.setDisposable(e.subscribe(function(e){t.onNext(e)},t.onError.bind(t),function(){n.remove(i),r&&n.length===1&&t.onCompleted()}))},t.onError.bind(t),function(){r=!0,n.length===1&&t.onCompleted()})),n})},ct.onErrorResumeNext=function(e){if(!e)throw new Error("Second observable is required");return Nt([this,e])};var Nt=ht.onErrorResumeNext=function(){var e=y(arguments,0);return new Lt(function(t){var n=0,r=new B,i=U.scheduleRecursive(function(i){var s,o;n<e.length?(s=e[n++],o=new P,r.setDisposable(o),o.setDisposable(s.subscribe(t.onNext.bind(t),function(){i()},function(){i()}))):t.onCompleted()});return new A(r,i)})};ct.skipUntil=function(e){var t=this;return new Lt(function(n){var r=!1,i=new A(t.subscribe(function(e){r&&n.onNext(e)},n.onError.bind(n),function(){r&&n.onCompleted()})),s=new P;return i.add(s),s.setDisposable(e.subscribe(function(){r=!0,s.dispose()},n.onError.bind(n),function(){s.dispose()})),i})},ct.switchLatest=function(){var e=this;return new Lt(function(t){var n=!1,r=new B,i=!1,s=0,o=e.subscribe(function(e){var o=new P,u=++s;n=!0,r.setDisposable(o),o.setDisposable(e.subscribe(function(e){s===u&&t.onNext(e)},function(e){s===u&&t.onError(e)},function(){s===u&&(n=!1,i&&t.onCompleted())}))},t.onError.bind(t),function(){i=!0,n||t.onCompleted()});return new A(o,r)})},ct.takeUntil=function(e){var t=this;return new Lt(function(n){
return new A(t.subscribe(n),e.subscribe(n.onCompleted.bind(n),n.onError.bind(n),o))})},ct.zip=function(){if(Array.isArray(arguments[0]))return Ct.apply(this,arguments);var e=this,t=g.call(arguments),n=t.pop();return t.unshift(e),new Lt(function(r){function a(e){o[e]=!0,o.every(function(e){return e})&&r.onCompleted()}var i=t.length,s=x(i,function(){return[]}),o=x(i,function(){return!1}),u=function(t){var i,u;if(s.every(function(e){return e.length>0})){try{u=s.map(function(e){return e.shift()}),i=n.apply(e,u)}catch(a){r.onError(a);return}r.onNext(i)}else o.filter(function(e,n){return n!==t}).every(function(e){return e})&&r.onCompleted()},f=new Array(i);for(var l=0;l<i;l++)(function(e){f[e]=new P,f[e].setDisposable(t[e].subscribe(function(t){s[e].push(t),u(e)},r.onError.bind(r),function(){a(e)}))})(l);return new A(f)})},ht.zip=function(e,t){var n=e[0],r=e.slice(1);return r.push(t),n.zip.apply(n,r)},ct.asObservable=function(){var e=this;return new Lt(function(t){return e.subscribe(t)})},ct.bufferWithCount=function(e,n){return n===t&&(n=e),this.windowWithCount(e,n).selectMany(function(e){return e.toArray()}).where(function(e){return e.length>0})},ct.dematerialize=function(){var e=this;return new Lt(function(t){return e.subscribe(function(e){return e.accept(t)},t.onError.bind(t),t.onCompleted.bind(t))})},ct.distinctUntilChanged=function(e,t){var n=this;return e||(e=u),t||(t=f),new Lt(function(r){var i=!1,s;return n.subscribe(function(n){var o=!1,u;try{u=e(n)}catch(a){r.onError(a);return}if(i)try{o=t(s,u)}catch(a){r.onError(a);return}if(!i||!o)i=!0,s=u,r.onNext(n)},r.onError.bind(r),r.onCompleted.bind(r))})},ct.doAction=function(e,t,n){var r=this,i;return typeof e=="function"?i=e:(i=e.onNext.bind(e),t=e.onError.bind(e),n=e.onCompleted.bind(e)),new Lt(function(e){return r.subscribe(function(t){try{i(t)}catch(n){e.onError(n)}e.onNext(t)},function(n){if(!t)e.onError(n);else{try{t(n)}catch(r){e.onError(r)}e.onError(n)}},function(){if(!n)e.onCompleted();else{try{n()}catch(t){e.onError(t)}e.onCompleted()}})})},ct.finallyAction=function(e){var t=this;return new Lt(function(n){var r=t.subscribe(n);return _(function(){try{r.dispose()}catch(t){throw t}finally{e()}})})},ct.ignoreElements=function(){var e=this;return new Lt(function(t){return e.subscribe(o,t.onError.bind(t),t.onCompleted.bind(t))})},ct.materialize=function(){var e=this;return new Lt(function(t){return e.subscribe(function(e){t.onNext(Q(e))},function(e){t.onNext(G(e)),t.onCompleted()},function(){t.onNext(Y()),t.onCompleted()})})},ct.repeat=function(e){return nt(this,e).concat()},ct.retry=function(e){return nt(this,e).catchException()},ct.scan=function(){var e,t=!1,n;arguments.length===2?(e=arguments[0],n=arguments[1],t=!0):n=arguments[0];var r=this;return dt(function(){var i=!1,s;return r.select(function(r){return i?s=n(s,r):(s=t?n(e,r):r,i=!0),s})})},ct.skipLast=function(e){var t=this;return new Lt(function(n){var r=[];return t.subscribe(function(t){r.push(t),r.length>e&&n.onNext(r.shift())},n.onError.bind(n),n.onCompleted.bind(n))})},ct.startWith=function(){var e,t,n=0;return!!arguments.length&&"now"in Object(arguments[0])?(t=arguments[0],n=1):t=U,e=g.call(arguments,n),rt([mt(e,t),this]).concat()},ct.takeLast=function(e,t){return this.takeLastBuffer(e).selectMany(function(e){return mt(e,t)})},ct.takeLastBuffer=function(e){var t=this;return new Lt(function(n){var r=[];return t.subscribe(function(t){r.push(t),r.length>e&&r.shift()},n.onError.bind(n),function(){n.onNext(r),n.onCompleted()})})},ct.windowWithCount=function(e,t){var n=this;if(e<=0)throw new Error(d);t==null&&(t=e);if(t<=0)throw new Error(d);return new Lt(function(r){var i=new P,s=new j(i),o=0,u=[],a=function(){var e=new _t;u.push(e),r.onNext(S(e,s))};return a(),i.setDisposable(n.subscribe(function(n){var r;for(var i=0,s=u.length;i<s;i++)u[i].onNext(n);var f=o-e+1;f>=0&&f%t===0&&(r=u.shift(),r.onCompleted()),o++,o%t===0&&a()},function(e){while(u.length>0)u.shift().onError(e);r.onError(e)},function(){while(u.length>0)u.shift().onCompleted();r.onCompleted()})),s})},ct.defaultIfEmpty=function(e){var n=this;return e===t&&(e=null),new Lt(function(t){var r=!1;return n.subscribe(function(e){r=!0,t.onNext(e)},t.onError.bind(t),function(){r||t.onNext(e),t.onCompleted()})})},ct.distinct=function(e,t){var n=this;return e||(e=u),t||(t=c),new Lt(function(r){var i={};return n.subscribe(function(n){var s,o,u,a=!1;try{s=e(n),o=t(s)}catch(f){r.onError(f);return}for(u in i)if(o===u){a=!0;break}a||(i[o]=null,r.onNext(n))},r.onError.bind(r),r.onCompleted.bind(r))})},ct.groupBy=function(e,t,n){return this.groupByUntil(e,t,function(){return gt()},n)},ct.groupByUntil=function(e,t,n,r){var i=this;return t||(t=u),r||(r=c),new Lt(function(s){var u={},a=new A,f=new j(a);return a.add(i.subscribe(function(i){var l,c,h,p,d,v,m,g,y,b;try{v=e(i),m=r(v)}catch(w){for(b in u)u[b].onError(w);s.onError(w);return}p=!1;try{y=u[m],y||(y=new _t,u[m]=y,p=!0)}catch(w){for(b in u)u[b].onError(w);s.onError(w);return}if(p){d=new Ot(v,y,f),c=new Ot(v,y);try{l=n(c)}catch(w){for(b in u)u[b].onError(w);s.onError(w);return}s.onNext(d),g=new P,a.add(g);var E=function(){m in u&&(delete u[m],y.onCompleted()),a.remove(g)};g.setDisposable(l.take(1).subscribe(o,function(e){for(b in u)u[b].onError(e);s.onError(e)},function(){E()}))}try{h=t(i)}catch(w){for(b in u)u[b].onError(w);s.onError(w);return}y.onNext(h)},function(e){for(var t in u)u[t].onError(e);s.onError(e)},function(){for(var e in u)u[e].onCompleted();s.onCompleted()})),f})},ct.select=function(e,t){var n=this;return new Lt(function(r){var i=0;return n.subscribe(function(s){var o;try{o=e.call(t,s,i++,n)}catch(u){r.onError(u);return}r.onNext(o)},r.onError.bind(r),r.onCompleted.bind(r))})},ct.map=ct.select,ct.selectMany=ct.flatMap=function(e,t){return t?this.selectMany(function(n){return e(n).select(function(e){return t(n,e)})}):typeof e=="function"?kt.call(this,e):kt.call(this,function(){return e})},ct.skip=function(e){if(e<0)throw new Error(d);var t=this;return new Lt(function(n){var r=e;return t.subscribe(function(e){r<=0?n.onNext(e):r--},n.onError.bind(n),n.onCompleted.bind(n))})},ct.skipWhile=function(e){var t=this;return new Lt(function(n){var r=0,i=!1;return t.subscribe(function(t){if(!i)try{i=!e(t,r++)}catch(s){n.onError(s);return}i&&n.onNext(t)},n.onError.bind(n),n.onCompleted.bind(n))})},ct.take=function(e,t){if(e<0)throw new Error(d);if(e===0)return vt(t);var n=this;return new Lt(function(t){var r=e;return n.subscribe(function(e){r>0&&(r--,t.onNext(e),r===0&&t.onCompleted())},t.onError.bind(t),t.onCompleted.bind(t))})},ct.takeWhile=function(e){var t=this;return new Lt(function(n){var r=0,i=!0;return t.subscribe(function(t){if(i){try{i=e(t,r++)}catch(s){n.onError(s);return}i?n.onNext(t):n.onCompleted()}},n.onError.bind(n),n.onCompleted.bind(n))})},ct.where=function(e,t){var n=this;return new Lt(function(r){var i=0;return n.subscribe(function(s){var o;try{o=e.call(t,s,i++,n)}catch(u){r.onError(u);return}o&&r.onNext(s)},r.onError.bind(r),r.onCompleted.bind(r))})},ct.filter=ct.where;var Lt=s.Internals.AnonymousObservable=function(e){function t(n){function r(e){var t=new At(e);if(z.scheduleRequired())z.schedule(function(){try{t.disposable(n(t))}catch(e){if(!t.fail(e))throw e}});else try{t.disposable(n(t))}catch(r){if(!t.fail(r))throw r}return t}if(!(this instanceof t))return new t(n);e.call(this,r)}return w(t,e),t}(ht),At=function(e){function t(t){e.call(this),this.observer=t,this.m=new P}w(t,e);var n=t.prototype;return n.next=function(e){var t=!1;try{this.observer.onNext(e),t=!0}catch(n){throw n}finally{t||this.dispose()}},n.error=function(e){try{this.observer.onError(e)}catch(t){throw t}finally{this.dispose()}},n.completed=function(){try{this.observer.onCompleted()}catch(e){throw e}finally{this.dispose()}},n.disposable=function(e){return this.m.disposable(e)},n.dispose=function(){e.prototype.dispose.call(this),this.m.dispose()},t}(ot),Ot=function(e){function t(e){return this.underlyingObservable.subscribe(e)}function n(n,r,i){e.call(this,t),this.key=n,this.underlyingObservable=i?new Lt(function(e){return new A(i.getDisposable(),r.subscribe(e))}):r}return w(n,e),n}(ht),Mt=function(e,t){this.subject=e,this.observer=t};Mt.prototype.dispose=function(){if(!this.subject.isDisposed&&this.observer!==null){var e=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(e,1),this.observer=null}};var _t=s.Subject=function(e){function t(e){return m.call(this),this.isStopped?this.exception?(e.onError(this.exception),D):(e.onCompleted(),D):(this.observers.push(e),new Mt(this,e))}function n(){e.call(this,t),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return w(n,e),E(n.prototype,it,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){m.call(this);if(!this.isStopped){var e=this.observers.slice(0);this.isStopped=!0;for(var t=0,n=e.length;t<n;t++)e[t].onCompleted();this.observers=[]}},onError:function(e){m.call(this);if(!this.isStopped){var t=this.observers.slice(0);this.isStopped=!0,this.exception=e;for(var n=0,r=t.length;n<r;n++)t[n].onError(e);this.observers=[]}},onNext:function(e){m.call(this);if(!this.isStopped){var t=this.observers.slice(0);for(var n=0,r=t.length;n<r;n++)t[n].onNext(e)}},dispose:function(){this.isDisposed=!0,this.observers=null}}),n.create=function(e,t){return new Pt(e,t)},n}(ht),Dt=s.AsyncSubject=function(e){function t(e){m.call(this);if(!this.isStopped)return this.observers.push(e),new Mt(this,e);var t=this.exception,n=this.hasValue,r=this.value;return t?e.onError(t):n?(e.onNext(r),e.onCompleted()):e.onCompleted(),D}function n(){e.call(this,t),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return w(n,e),E(n.prototype,it,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){var e,t,n;m.call(this);if(!this.isStopped){var r=this.observers.slice(0);this.isStopped=!0;var i=this.value,s=this.hasValue;if(s)for(t=0,n=r.length;t<n;t++)e=r[t],e.onNext(i),e.onCompleted();else for(t=0,n=r.length;t<n;t++)r[t].onCompleted();this.observers=[]}},onError:function(e){m.call(this);if(!this.isStopped){var t=this.observers.slice(0);this.isStopped=!0,this.exception=e;for(var n=0,r=t.length;n<r;n++)t[n].onError(e);this.observers=[]}},onNext:function(e){m.call(this),this.isStopped||(this.value=e,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),n}(ht),Pt=function(e){function t(e){return this.observable.subscribe(e)}function n(n,r){e.call(this,t),this.observer=n,this.observable=r}return w(n,e),E(n.prototype,it,{onCompleted:function(){this.observer.onCompleted()},onError:function(e){this.observer.onError(e)},onNext:function(e){this.observer.onNext(e)}}),n}(ht);if(typeof define=="function"&&typeof define.amd=="object"&&define.amd)return e.Rx=s,define(function(){return s});n?typeof module=="object"&&module&&module.exports==n?module.exports=s:n=s:e.Rx=s})(this)},e["/actortraits.js"]=function(e,t,n){function m(e){return e=="mouseDragged"||e=="mouseClicked"?!1:!0}var r=e("./lib/colortraits").Trait,i=e("./lib/debug"),s=e("./lib/util"),o=e("./gprims/clipgprim").ClipKlass,u=e("./gprims/imagegprim").ImageKlass,a=e("./thirdlib/rx/all"),f=s.identifier,l=e("interactor").Interactors,c=function(e,t){var n=t.satelliteData("frame"),r=n._clipGPrim.get("gprim").get("width"),i=n._clipGPrim.get("gprim").get("height"),s=n._endX==-1?r:n._endX,o=n._endY==-1?i:n._endY,u=!1;dt*=n._factor;if(n._times==0)return;n._elapsed+=dt;while(n._elapsed>=n._interval){n._elapsed-=n._interval,n._x+=n._hSpan,n._x>=r&&(n._x=0,n._y+=n._vSpan);if(n._x+n._hSpan>s&&n._y+n._vSpan==o||n._y+n._vSpan>o){n._times--,n._x=n._startX,n._y=n._startY;if(0==n._times)break}}n._clipGPrim.set("x",n._x),n._clipGPrim.set("y",n._y)},h=r.extend({initialize:function(e){var t=this.querySatelliteData("frame",{}),n=new u({image:e.image});t._clipGPrim=new o({w:e.w,h:e.h,gprim:n}),typeof e.HSpan=="number"?t._hSpan=e.HSpan:t._hSpan=e.w,typeof e.VSpan=="number"?t._vSpan=e.VSpan:t._vSpan=e.h;var r={x:0,y:0};typeof e.startFrame=="number"?(r.x=e.startFrame,r.y=0):e.startFrame&&(r=e.startFrame);var s={x:-1,y:-1};typeof e.endFrame=="number"?(s.x=e.endFrame,s.y=1):e.endFrame&&(s=e.endFrame),i.assert(typeof r.x=="number"&&typeof r.y=="number"&&typeof s.x=="number"&&typeof (s.y=="number"),"parameter error"),t._startX=r.x*e.w,t._startY=r.y*e.h,t._endX=s.x==-1?-1:s.x*e.w,t._endY=s.y==-1?-1:s.y*e.h,typeof e.times=="number"?t._times=e.times:t._times=1,t._interval=e.interval,typeof e.factor=="number"?t._factor=e.factor:t._factor=1,t._clipGPrim.x=t._x=t._startX,t._clipGPrim.y=t._y=t._startY,t._elapsed=0,this.regUpdate(c)},_frameData:function(){return this.satelliteData("frame")},setFrameSeqFactor:function(e){i.assert(typeof e=="number","frameseq component setFrameSeqFactor parameter error"),this.satelliteData("frame")._factor=e},getGPrim:function(){return this.satelliteData("frame")._clipGPrim}}),p=r.extend({__init:function(e){this.querySatelliteData("emitter",e);var t=function(e,t){t.querySatelliteData("emitter").update(dt,null,{})};this.regUpdate(t)},getEmitter:function(){return this.querySatelliteData("emitter")}}),d=r.extend({isUnit:function(e){return!0}}),v=r.extend({emitGPrims:function(e){var t=this.gprim(),n=this.matrix();i.assert(typeof n.tz=="number","logical error"),e.push({gprim:t,effect:{matrix:n,vertical:!0,z:n.tz}})},emitControlGPrims:function(e){return this.emitGPrims(e)}}),g={mouseOver:"mouse",mouseMoved:"mouse",mouseOut:"mouse",keyPressed:"mouse",keyReleased:"mouse",mouseDragged:"mouse",mouseClicked:"mouse",keyPressed:"keyboard",keyReleased:"keyboard",mousePressed:"mouse",mouseReleased:"mouse",twoFingerTouch:"mouse"},y=r.extend({__init:function(){this._t.setinteractors({}),this._t.setobservers({}),this.mouse=0,this.keyboard=0},addEventListener:function(e,t){var n=this.getInteractObservable(e),r=n.subscribe(t);return this._t.observers()[e]==null&&(this._t.observers()[e]={}),this._t.observers()[e][f(t)]=r,this},removeEventListener:function(e,t){if(this._t.observers()[e]==null)return;this._t.observers()[e][f(t)].dispose(),delete this._t.observers()[e][f(t)];var n=!0;for(var r in this._t.observers()[e]){n=!1;break}return n&&(delete this._t.observers()[e],delete this._t.interactors()[e],this[g[e]]-=1),this},removeAllEventListener:function(e){if(typeof e=="string"){if(this._t.observers()[e]==null)return;for(var t in this._t.observers()[e])this._t.observers()[e][t].dispose(),delete this._t.observers()[e][t];return delete this._t.observers()[e],delete this._t.interactors()[e],this[g[e]]-=1,this}i.assert(!1,"please enter the right interactor type!!")},__getInteractor:function(e){var t=this._t.interactors()[e];return t==null&&(t=l[e].create(this),this._t.interactors()[e]=t,this[g[e]]+=1),t},getInteractObservable:function(e){var t=this._t.__getInteractor(e);return t.observable()},getInteractSubject:function(e){var t=this._t.__getInteractor(e);return t.subject()},queryInteractSubject:function(e){var t=this._t.interactors()[e];if(t==null)return;return t.subject()},requestInteractiveObjects:function(e,t,n){var r=this[n]>0;if(!this.interactable()||!r)return;return this.emitInteractiveObjects(t),this},forceRequestInteractiveObjects:function(e,t,n,r){if(!this.interactable())return;for(var i in t)this._t.__getInteractor(i);return this.requestInteractiveObjects(e,n,r),this},forceInteractionTypes:function(e,t){var n=this._t.interactors(),r=!1;if(e==null){e={};for(var i in n)g[i]==t&&(e[i]=i,r=!0);if(!r)return;return e}var s={};for(var i in forceInteractionTypes)s[i]=i;for(var i in n)g[i]==t&&(s[i]=i);return s}},["interactors","observers"]);n({EmitterTrait:p,FrameSeqTrait:h,UnitTrait:d,IsoVerActorTrait:v,InteractorTrait:y})},e["/scene.js"]=function(e,t,n){function g(e,t){if(t.hasMethod("receiveBubble"))return t.forceInteractionTypes(e,m);if(e)return t.forceRequestInteractiveObjects(d,e,v,m),e;t.requestInteractiveObjects(d,v,m)}function b(e){e.emitDisplayObjects(y)}function w(e){e.notify("system",h)}function E(e){e.notify("system",h)}function T(e){e.update(S,x)}var r=e("./lib/debug"),i=e("treeactor").TreeActor,s=e("./lib/colortraits").Klass,o=e("./lib/colortraits").Trait,u=e("./lib/dirtymanager").DirtyManagerTrait,a=e("./lib/autorepaint").AutoRepaintTrait,f=e("./lib/eventstream"),l=o.extend({update:function(e,t){return r.error("cannot be here"),this},add:function(e,t){r.error("cannot be here")},remove:function(e){r.error("cannot be here")},filt:function(e,t){r.error("cannot be here")},forEachActor:function(e){r.error("cannot be here")},emitDisplayObjects:function(e){r.error("cannot be here")},requestInteractiveObjects:function(e,t,n){r.error("cannot be here")}}),c=s.extend({initialize:function(e){var t=this;this.subTraits(1).__init(),this.createEventStream("system"),this.subscribe("system",function(e){e.type=="active"?this.active():e.type=="deactive"&&t.deactive()}),this.subTraits(2).__init(e),this.subTraits(3).__init(e)}},[["subject",f.grant("subject")]],[l,f,u,a]),h={type:"active"},p={type:"deactive"},d,v,m,y,S,x,N={},C=o.extend({__init:function(e){var t=i.create(e);return this._t.setroot(t),this._t.setowner(e.owner),this},__update:function(e,t){S=e,x=t,this._t.root().forEach(T)},owner:function(){return this._t.owner()},active:function(){h.scene=this,this._t.root().forEach(w)},deactive:function(){p.scene=this,this._t.root().forEach(E)},add:function(e,t){return t==null&&(t=this._t.root()),e.parent()!=undefined&&this.remove(e),t._appendChild(e),h.scene=this,e.forEach(w),N.type="addActor",N.actor=e,this.notify("system",N),this},remove:function(e){return N.type="removeActor",N.actor=e,this.notify("system",N),e.parent()?(p.scene=this,e.forEach(E),e.parent()._removeChild(e)):this},replace:function(e,t){return e.parent()._replaceChild(e,t),N.type="removeActor",N.actor=e,this.notify("system",N),N.type="addActor",N.actor=t,this.notify("system",N),h.scene=this,t.forEach(w),e},removeAllActors:function(){var e=this._t.root();return e.removeAllChildren(),this},isActorInScene:function(e){var t=this._t.root(),n=!1;return t?t.some(function(t){return t==e}):!1},filt:function(e,t){return this._t.root().serializeChildren(e,t)},forEachActor:function(e){this._t.root().forEach(e)},emitDisplayObjects:function(e){return y=e,this.forEachActor(b),this.minBoundingDirtyRect()},requestInteractiveObjects:function(e,t,n){d=e,v=t,m=n,this._t.root().reduceChildren(g)}},["root","owner","reduceFunction"]),k=c.extend({initialize:function(e){this.execProto("initialize",e),this.subTraits(0).__init(e)},update:function(e,t){this.subTraits(0).__update(e,t)}},[],[C]);n({SceneTrait:l,Scene:c,TreeSceneTrait:C,TreeScene:k})},e["/pathelement.js"]=function(e,t,n){var r=e("./lib/colortraits"),i=e("./lib/geometry"),s=e("./lib/util"),o=e("./lib/pathlenprocess"),u=s.arraySome,a=s.arrayFilter,f=r.READONLY,l=r.Trait,c=r.Klass,h={x:-1,y:0},p=l.extend({__init:function(e){this._t.settype("M"),this._t.setpoint(e.point),this._t.setlength(undefined)},bboxPoint:function(){return[this.point()]},localHook:function(e){this.hook(this._t,"point",e,"b"),this.hook(this._t,"point",e,"a")},unlocalHook:function(e){this.unhook(this._t,"point",e,"b"),this.unhook(this._t,"point",e,"a")},clearLengthCache:function(){this._t.setlength(undefined)},length:function(e){return 0},pointAtPercent:function(e,t){return this._t.point()}},["type","point","length"]),d=l.extend({__init:function(e){this._t.settype("L"),this._t.setpoint(e.point),this._t.setlength(undefined)},bboxPoint:function(){return[this.point()]},isPointIn:function(e,t,n,r,s,o){return i.isPointInLine(e,t,n,r,s,o)},localHook:function(e){this.hook(this._t,"point",e,"b"),this.hook(this._t,"point",e,"a")},unlocalHook:function(e){this.unhook(this._t,"point",e,"b"),this.unhook(this._t,"point",e,"a")},clearLengthCache:function(){this._t.setlength(undefined)},length:function(e){var t=this._t.length();return t==undefined&&(t=o.LineLength(e,this._t.point()),this._t.setlength(t)),t},pointAtPercent:function(e,t){return o.PointAtLine(e,t,this._t.point())}},["point","type","length"]),v=l.extend({__init:function(e){this._t.settype("Q"),this._t.setpoint(e.point),this._t.setcontrolpoint(e.controlpoint),this._t.setlength(undefined)},bboxPoint:function(){return[this.controlpoint(),this.point()]},isPointIn:function(e,t,n,r,s,o){var a={x:n,y:r},f=i.coordinateSysChange(e,t),l=i.pointApplyMatrix(a,f);e=i.pointApplyMatrix(e,f),t={x:0,y:0};var c=i.pointApplyMatrix(this.controlpoint(),f),h=e.x-2*c.x+t.x,p=2*c.x-2*e.x,d=e.x-l.x,v=i.quadraticResolve(h,p,d);return u(v,function(n){if(n>=0&&n<=1){var r=(1-n)*(1-n)*e.y+2*n*(1-n)*c.y+n*n*t.y;return Math.abs(l.y-r)<=s/2+o?!0:!1}})},localHook:function(e){this.hookMany(this._t,["controlpoint","point"],e,"b"),this.hookMany(this._t,["controlpoint","point"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["controlpoint","point"],e,"b"),this.unhookMany(this._t,["controlpoint","point"],e,"a")},clearLengthCache:function(){this._t.setlength(undefined)},length:function(e){var t=this._t.length();if(t==undefined){var n=o.q2c(e,this._t.controlpoint(),this._t.point());this._t.setbezierPoints(n),t=o.CubicBezierLength(n),this._t.setlength(t)}return t},pointAtPercent:function(e,t){return o.PointAtBezier(e,this._t.bezierPoints())}},["point","controlpoint","type","length","bezierPoints"]),m=l.extend({__init:function(e){this._t.settype("C"),this._t.setpoint(e.point),this._t.setcontrolpoint1(e.controlpoint1),this._t.setcontrolpoint2(e.controlpoint2),this._t.setlength(undefined)},bboxPoint:function(){return[this.controlpoint1(),this.controlpoint2(),this.point()]},isPointIn:function(e,t,n,r,s,o){var a={x:n,y:r},f=i.coordinateSysChange(e,t),l=i.pointApplyMatrix(a,f);e=i.pointApplyMatrix(e,f),t={x:0,y:0};var c=i.pointApplyMatrix(this.controlpoint1(),f),h=i.pointApplyMatrix(this.controlpoint2(),f),p=-e.x+3*c.x-3*h.x+t.x,d=3*e.x-6*c.x+3*h.x,v=3*c.x-3*e.x,m=e.x-l.x,g=i.cubicResolve(p,d,v,m);return u(g,function(n){if(n>=0&&n<=1){var r=e.y*(1-n)*(1-n)*(1-n)+3*c.y*n*(1-n)*(1-n)+3*h.y*n*n*(1-n)+t.y*n*n*n;return Math.abs(l.y-r)<=s/2+o?!0:!1}})},localHook:function(e){this.hookMany(this._t,["point","controlpoint1","controlpoint2"],e,"b"),this.hookMany(this._t,["point","controlpoint1","controlpoint2"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["point","controlpoint1","controlpoint2"],e,"b"),this.unhookMany(this._t,["point","controlpoint1","controlpoint2"],e,"a")},clearLengthCache:function(){this._t.setlength(undefined)},length:function(e){var t=this._t.length();if(t==undefined){var n=[e,this._t.controlpoint1(),this._t.controlpoint2(),this._t.point()];t=o.CubicBezierLength(n),this._t.setlength(t)}return t},pointAtPercent:function(e,t){return o.PointAtBezier(e,[t,this._t.controlpoint1(),this._t.controlpoint2(),this._t.point()])}},["point","controlpoint1","controlpoint2","type","length","bezierPoints"]),g=l.extend({__init:function(e){this._t.settype("A"),this._t.setpoint(e.point),this._t.setrx(e.rx),this._t.setry(e.ry),this._t.setxaxisrotate(e.xaxisrotate),this._t.setlargearcflag(e.largearcflag>0?1:0),this._t.setsweepflag(e.sweepflag>0?1:0),this._t.setlength(undefined)},ellipseCenterAngle:function(e){var t=this.point(),n=this.rx(),r=this.ry();if(n==0||r==0)return!1;var s={x:(e.x-t.x)/2,y:(e.y-t.y)/2},o={x:(e.x+t.x)/2,y:(e.y+t.y)/2},u=i.identityMatrix();i.matrixRotateBy(u,this.xaxisrotate());var a=i.matrixInvert(u),f=i.pointApplyMatrix(s,a),l=f.x*f.x/(n*n)+f.y*f.y/(r*r);l>1&&(n=Math.sqrt(l)*n,r=Math.sqrt(l)*r);var c=(n*n*r*r-n*n*f.y*f.y-r*r*f.x*f.x)/(n*n*f.y*f.y+r*r*f.x*f.x);c=Math.abs(c),c=Math.sqrt(c);var h;this.largearcflag()==this.sweepflag()?h={x:-c*n*f.y/r,y:-c*-r*f.x/n}:h={x:c*n*f.y/r,y:c*-r*f.x/n};var p=i.pointAdd(i.pointApplyMatrix(h,u),o),d={x:1,y:0},v=i.getVectorAngle(d,{x:(f.x-h.x)/n,y:(f.y-h.y)/r}),m=i.getVectorAngle({x:(f.x-h.x)/n,y:(f.y-h.y)/r},{x:(-f.x-h.x)/n,y:(-f.y-h.y)/r});return this.sweepflag()==0&&(m-=2*Math.PI),this.setcenter(p),this.setstartAngle(v),this.setendAngle(v+m),this.setrx(n),this.setry(r),!0},bboxPoint:function(){if(this.rx()==0||this.ry()==0)return[this.point()];var e=Math.max(this.rx(),this.ry()),t=this.center(),n={x:t.x+e,y:t.y},r={x:t.x,y:t.y+e},i={x:t.x-e,y:t.y},s={x:t.x,y:t.y-e};return[n,r,i,s]},isPointIn:function(e,t,n,r,s,o){if(this.rx()==0||this.ry()==0)return i.isPointInLine(e,t,n,r,s,o);var u=this.center(),a=i.identityMatrix();i.matrixTranslateBy(a,u.x,u.y),i.matrixRotateBy(a,this.xaxisrotate()),i.matrixInvertBy(a);var f=i.pointApplyMatrix({x:n,y:r},a),l=i.pointApplyMatrix(t,a),c=i.pointApplyMatrix(e,a),h=i.getVectorAngle(c,l),p=i.getVectorAngle(c,f);if(this.sweepflag()==0&&p>=h||this.sweepflag()==1&&p<h){var d=f.x*f.x/(this.rx()*this.rx())+f.y*f.y/(this.ry()*this.ry()),v=Math.sqrt(d);v!==0?d=(1-v)/v*((1-v)/v)*(f.x*f.x+f.y*f.y):d-=1;if(Math.sqrt(d)<s/2+o)return!0}return!1},localHook:function(e){this.hookMany(this._t,["point","rx","ry","xaxisrotate","largearcflag","sweepflag","center","startAngle","endAngle"],e,"b"),this.hookMany(this._t,["point","rx","ry","xaxisrotate","largearcflag","sweepflag","center","startAngle","endAngle"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["point","rx","ry","xaxisrotate","largearcflag","sweepflag","center","startAngle","endAngle"],e,"b"),this.unhookMany(this._t,["point","rx","ry","xaxisrotate","largearcflag","sweepflag","center","startAngle","endAngle"],e,"a")},clearLengthCache:function(){this._t.setlength(undefined)},length:function(e){var t=this._t.length();if(t==undefined){t=0;var n={x:e.x,y:e.y},r=this._t.point(),i={x:r.x,y:r.y};o.EllipseArcStandard(this._t.center(),this._t.xaxisrotate(),n,i);var s=new Array,u=o.a2c({x:0,y:0},this._t.rx(),this._t.ry(),this._t.startAngle(),this._t.endAngle()-this._t.startAngle(),n,i,s),a=[n];this._t.setbezierPoints(a.concat(s));var f,l=[];for(var c=0;c<u;c+=3){a=a.slice(a.length-1).concat(s[c],s[c+1],s[c+2]);var f=o.CubicBezierLength(a);t+=f,l.push(f)}this._t.setbezierLength(l),this._t.setlength(t)}return t},pointAtPercent:function(e,t){var n=this._t.bezierPoints(),r=this._t.bezierLength(),i=0,s=this._t.length();for(var u=0,a=n.length;u<a-1;u+=3){i+=r[u/3];if(i>=s*e){i-=r[u/3];var f=(s*e-i)/r[u/3],l=n.slice(u,u+4),c=o.PointAtBezier(f,l);return o.PointApplyEllipse(c,this._t.center(),this._t.xaxisrotate()),c}}}},["point","rx","ry","xaxisrotate","largearcflag","sweepflag","center","startAngle","endAngle","type","length","bezierPoints","bezierLength"]),y={x:0,y:0},b=l.extend({__init:function(e){this._t.settype("Z"),this._t.setpoint(y),this._t.setlength(undefined)},bboxPoint:function(){return[]},isPointIn:function(e,t,n,r,s,o){return i.isPointInLine(e,t,n,r,s,o)},localHook:function(e){},unlocalHook:function(e){},clearLengthCache:function(){this._t.setlength(undefined)},length:function(e,t){var n=this._t.length();return n==undefined&&(n=o.LineLength(e,t),this._t.setlength(n)),n},pointAtPercent:function(e,t,n){return o.PointAtLine(e,t,n)}},["point","type","length"]),w=c.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[f("type"),p.grant("type")],["point",p.grant("point")]],[p]),E=c.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[["point",d.grant("point")],[f("type"),d.grant("type")]],[d]),S=c.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[f("type"),v.grant("type")]].concat(v.grantMany(["point","controlpoint"])),[v]),x=c.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[f("type"),m.grant("type")]].concat(m.grantMany(["point","controlpoint1","controlpoint2"])),[m]),T=c.extend({initialize:function(e){this.execProto("initialize",e),this.subTraits(0).__init(e)}},[[f("type"),g.grant("type")]].concat(g.grantMany(["point","rx","ry","xaxisrotate","largearcflag","sweepflag","center","startAngle","endAngle"])),[g]),N=c.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[["point",b.grant("point")],[f("type"),b.grant("type")]],[b]),C=c.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e),this.setangle(e.angle==undefined?0:e.angle),this.setpoint({x:e.distance,y:0})}},["angle",[f("type"),d.grant("type")],["point",d.grant("point")]],[d]),k=c.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e),this.setangle(e.angle==undefined?0:e.angle)}},["angle",[f("type"),v.grant("type")]].concat(v.grantMany(["point","controlpoint"])),[v]),L=c.extend({initialize:function(e){this.execProto("initialize",e),this.subTraits(0).__init(e),this.setangle(e.angle==undefined?0:e.angle)}},["angle",[f("type"),m.grant("type")]].concat(m.grantMany(["point","controlpoint1","controlpoint2"])),[m]),A=c.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e),this.setangle(e.angle==undefined?0:e.angle)}},["angle",[f("type"),g.grant("type")]].concat(g.grantMany(["point","rx","ry","xaxisrotate","largearcflag","sweepflag","center","startAngle","endAngle"])),[g]),O=c.extend({initialize:function(e){this.execProto("initialize",e),this.subTraits(0).__init(e),this.setangle(e.angle==undefined?0:e.angle)}},["angle",["point",b.grant("point")],[f("type"),b.grant("type")]],[b]),M={M:function(e){return w.create({point:{x:e[1],y:e[2]}})},L:function(e){return E.create({point:{x:e[1],y:e[2]}})},Q:function(e){return S.create({controlpoint:{x:e[1],y:e[2]},point:{x:e[3],y:e[4]}})},C:function(e){return x.create({controlpoint1:{x:e[1],y:e[2]},controlpoint2:{x:e[3],y:e[4]},point:{x:e[5],y:e[6]}})},A:function(e){return T.create({rx:e[1],ry:e[2],xaxisrotate:e[3],largearcflag:e[4],sweepflag:e[5],point:{x:e[6],y:e[7]}})},Z:function(e){return N.create()}},_={point:"setpoint",controlpoint:"setcontrolpoint",controlpoint1:"setcontrolpoint1",controlpoint2:"setcontrolpoint2",rx:"setrx",ry:"setry",xaxisrotate:"setxaxisrotate",largearcflag:"setlargearcflag",sweepflag:"setsweepflag"};n({PathCreat:M,PropertytoSet:_})},e["/gprims/textgprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("../lib/helper"),s=e("./shaptrait").ShapTrait,o=e("../lib/geometry"),u=r.Klass,a=r.READONLY,f=r.CUSTOM_SETTER,l={text:"A"},c=s.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=l),this._t.settext(e.text==undefined?"":e.text),this._t.settype("text"),this.setfont(e.font==undefined?{}:e.font)},setfont:function(e){this._t.cache().bbox=undefined,this._t.setfont(e),this._t.font().style=e.style==undefined?"normal":e.style,this._t.font().weight=e.weight==undefined?400:e.weight,this._t.font().size=e.size==undefined?16:e.size,this._t.font().family=e.family==undefined?"Arial":e.family,this._t.setfontString(i.fontToString(this._t.font()))},fontString:function(){return this._t.fontString()},settext:function(e){return this._t.cache().bbox=undefined,this._t.settext(e),this},localBbox:function(){var e=this._t.text(),t=this._t.font(),n=t.size,r=i.measureText(e,t).width;return o.rectMake(0,0,r,n)},localInside:function(e,t){var n=this._t.text(),r=this._t.font(),s=r.size,o=i.measureText(n,r).width;return e>0&&e<o&&t>0&&t<s?!0:!1},localHook:function(e){this.hookMany(this._t,["strokeStyle","strokeFlag","fillFlag","text","font","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","anchorPoint"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["strokeStyle","strokeFlag","fillFlag","text","font","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","anchorPoint"],e,"a")}},["text","font","fontString"].concat(s.grantMany(["strokeStyle","strokeFlag","fillFlag","cache","type","id","tag","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","anchorPoint"]))),h=u.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[a("type"),c.grant("type")],[f("text"),c.grant("text")],[f("font"),c.grant("font")],[f("strokeStyle"),c.grant("strokeStyle")],[f("fillStyle"),c.grant("fillStyle")],[f("shadowColor"),c.grant("shadowColor")]].concat(c.grantMany(["strokeFlag","fillFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY"])),[c]);n({TextTrait:c,TextKlass:h})},e["/lib/debug.js"]=function(e,t,n){var r={log:function(e){console.log(e)},warning:function(e){console.log("!!!WARNING!!!-->"+e+"<-- ")},error:function(e){console.log("!!!ERROR!!!-->"+e+"<-- ")},assert:function(e,t){if(e)return!0;var n=t===undefined?"assert !!!":t;throw console.log("exception throwed: "+n),n}};n(r)},e["/thirdlib/rx/rx.aggregates.js"]=function(e,t,n){(function(t,n){var r=typeof exports=="object"&&exports,i=typeof module=="object"&&module&&module.exports==r&&module,s=typeof global=="object"&&global;s.global===s&&(window=s),typeof define=="function"&&define.amd?define(["rx","exports"],function(e,r){return t.Rx=n(t,r,e),t.Rx}):typeof module=="object"&&module&&module
.exports===r?module.exports=n(t,module.exports,e("./rx")):t.Rx=n(t,{},t.Rx)})(this,function(e,t,n,r){function c(e,t){return e===t}function h(e){return e}function p(e,t){return e>t?1:e===t?0:-1}function d(e,t,n){return new a(function(r){var i=!1,s=null,o=[];return e.subscribe(function(e){var u,a;try{a=t(e)}catch(f){r.onError(f);return}u=0;if(!i)i=!0,s=a;else try{u=n(a,s)}catch(l){r.onError(l);return}u>0&&(s=a,o=[]),u>=0&&o.push(e)},r.onError.bind(r),function(){r.onNext(o),r.onCompleted()})})}function v(e){if(e.length===0)throw new Error(l);return e[0]}function m(e,t,n){return new a(function(r){var i=0,s=t.length;return e.subscribe(function(e){var o=!1;try{i<s&&(o=n(e,t[i++]))}catch(u){r.onError(u);return}o||(r.onNext(!1),r.onCompleted())},r.onError.bind(r),function(){r.onNext(i===s),r.onCompleted()})})}function g(e,t,n,r){if(t<0)throw new Error(f);return new a(function(i){var s=t;return e.subscribe(function(e){s===0&&(i.onNext(e),i.onCompleted()),s--},i.onError.bind(i),function(){n?(i.onNext(r),i.onCompleted()):i.onError(new Error(f))})})}function y(e,t,n){return new a(function(r){var i=n,s=!1;return e.subscribe(function(e){s?r.onError(new Error("Sequence contains more than one element")):(i=e,s=!0)},r.onError.bind(r),function(){!s&&!t?r.onError(new Error(l)):(r.onNext(i),r.onCompleted())})})}function b(e,t,n){return new a(function(r){return e.subscribe(function(e){r.onNext(e),r.onCompleted()},r.onError.bind(r),function(){t?(r.onNext(n),r.onCompleted()):r.onError(new Error(l))})})}function w(e,t,n){return new a(function(r){var i=n,s=!1;return e.subscribe(function(e){i=e,s=!0},r.onError.bind(r),function(){!s&&!t?r.onError(new Error(l)):(r.onNext(i),r.onCompleted())})})}function E(e,t,n,s){return new a(function(o){return e.subscribe(function(r){t.call(n,r,i,e)?(o.onNext(s?i:r),o.onCompleted()):i++},o.onError.bind(o),function(){o.onNext(s?-1:r),o.onCompleted()})})}var s=n.Observable,o=s.prototype,u=n.CompositeDisposable,a=n.Internals.AnonymousObservable,f="Argument out of range",l="Sequence contains no elements.";return o.aggregate=function(){var e,t,n;return arguments.length===2?(e=arguments[0],t=!0,n=arguments[1]):n=arguments[0],t?this.scan(e,n).startWith(e).finalValue():this.scan(n).finalValue()},o.reduce=function(){var e,t,n=arguments[0];return arguments.length===2&&(t=!0,e=arguments[1]),t?this.scan(e,n).startWith(e).finalValue():this.scan(n).finalValue()},o.any=function(e,t){var n=this;return e?n.where(e,t).any():new a(function(e){return n.subscribe(function(){e.onNext(!0),e.onCompleted()},e.onError.bind(e),function(){e.onNext(!1),e.onCompleted()})})},o.some=o.any,o.isEmpty=function(){return this.any().select(function(e){return!e})},o.all=function(e,t){return this.where(function(t){return!e(t)},t).any().select(function(e){return!e})},o.every=o.all,o.contains=function(e,t){return t||(t=c),this.where(function(n){return t(n,e)}).any()},o.count=function(e){return e?this.where(e).count():this.aggregate(0,function(e){return e+1})},o.sum=function(e){return e?this.select(e).sum():this.aggregate(0,function(e,t){return e+t})},o.minBy=function(e,t){return t||(t=p),d(this,e,function(e,n){return t(e,n)*-1})},o.min=function(e){return this.minBy(h,e).select(function(e){return v(e)})},o.maxBy=function(e,t){return t||(t=p),d(this,e,t)},o.max=function(e){return this.maxBy(h,e).select(function(e){return v(e)})},o.average=function(e){return e?this.select(e).average():this.scan({sum:0,count:0},function(e,t){return{sum:e.sum+t,count:e.count+1}}).finalValue().select(function(e){return e.sum/e.count})},o.sequenceEqual=function(e,t){var n=this;return t||(t=c),Array.isArray(e)?m(n,e,t):new a(function(r){var i=!1,s=!1,o=[],a=[],f=n.subscribe(function(e){var n,i;if(a.length>0){i=a.shift();try{n=t(i,e)}catch(u){r.onError(u);return}n||(r.onNext(!1),r.onCompleted())}else s?(r.onNext(!1),r.onCompleted()):o.push(e)},r.onError.bind(r),function(){i=!0,o.length===0&&(a.length>0?(r.onNext(!1),r.onCompleted()):s&&(r.onNext(!0),r.onCompleted()))}),l=e.subscribe(function(e){var n,s;if(o.length>0){s=o.shift();try{n=t(s,e)}catch(u){r.onError(u);return}n||(r.onNext(!1),r.onCompleted())}else i?(r.onNext(!1),r.onCompleted()):a.push(e)},r.onError.bind(r),function(){s=!0,a.length===0&&(o.length>0?(r.onNext(!1),r.onCompleted()):i&&(r.onNext(!0),r.onCompleted()))});return new u(f,l)})},o.elementAt=function(e){return g(this,e,!1)},o.elementAtOrDefault=function(e,t){return g(this,e,!0,t)},o.single=function(e){return e?this.where(e).single():y(this,!1)},o.singleOrDefault=function(e,t){return e?this.where(e).singleOrDefault(null,t):y(this,!0,t)},o.first=function(e){return e?this.where(e).first():b(this,!1)},o.firstOrDefault=function(e,t){return e?this.where(e).firstOrDefault(null,t):b(this,!0,t)},o.last=function(e){return e?this.where(e).last():w(this,!1)},o.lastOrDefault=function(e,t){return e?this.where(e).lastOrDefault(null,t):w(this,!0,t)},o.find=function(e){return E(this,e,arguments[1],!1)},o.findIndex=function(e){return E(this,e,arguments[1],!0)},n})},e["/selection/selector.js"]=function(e,t,n){var r=e("../lib/colortraits").READONLY,i=e("../lib/colortraits").PRIVATE,s=e("../lib/colortraits").Klass,o=e("../lib/debug").assert,u=s.extend({initialize:function(e){this.execProto("initialize"),this._t.setpredicates([]),e&&(o(typeof e=="function","Selector's constructor must be given function."),this._t.predicates().push(e))},apply:function(e){var t=null,n=this._t.predicates();for(var r=0;r<n.length;r++)t=e=e.selectAll(n[r]);return t},then:function(e){var t=u.create();for(var n=0;n<this._t.predicates().length;n++)t.predicates().push(this._t.predicates()[n]);for(var n=0;n<e.predicates().length;n++)t.predicates().push(e.predicates()[n]);return t}},[r("predicates")]),a=function(e){return u.create(function(t){return typeof t.dynamicProperty("kind")=="string"&&t.dynamicProperty("kind").toLowerCase()===e.toLowerCase()})},f=function(e){return u.create(function(t){return typeof t.dynamicProperty("id")=="string"&&t.dynamicProperty("id").toLowerCase()===e.toLowerCase()})};n({Selector:u,kind:a,id:f})},e["/lib/util.js"]=function(e,t,n){var r=function(e,t){if(arguments.length<2)throw"at least 2 params provide to extend";var n,r;for(n=1;n<arguments.length;n++){r=arguments[n];if(!r)continue;var i,s;for(i in r){if(!r.hasOwnProperty(i))continue;s=r[i];if(s===undefined||s===e)continue;e[i]=s}}return e},i=function(e){var t=function(){};return t.prototype=e,new t},s=function(e,t){typeof t=="string"&&(t=e[t]);if(typeof t=="function")return function(){t.apply(e,arguments)};debug.log("cannot create callback!!!")},o=function(e){if(e===null)return null;if(e===undefined)return undefined;var t;if(e instanceof Array){t=[];for(var n=0,r=e.length;n<r;n++)t[n]=N.copy(e[n])}else if(typeof e=="object")if(typeof e.copy=="function")t=e.copy();else{t={};var i,s;for(s in e)t[s]=N.copy(e[s])}else t=e;return t},u;Object.keys?u=function(e){return Object.keys(e)}:u=function(e){var t=[],n=0;for(var r in e)e.hasOwnProperty(r)&&(t[n++]=r);return t};var a=function(e,t){for(var n in e)e.hasOwnProperty(n)&&t(n,e)},f=function(e,t){for(var n in e)e.hasOwnProperty(n)&&t(e[n],n)},l;Array.prototype.forEach?l=function(e,t){e.forEach(t)}:l=function(e,t){var n=0,r=e.length;for(;n<r;n++)t(e[n],n)};var c=function(e,t,n){var r=arguments.length==2?h:n,i=u(e);if(i.length==0)return{};var s=0;r==h&&(r=t(r,e[i[0]],i[0],e),s=1);while(s<i.length)r=t(r,e[i[s]],i[s],e),s++;return r},h=[],p;Array.prototype.reduce?p=function(e,t,n){return e.reduce(t,n)}:p=c;var d;Array.prototype.filter?d=function(e,t){return e.filter(t)}:d=function(e,t){c(e,function(e,n,r,i){return t(n,r,i)&&(e[r]=n),e},[])};var v;Array.prototype.map?v=function(e,t){return e.map(t)}:v=function(e,t){return c(e,function(e,n,r,i){return e[r]=t(n,r,i),e},[])};var m;Array.prototype.some?m=function(e,t){return e.some(t)}:m=function(e,t){var n=0;while(n<e.length){if(t(e[n],n,e))return!0;n++}return!1};var g=function(e){this._array=e,this._curIdx=0},y={};r(g.prototype,{next:function(){this._curIdx!=this._array.length&&this._curIdx++},prev:function(){this._curIdx!=0&&this._curIdx--},get:function(){return this._curIdx==this._array.length?y:this._array[this._curIdx]},end:function(){return this._curIdx==this._array.length}});var b=function(){return new g(this)},w=function(e){var t=this;return function(){return t.apply(e,Array.prototype.slice.call(arguments,0))}},E=0,S=function(e){return e.__identifier===undefined?e.__identifier=E++:e.__identifier},x;Object.freeze?x=Object.freeze:x=function(e){return e};var T;Object.create?T=Object.create:T=function(e){var t=function(){};t.prototype=e;var n=new t;return n.__proto__=e,n};var N={extend:r,beget:i,callback:s,copy:o,objectKeys:u,objectKeysForEach:a,objectForEach:f,arrayForEach:l,arrayReduce:p,arrayFilter:d,arrayMap:v,arraySome:m,bind:w,freeze:x,identifier:S,objectDotCreate:T};n(N)},e["/animate.js"]=function(e,t,n){function W(e,t){var n=[];return u(t,function(r,i){if(i==t.length-1)return;var s=t[i+1][0]-t[i][0],o;typeof r[2]=="string"?o=T(t[i][1],t[i+1][1],_(0,s,h[r[2]])):o=r[2],n.push(P.create({variable:e,timeline:o,totalTime:s}))}),n}var r=e("./lib/util"),i=e("./lib/debug"),s=e("./lib/colortraits").Klass,o=e("./lib/colortraits").Trait,u=r.arrayForEach,a=r.arraySome,f=r.arrayFilter,l=r.identifier,c=r.objectForEach,h={linear:function(e){return e},set:function(e){return Math.floor(e)},discrete:function(e){return Math.floor(e)},sine:function(e){return.5-.5*Math.cos(e*Math.PI)},sproing:function(e){return(.5-.5*Math.cos(e*3.59261946538606))*1.05263157894737},square:function(e){return e*e},cube:function(e){return e*e*e},sqrt:function(e){return Math.sqrt(e)},curt:function(e){return Math.pow(e,-0.333333333333)}},p=h.linear,d=h.set,v=h.discrete,m=h.sine,g=h.sproing,y=h.square,b=h.cube,w=h.sqrt,E=h.curt,S=function(e){return function(t){return function(n){return e(t(n))}}},x=function(e){return function(t){return e}},T=function(e,t,n){var r=x(e),i=x(t),s=n;return L(r,O(s,A(i,r)))},N=function(e,t){return function(n){return e(t(n))}},C=function(e,t){return function(n){return e(t-n)}},k=function(e,t,n){return function(r){var i,s,o;for(o=0,i=n;o<t.length;o++)s=t[o](r),i=e(i,s);return i}},L,A,O;(function(){var e=function(e){var t=function(n,r){var s=typeof n=="object"?{}:[];return i.assert(typeof n==typeof r,"logical error"),c(n,function(n,i){typeof n=="object"||typeof n=="array"?s[i]=t(n,r[i]):s[i]=e(n,r[i])}),s},n=function(t,r){var i=typeof t=="object"?{}:[];return c(t,function(t,s){typeof t=="object"||typeof t=="array"?i[s]=n(t,r):i[s]=e(t,r)}),i},r=function(e,t){return n(t,e)},s=function(t,n){return e(t,n)};return{objectobject:t,arrayarray:t,objectarray:t,arrayobject:t,objectnumber:n,arraynumber:n,numberobject:r,numberarray:r,numbernumber:s}},t=function(e){return function(t,n){if(t==undefined||n==undefined)return t||n;var r=typeof t+typeof n;return e[r]?e[typeof t+typeof n](t,n):(i.error("I donot known how to opeate the two value"),undefined)}},n=t(e(function(e,t){return e+t})),r=t(e(function(e,t){return e*t})),s=t(e(function(e,t){return e-t})),o=t(e(function(e,t){return e/t})),u=function(e){return function(){if(arguments.length==1)return arguments[0];var t=[];for(var n=0;n<arguments.length;n++)t.push(arguments[n]);return k(e,t,undefined)}};L=u(n),A=u(s),O=u(r)})();var M=function(e,t){return function(n){return t(n-e)}},_=function(e,t,n){return function(r){return n((r-e)/(t-e))}},D=s.extend({initialize:function(e){this.execProto("initialize",e),this._isPaused=!1,this._state="prepare",this._startTime=-1,this._curTime=-1},prepare:function(e){this._state="prepare",this._startTime=-1,this._curTime=-1,this.doPrepare(e)},doPrepare:function(){},target:function(){return undefined},isDone:function(){return this._curTime-this._startTime>=this.totalTime()},curTime:function(){return this._curTime},startTime:function(){return this._startTime},update:function(e,t){if(this.isPaused()||this.isDone())return;this._state=="prepare"&&(this._startTime=e,this._state="running");var n=this.target();n=n?n:t,this.onFrameBegin&&this.onFrameBegin(e-this._startTime),this.doUpdate(e-this._startTime,t),this.onFrameEnd&&this.onFrameEnd(e-this._startTime);var r=this._curTime;this._curTime=e,this.hasCBs()&&this.cb(e-this._startTime,r-this._startTime)},regCBsByPercent:function(e){var t=this.totalTime();return this.regCBsByTime(e.map(function(e){return{time:e.time*t,cb:e.cb}}))},regCBsByTime:function(e){this._cbs||(this._cbs=[]),this._cbs=this._cbs.concat(e),this._cbs.sort(function(e,t){return e.time-t.time})},regCBByPercent:function(e,t){return this.regCBByTime(e*this.totalTime(),t)},regCBByTime:function(e,t){this._cbs||(this._cbs=[]),this._cbs.push({time:e,cb:t}),this._cbs.sort(function(e,t){return e.time-t.time})},cancelCBByTime:function(e,t){this._cbs=f(this._cbs,function(n){return n.time!=e||t!=undefined&&t!=n.cb?!0:!1}),this._cbs.length==0&&this.rmSlot("_cbs")},cancelCBByPercent:function(e,t){return this.cancelCBByTime(e*this.totalTime(),t)},cancelAllCBs:function(){this.rmSlot("_cbs")},hasCBs:function(){return this._cbs!=undefined},cb:function(e,t){if(!this._cbs||t==e)return;var n=e>t,r=[];u(this._cbs,function(i){(n&&t<i.time&&i.time<=e||!n&&e<=i.time&&i.time<t)&&r.push(i)}),n||(r=r.reverse()),u(r,function(e){e.cb(n)})},doUpdate:function(e,t){i.assert(!1,"Animation base-->should not in")},copy:function(){i.assert(!1,"Animation base-->should not in")},reverse:function(){i.assert(!1,"Animation base-->should not in")},pause:function(){this._isPaused==1&&i.warning("pause paused animation"),this._isPaused=!0},resume:function(){this._isPaused==0&&i.warning("resume a unpaused animation"),this._isPaused=!1},isPaused:function(){return this._isPaused==1}}),P=D.extend({initialize:function(e){this.execProto("initialize",e),this._variable=e.variable,this._timeline=e.timeline,this._totalTime=e.totalTime,i.assert(this._variable&&this._timeline&&typeof this._totalTime=="number","Animation parameters error"),this._target=e.target},doPrepare:function(){},totalTime:function(){return this._totalTime},_setTargetVal:function(e,t,n){typeof e=="string"?n.variable=t:typeof e=="function"?e(t,n):typeof e=="array"&&u(e,function(e,r,i){this._setTargetVal(e,t,n)},this)},doUpdate:function(e,t){var n=this._timeline(e);i.assert(this._target||t,"Animation, there is no target!"),this._setTargetVal(this._variable,n,this._target?this._target:t)},copy:function(){var e=P.create({variable:this._variable,timeline:this._timeline,totalTime:this._totalTime,target:this._target});return e},reverse:function(){var e=P.create({variable:this._variable,timeline:C(this._timeline,this._totalTime),totalTime:this._totalTime,target:this._target});return e},setTarget:function(e){this._target=e},target:function(){return this._target},variable:function(){return this._variable},value:function(e){var t={variable:this._variable};return e=e>this._totalTime?this._totalTime:e,t.value=this._timeline(e),[t]}}),H=D.extend({initialize:function(e){this.execProto("initialize",e),i.assert(e.animations,"SequenceAnimation constructor param error"),this._animations=e.animations,this._curanimation=null,typeof e.interval=="number"?this._interval=e.interval:this._interval=0;var t=0,n=this._interval;this._animations=this._animations.map(function(e,r){var i={ani:e,startTime:t+r*n};return t+=e.totalTime(),i}),this._curAniIdx=-1},doPrepare:function(){if(0==this._animations.length)return;this._curAniIdx=-1},doUpdate:function(e,t){var n=this._curAniIdx,r=this._animations;if(n!=-1&&r[n].startTime<=e&&(n==r.length-1||e<r[n+1].startTime))r[n].ani.update(e,t);else{var s=-1;a(r,function(t,n,r){return n==r.length-1?(s=n,!0):t.startTime<=e&&e<=r[n+1].startTime?(s=n,!0):!1}),i.assert(s!=-1,"logical error"),this._curAniIdx=s;var o=r[s].ani;o.prepare(),o.update(r[s].startTime,t),e!=r[s].startTime&&o.update(e,t)}},copy:function(){var e=this._animations.map(function(e){return e.ani.copy()});return H.create({animations:e})},reverse:function(){var e=this._animations.map(function(e){return e.ani.reverse()});return H.create({animations:e.reverse()})},totalTime:function(){var e=0,t=this._interval;return u(this._animations,function(n,r){e+=n.ani.totalTime()+t}),e-=t,e},value:function(e){var t,n=this.totalTime(),r=this._interval;return e=e>n?n:e,a(this._animations,function(n,i){var s=n.ani.totalTime();return e>s+r?(e-=s+r,!1):(t=n.ani,!0)}),i.assert(t,"canont find animation"),t.value(e)}}),B=D.extend({initialize:function(e){this.execProto("initialize",e),this._times=e.times,this._animation=e.animation,typeof e.interval=="number"?this._interval=e.interval:this._interval=0},doPrepare:function(){this._animation.prepare(),this._elapsedTimes=1},doUpdate:function(e,t){var n=this,r=function(e,i){e.update(i,t);if(n._elapsedTimes+1==n._times&&i>e.startTime()+e.totalTime()||i>e.startTime()+e.totalTime()+n._interval&&n._elapsedTimes<n._times){n._elapsedTimes=n._elapsedTimes+1;var s=e.startTime()+e.totalTime()+n._interval;e.prepare(),e.update(s,t),s<i&&r(e,i)}};r(this._animation,e)},copy:function(){return B.create({animation:this._animation.copy(),times:this._times})},reverse:function(){return B.create({animation:this._animation.reverse(),times:this._times})},totalTime:function(){return this._times==0?0:this._animation.totalTime()*this._times+(this._times-1)*this._interval},value:function(e){var t=this.totalTime();return e=e>t?t:e,e%=this._animation.totalTime()+this._interval,this._animation.value(e)}}),j=D.extend({initialize:function(e){this.execProto("initialize",e),e.animations?this._animations=e.animations:this._animations=[]},doPrepare:function(){u(this._animations,function(e){e.prepare()})},isDone:function(){return this._animations.every(function(e){return e.isDone()})},doUpdate:function(e,t){u(this._animations,function(n){n.update(e,t)})},copy:function(){var e=this._animations.map(function(e){return e.copy()});return j.create({animations:e})},reverse:function(){var e=this._animations.map(function(e){return e.reverse()});return j.create({animations:e.reverse()})},totalTime:function(){var e=0;return u(this._animations,function(t,n){var r=t.totalTime();e=e>r?e:r}),e},value:function(e){return this._animations.map(function(t,n){return t.value(e)})}}),F=function(e){return function(t){return t*e}},I=function(e,t){return P.create({variable:function(e,t){t.setx(e)},timeline:function(e){return e*t},totalTime:Infinity})},q=function(e,t){return P.create({variable:function(e,t){t.sety(e)},timeline:function(e){return e*t},totalTime:Infinity})},R=function(e,t,n){return P.create({variable:function(e,t){t.translate(e.x,e.y)},timeline:function(e){return{x:t*e,y:n*e}},totalTime:Infinity})},U=function(e,t,n){return P.create({variable:function(e,t){t.setx(e)},timeline:function(r){var i=r/n;return e+(t-e)*i},totalTime:n})},z=function(e,t,n){return P.create({variable:function(e,t){t.sety(e)},timeline:function(r){var i=r/n;return e+(t-e)*i},totalTime:n})},X=function(){return H.create({animations:W(function(e,t){t.translate(e.x,e.y)},Array.prototype.slice.call(arguments,0))})},V=function(){var e=Array.prototype.slice.call(arguments,0),t=0;return e=e.map(function(e,n,r){if(n==0)return[t,e[0],"linear"];var i=r[n-1][0],s=r[n][0],o=s.x-i.x,u=s.y-i.y;return t+=Math.abs(Math.sqrt(o*o+u*u)/r[n-1][1]),[t,e[0],"linear"]}),X.apply(undefined,e)},$=function(){return H.create({animations:W(function(e,t){t.setrotate(e)},Array.prototype.slice.call(arguments,0))})},J=function(){var e=Array.prototype.slice.call(arguments,0),t=0;return e=e.map(function(e,n,r){if(n==0)return[t,e[0],"linear"];var i=r[n-1][0],s=r[n][0];return t+=Math.abs(s-i)/Math.abs(r[n-1][1]),[t,e[0],"linear"]}),$.apply(undefined,e)},K=function(e,t,n){return P.create({variable:function(e,t){t.scaleX(e)},timeline:function(r){var i=r/n;return e+(t-e)*i},totalTime:n})},Q=function(e,t,n){return P.create({variable:function(e,t){t.scaleY(e)},timeline:function(r){var i=r/n;return e+(t-e)*i},totalTime:n})},G=function(){return H.create({animations:W(function(e,t){t.setscale(e.x,e.y)},Array.prototype.slice.call(arguments,0))})},Y=function(){var e=Array.prototype.slice.call(arguments,0),t=0;return e=e.map(function(e,n,r){if(n==0)return[t,e[0],"linear"];var i=r[n][0].x-r[n-1][0].x,s=r[n][0].y-r[n-1][0].y;return t+=Math.sqrt(i*i+s*s)/Math.abs(r[n-1][1]),[t,e[0],"linear"]}),G.apply(undefined,e)},Z=function(e){return H.create({animations:e})},et=function(e){return j.create({animations:e})},tt=function(e,t){return B.create({animation:e,times:t})},nt=o.extend({__init:function(){this._t.setanimations([])},__update:function(e,t,n){var r=!1;u(this._t.animations(),function(t,i,s){t.update(e,n),t.isDone()&&(r=!0)});if(!r)return;this._t.setanimations(f(this._t.animations(),function(e){return!e.isDone()}))},addAnimation:function(e,t){this._t.animations().push(e),t||e.prepare()},removeAnimation:function(e){typeof e!="number"&&(e=l(e));var t=-1;a(this._t.animations(),function(n,r){return l(n)==e?(t=r,!0):!1}),t!=-1&&this._t.animations().splice(t,1)},removeAllAnimations:function(){return this._t.setanimations([]),!0}},["animations"]),rt=s.extend({initialize:function(){this.subTraits(0).__init()},update:function(e,t,n){this.subTraits(0).__update(e,t,n)}},[],[nt]);n({AnimationBase:D,Animation:P,SequenceAnimation:H,TimesAnimation:B,ParallelAnimation:j,moveX:I,moveY:q,moveXY:R,moveToX:U,moveToY:z,moveToByTime:X,moveToBySpeed:V,rotateToByTime:$,rotateToBySpeed:J,scaleToX:K,scaleToY:Q,scaleToByTime:G,scaleToBySpeed:Y,makeAnimationsByTime:W,seq:Z,parallel:et,times:tt,linear:p,set:d,discrete:v,sine:m,sproing:g,square:y,cube:b,sqrt:w,curt:E,reversetl:C,slerptl:T,maptl:N,foldltl:k,addtl:L,subtl:A,multl:O,lift:S,consttl:x,Animator:rt,AnimatorTrait:nt,tweenFunctions:h})},e["/sprites/line.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/linegprim").LineTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("vertexes"),u.grant("vertexes")],[s("lineWidth"),u.grant("lineWidth")],[s("strokeStyle"),u.grant("strokeStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineDash"])),[u]);n(a)},e["/gprims/compositegprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./shaptrait").ShapTrait,s=e("../lib/util"),o=e("../lib/geometry"),u=s.arrayMap,a=r.Klass,f=r.READONLY,l=r.CUSTOM_SETTER,c={x:0,y:0,width:0,height:0},h={},p=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=h),this._t.setgprims(e.gprims==undefined?[]:e.gprims),this._t.settype("composite")},setgprims:function(e){return this._t.cache().bbox=undefined,this._t.setgprims(e),this},B_gprimChange:function(){var e=this._t.cache();if(e.stamps==undefined){var t=u(this._t.gprims(),function(e){return e.stamp()});return e.stamps=t,!0}var n=this._t.gprims();for(var r=0,i=n.length;r<i;r++){var s=n[r];if(!(s.type()!="composite"||!s.B_gprimChange()&&e.stamps[r]==s.stamp()))return!0;if(e.stamps[r]!=s.stamp())return!0}return!1},bbox:function(){var e=this._t.cache(),t=this.matrix(),n=this.stamp();if(!this.B_gprimChange()&&undefined!==e.bbox&&n==e.stamp)return e.bbox;var r=this.localBbox(),i=this.anchor();return r.x-=i.x,r.y-=i.y,r=o.rectApplyMatrixToBoundRect(r,t),e.stamp=this.stamp(),e.bbox=r,r},localBbox:function(){var e=this.matrix(),t=this._t.gprims();if(!t.length)return c;var n=t[0].bbox(),r={x:n.x,y:n.y,width:n.width,height:n.height};for(var i=1,s=t.length;i<s;i++){var u=t[i].bbox();r=o.rectUnion(r,u)}return r},localInside:function(e,t){var n=this._t.gprims();for(var r=n.length-1;r>=0;r--){var i=n[r],s=i.inside(e,t);if(s)return typeof s=="object"?s:i}return!1},localHook:function(e){this.hookMany(this._t,["fillFlag","strokeFlag","gprims","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineWidth","lineDash","anchorPoint"],e,"a");var t=this._t.gprims();for(var n=0,r=t.length;n<r;n++){var i=t[n];i.localHook(e)}},unlocalHook:function(e){this.unhookMany(this._t,["fillFlag","strokeFlag","gprims","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineWidth","lineDash","anchorPoint"],e,"a");var t=this._t.gprims();for(var n=0,r=t.length;n<r;n++){var i=t[n];i.unlocalHook(e)}}},["gprims"].concat(i.grantAll())),d=a.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[f("type"),p.grant("type")],[l("lineWidth"),p.grant("lineWidth")],[l("gprims"),p.grant("gprims")],[l("strokeStyle"),p.grant("strokeStyle")],[l("fillStyle"),p.grant("fillStyle")],[l("shadowColor"),p.grant("shadowColor")]].concat(p.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit"])),[p]);n({CompositeTrait:p,CompositeKlass:d})},e["/thirdlib/rx/all.js"]=function(e,t,n){t("./rx",window),t("./rx.html",window),t("./rx.helper",window),t("./rx.aggregates",window),t("./rx.time",window),t("./rx.binding",window);var r=window.Rx;delete window.Rx,n(r)},e["/lib/canvasobservable.js"]=function(e,t,n){function s(e){var t=e.offsetX,n=e.offsetY;if(t==undefined){var r=e.target?e.target.getBoundingClientRect():e.srcElement.getBoundingClientRect();e.layerX!=undefined&&(t=e.layerX-r.left,n=e.layerY-r.top),t==undefined&&(t=e.clientX-r.left,n=e.clientY-r.top)}return{x:t,y:n}}function f(e){return function(e){var t={type:type};return t.key=e.key,t.keyCode=e.keyCode,t.sourceEvt=e.sourceEvt,t}}function l(e){e.hasOwnProperty&&e.hasOwnProperty("ontouchstart")||!!navigator.userAgent.match(/AppleWebKit.*Mobile.*/)?(this.touchstartObservable=r.Observable.fromEvent(e,"touchstart").select(a),this.touchendObservable=r.Observable.fromEvent(e,"touchend").select(a),this.touchmoveObservable=r.Observable.fromEvent(e,"touchmove").select(a)):(this.mousedownObservable=r.Observable.fromEvent(e,"mousedown").select(u),this.mouseupObservable=r.Observable.fromEvent(e,"mouseup").select(u),this.mousemoveObservable=r.Observable.fromEvent(e,"mousemove").select(u)),this.keydownObservable=r.Observable.fromEvent(e,"keydown").select(f("keyPressed")),this.keyupObservable=r.Observable.fromEvent(e,"keyup").select(f("keyReleased"))}var r=e("../thirdlib/rx/all"),i=e("./util").objectDotCreate,o=function(e){var t=s(e);return{mouseX:t.x,mouseY:t.y,wheelDelta:e.wheelDelta?e.wheelDelta:e.detail*-40,type:"mousewheel",sourceEvt:e}},u=function(e){e.preventDefault?e.preventDefault():window.event&&(window.event.returnValue=!1);var t=s(e);return{mouseX:t.x,mouseY:t.y,sourceEvt:e}},a=function(e){e.preventDefault?e.preventDefault():window.event&&(window.event.returnValue=!1);var t={type:e.type},n,r;if(e.touches&&e.touches.length>0){t.touches=[];for(var i=0;i<e.touches.length;++i)n=e.touches[i],t.touches[i]={sourceEvt:n},r=s(n),t.touches[i].mouseX=r.x,t.touches[i].mouseY=r.y;t.mouseX=t.touches[0].mouseX,t.mouseY=t.touches[0].mouseY}return t};n({CanvasEventObservables:l})},e["/sprites/all.js"]=function(e,t,n){n({Annulus:e("./annulus"),Arc:e("./arc"),AutoWrapText:e("./autowraptext"),BubbleReceiver:e("./bubblereceiver"),Circle:e("./circle"),Clip:e("./clip"),Composite:e("./composite"),Image:e("./image"),Line:e("./line"),Path:e("./path"),Polygon:e("./polygon"),Rect:e("./rect"),Text:e("./text"),ContainerSprite:e("./container")})},e["/sprites/path.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/pathgprim").PathTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("lineWidth"),u.grant("lineWidth")],[s("pathElements"),u.grant("pathElements")],[s("strokeStyle"),u.grant("strokeStyle")],[s("fillStyle"),u.grant("fillStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineDash","rError"])),[u]);n(a)},e["/gprims/pathgprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./shaptrait").ShapTrait,s=e("../lib/geometry"),o=e("../lib/helper"),u=e("../lib/winding"),a=e("../lib/util"),f=e("../pathelement"),l=e("../lib/pathlenprocess"),c=a.arrayMap,h=r.Klass,p=r.READONLY,d=r.CUSTOM_SETTER,v={pathElements:[["M",20,20],["L",50,20]]},m=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=v),this._t.settype("path"),this._t.setrError(e.rError==undefined?0:e.rError),e.pathElements instanceof Array?this.setpathElements(e.pathElements):this.setpathElements(o.svgToArray(e.pathElements)),this._t.setlength(undefined)},ellipseInit:function(){var e=this._t.pathElements();for(var t=0,n=e.length;t<n;t++)e[t].type()=="A"&&e[t].ellipseCenterAngle(e[t-1].point());return this},setpathElements:function(e){e instanceof Array||(e=o.svgToArray(e)),this._t.cache().bbox=undefined;var t=c(e,function(e){var t=e[0],n=f.PathCreat[t];return n(e)});return this._t.setpathElements(t),this.ellipseInit(),this._t.__clearAllLengthCache(),this},setPathProperty:function(e,t,n){this._t.cache().bbox=undefined;var r=f.PropertytoSet[t];return this._t.pathElements()[e][r](n),this.ellipseInit(),this._t.__clearPartLengthCache(e,t),this},getPathProperty:function(e,t){return this._t.pathElements()[e][t]()},localBbox:function(){var e=Infinity,t=Infinity,n=-Infinity,r=-Infinity,i=this._t.pathElements(),o=this._t.lineWidth();for(var u=0;u<i.length;u++){var a=i[u].bboxPoint();for(var f in a){var l=a[f];e=l.x-o/2<e?l.x-o/2:e,t=l.y-o/2<t?l.y-o/2:t,n=l.x+o/2>n?l.x+o/2:n,r=l.y+o/2>r?l.y+o/2:r}}return s.rectMake(e,t,n-e+1,r-t+1)},localInside:function(e,t){var n=this._t.pathElements(),r=n[n.length-1],i=this._t.lineWidth(),s=this._t.rError();if(r.type()!="Z"||this.fillStyle()==undefined&&!this.fillFlag()){for(var o=1,a=n.length;o<a;o++){var f=n[o],l=n[o-1].point(),c;f.type()==="Z"?c=n[0].point():c=f.point();if(f.isPointIn(l,c,e,t,i,s))return!0}return!1}return u.isPointInPath(n,e,t)},localHook:function(e){this.hookMany(this._t,["fillFlag","strokeFlag","pathElements","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineWidth","lineDash","anchorPoint"],e,"a");var t=this._t.pathElements();for(var n=0,r=t.length;n<r;n++){var i=t[n];i.localHook(e)}},unlocalHook:function(e){this.unhookMany(this._t,["fillFlag","strokeFlag","pathElements","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineWidth","lineDash","anchorPoint"],e,"a");var t=this._t.pathElements();for(var n=0,r=t.length;n<r;n++){var i=t[n];i.unlocalHook(e)}},length:function(){var e=this._t.length();if(e==undefined){e=0;var t=this._t.pathElements(),n;for(var r=0,i=t.length;r<i;++r){var s=t[r];s.type()=="Z"?e+=s.length(n,t[0].point()):(e+=s.length(n),n=s.point())}this._t.setlength(e)}return e},__clearAllLengthCache:function(){this._t.setlength(undefined);var e=this._t.pathElements();for(var t=0,n=e.length;t<n;t++){var r=e[t];r.clearLengthCache()}return this},__clearPartLengthCache:function(e,t){this._t.setlength(undefined);var n=this._t.pathElements(),r=n.length;return t=="point"?e==0?n[e+1].clearLengthCache():e==r-1?n[e].clearLengthCache():(n[e].clearLengthCache(),n[e+1].clearLengthCache()):n[e].clearLengthCache(),this},pointAtPercent:function(e){var t=this._t.pathElements(),n=t.length;if(e<0||e>1||!n)return;var r,i,s=0,o=this.length();for(var u=0,a=t.length;u<a;++u){var f=t[u];if(f.type()=="Z"){i=f.length(r,t[0].point()),s+=i;if(s>=e*o){s-=i;var l=(o*e-s)/i;return f.pointAtPercent(l,r,t[0].point())}}else{i=f.length(r),s+=i;if(s>=e*o){s-=i;var l=(o*e-s)/i;return f.pointAtPercent(l,r)}}r=f.point()}},percentAtLength:function(e){if(e<=0)return 0;var t=this.length();if(e>=t)return 1;var n=this._t.pathElements(),r=0,i,s;for(var o=0,u=n.length;o<u;o++){var a=n[o];a.type()=="Z"?i=a.length(s,n[0].point()):i=a.length(s),r+=i;if(r>=e)return(r-e)/i;s=a.point()}}},["pathElements","rError","length"].concat(i.grantAll())),g=h.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[p("type"),m.grant("type")],[d("lineWidth"),m.grant("lineWidth")],[d("pathElements"),m.grant("pathElements")],[d("strokeStyle"),m.grant("strokeStyle")],[d("fillStyle"),m.grant("fillStyle")],[d("shadowColor"),m.grant("shadowColor")]].concat(m.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineDash","rError"])),[m]);n({PathTrait:m,PathKlass:g})},e["/sprites/image.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=e("./sprite"),o=e("../gprims/imagegprim"
).ImageTrait,u=s.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),o.grant("type")]].concat(o.grantMany(["alpha","constraintmode","image","tag","id"])),[o]);n(u)},e["/thirdlib/rx/rx.binding.js"]=function(e,t,n){(function(t,n){var r=typeof exports=="object"&&exports,i=typeof module=="object"&&module&&module.exports==r&&module,s=typeof global=="object"&&global;s.global===s&&(window=s),typeof define=="function"&&define.amd?define(["rx","exports"],function(e,r){return t.Rx=n(t,r,e),t.Rx}):typeof module=="object"&&module&&module.exports===r?module.exports=n(t,module.exports,e("./rx")):t.Rx=n(t,{},t.Rx)})(this,function(e,t,n,r){function y(){if(this.isDisposed)throw new Error(g)}var i=n.Observable,s=i.prototype,o=n.Internals.AnonymousObservable,u=n.Subject,a=n.AsyncSubject,f=n.Observer,l=n.Internals.ScheduledObserver,c=n.Disposable.create,h=n.Disposable.empty,p=n.CompositeDisposable,d=n.Scheduler.currentThread,v=n.Internals.inherits,m=n.Internals.addProperties,g="Object has been disposed";s.multicast=function(e,t){var n=this;return typeof e=="function"?new o(function(r){var i=n.multicast(e());return new p(t(i).subscribe(r),i.connect())}):new S(n,e)},s.publish=function(e){return e?this.multicast(function(){return new u},e):this.multicast(new u)},s.publishLast=function(e){return e?this.multicast(function(){return new a},e):this.multicast(new a)},s.publishValue=function(e,t){return arguments.length===2?this.multicast(function(){return new w(t)},e):this.multicast(new w(e))},s.replay=function(e,t,n,r){return e?this.multicast(function(){return new E(t,n,r)},e):this.multicast(new E(t,n,r))};var b=function(e,t){this.subject=e,this.observer=t};b.prototype.dispose=function(){if(!this.subject.isDisposed&&this.observer!==null){var e=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(e,1),this.observer=null}};var w=n.BehaviorSubject=function(e){function t(e){var t;return y.call(this),this.isStopped?(t=this.exception,t?e.onError(t):e.onCompleted(),h):(this.observers.push(e),e.onNext(this.value),new b(this,e))}function n(n){e.call(this,t),this.value=n,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return v(n,e),m(n.prototype,f,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){y.call(this);if(!this.isStopped){var e=this.observers.slice(0);this.isStopped=!0;for(var t=0,n=e.length;t<n;t++)e[t].onCompleted();this.observers=[]}},onError:function(e){y.call(this);if(!this.isStopped){var t=this.observers.slice(0);this.isStopped=!0,this.exception=e;for(var n=0,r=t.length;n<r;n++)t[n].onError(e);this.observers=[]}},onNext:function(e){y.call(this);if(!this.isStopped){this.value=e;var t=this.observers.slice(0);for(var n=0,r=t.length;n<r;n++)t[n].onNext(e)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),n}(i),E=n.ReplaySubject=function(e){function n(e){var n=new l(this.scheduler,e),r=new t(this,n);y.call(this),this._trim(this.scheduler.now()),this.observers.push(n);var i=this.q.length;for(var s=0,o=this.q.length;s<o;s++)n.onNext(this.q[s].value);return this.hasError?(i++,n.onError(this.error)):this.isStopped&&(i++,n.onCompleted()),n.ensureActive(i),r}function r(t,r,i){this.bufferSize=t==null?Number.MAX_VALUE:t,this.window=r==null?Number.MAX_VALUE:r,this.scheduler=i||d,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,e.call(this,n)}var t=function(e,t){this.subject=e,this.observer=t};return t.prototype.dispose=function(){this.observer.dispose();if(!this.subject.isDisposed){var e=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(e,1)}},v(r,e),m(r.prototype,f,{hasObservers:function(){return this.observers.length>0},_trim:function(e){while(this.q.length>this.bufferSize)this.q.shift();while(this.q.length>0&&e-this.q[0].interval>this.window)this.q.shift()},onNext:function(e){var t;y.call(this);if(!this.isStopped){var n=this.scheduler.now();this.q.push({interval:n,value:e}),this._trim(n);var r=this.observers.slice(0);for(var i=0,s=r.length;i<s;i++)t=r[i],t.onNext(e),t.ensureActive()}},onError:function(e){var t;y.call(this);if(!this.isStopped){this.isStopped=!0,this.error=e,this.hasError=!0;var n=this.scheduler.now();this._trim(n);var r=this.observers.slice(0);for(var i=0,s=r.length;i<s;i++)t=r[i],t.onError(e),t.ensureActive();this.observers=[]}},onCompleted:function(){var e;y.call(this);if(!this.isStopped){this.isStopped=!0;var t=this.scheduler.now();this._trim(t);var n=this.observers.slice(0);for(var r=0,i=n.length;r<i;r++)e=n[r],e.onCompleted(),e.ensureActive();this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),r}(i),S=function(e){function t(t,n){function i(e){return r.subject.subscribe(e)}var r={subject:n,source:t.asObservable(),hasSubscription:!1,subscription:null};this.connect=function(){return r.hasSubscription||(r.hasSubscription=!0,r.subscription=new p(r.source.subscribe(r.subject),c(function(){r.hasSubscription=!1}))),r.subscription},e.call(this,i)}return v(t,e),t.prototype.connect=function(){return this.connect()},t.prototype.refCount=function(){var e=null,t=0,n=this;return new o(function(r){var i,s;return t++,i=t===1,s=n.subscribe(r),i&&(e=n.connect()),c(function(){s.dispose(),t--,t===0&&e.dispose()})})},t}(i);return n})},e["/sprites/autowraptext.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/autowraptextgprim").AutoWrapTextTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("text"),u.grant("text")],[s("styles"),u.grant("styles")],[s("maxWidth"),u.grant("maxWidth")],[s("maxHeight"),u.grant("maxHeight")],[s("align"),u.grant("align")],[s("lineSpacing"),u.grant("lineSpacing")],[s("gprims"),u.grant("gprims")],[s("strokeStyle"),u.grant("strokeStyle")],[s("fillStyle"),u.grant("fillStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY"])),[u]);n(a)},e["/treeactorbase.js"]=function(e,t,n){var r=e("./lib/colortraits").Trait,i=e("actor"),s=e("./lib/debug"),o=e("./lib/util"),u=o.arraySome,a=o.arrayReduce,f=r.extend({__init:function(){function t(t){if(t.type=="active"){var n=e.getMonitor();!!n&&n.getHost()!==e&&e.clearMonitor();var r=e.parent().getMonitor();if(!r)return;e.applyMonitor(r),e.updateMonitorLevel(),r.notify({member:e})}}this._t.setchildren([]);var e=this;this.subscribe("system",t)},setParent:function(e){return this._t.setparent(e),this},parent:function(){return this._t.parent()},children:function(){return this._t.children()},_appendChild:function(e){s.assert(e.parent()==undefined,"parameter error"),this._t.children().push(e),e.setParent(this),e.setDepTransformable(this)},_removeChild:function(e){var t=this._t.children().indexOf(e);return s.assert(t!=-1,"logical error, You remove an unexist child"),e.setDepTransformable(null),e.setParent(null),this.children().splice(t,1)[0]},_replaceChild:function(e,t){var n=this._t.children().indexOf(e);s.assert(n!=-1,"logical error, You replace an unexist child"),t.setDepTransformable(this),t.setParent(this),e.setDepTransformable(null),e.setParent(null);var r=[],i=e.children();for(var o=0;o<i.length;o++)r.push(i[o]);for(var o=0;o<r.length;o++)e.removeChild(r[o]),t.addChild(r[o]);return this._t.children()[n]=t,e},addChild:function(e){return this.ownerScene()?this.ownerScene().add(e,this):this._appendChild(e),this},removeChild:function(e){return this.ownerScene()?this.ownerScene().remove(e):this._removeChild(e),this},replaceChild:function(e,t){return e===t?null:this.ownerScene()?this.ownerScene().replace(e,t):this._replaceChild(e,t)},removeAllChildren:function(){var e=this.ownerScene(),t=e==undefined?!1:!0;if(t){var n=this.children().length();for(var r=0;r<n;++r)e.remove(child)}return this.setchildren([]),this},root:function(){var e=this,t=e.parent();while(t)e=t,t=e.parent();return e},some:function(e){var t=this.children();return 1==e(this)?!0:u(t,function(t){return t.some(e)})},reduceChildren:function(e,t){var n;n=e(t,this);var r=this.children();return a(r,function(t,n){return n.reduceChildren(e,t)},n),t},reduce:function(e,t){var n=!1;t!=null&&(n=!0);var r;0==n?r=this:(r=e(t,this),r==null&&(r=t));var i=this.children();return r=a(i,function(t,n){return n.reduce(e,t)},r),r},forEach:function(e){var t=function(t,n){e(n)};return this.reduce(t,!0)},serializeChildren:function(e,t){var n=this;return this.reduce(function(e,n){return(t==undefined||t(n))&&e.push(n),e},e)},applyMonitor:function(e){var t=this._t.monitorpointer();return t?(s.assert(t.getHost()===this,"monitor host must be itself."),t.setIntersector(e)):this._t.setmonitorpointer(e),this},getMonitor:function(){return this._t.monitorpointer()},clearMonitor:function(){return this._t.setmonitorpointer(undefined),this},updateMonitorLevel:function(){}},["parent","children","monitorpointer"]),l=i.extend({initialize:function(e){this.execProto("initialize",e),this.subTraits(0).__init()}},[],[f]);n({TreeActor:l,TreeTrait:f})},e["/sprites/rect.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/rectgprim").RectTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("lineWidth"),u.grant("lineWidth")],[s("strokeStyle"),u.grant("strokeStyle")],[s("fillStyle"),u.grant("fillStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY"])),[u]);n(a)},e["/sprites/arc.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/arcgprim").ArcTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("radius"),u.grant("radius")],[s("startAngle"),u.grant("startAngle")],[s("endAngle"),u.grant("endAngle")],[s("anticlockwise"),u.grant("anticlockwise")],[s("lineWidth"),u.grant("lineWidth")],[s("strokeStyle"),u.grant("strokeStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineDash"])),[u]);n(a)},e["/painter/honestpainter.js"]=function(e,t,n){var r=e("../lib/debug"),i=e("../lib/debug").assert,s=Math.abs,o=Math.pow,u=e("../lib/canvasobservable").CanvasEventObservables,a=e("../lib/colortraits").Klass,f=e("../lib/colortraits").Trait,l=e("../lib/util"),c=e("../lib/geometry"),c,h=l.arrayForEach,p={fitWidth:function(e,t,n){!t.x[1]&&!t.width[1]&&(t.sx[1]=!0,t.swidth[1]=!0,t.x[1]=!0,t.width[1]=!0,t.width[0]=e.gprimw)},fitHeight:function(e,t,n){!t.y[1]&&!t.height[1]&&(t.sy[1]=!0,t.sheight[1]=!0,t.y[1]=!0,t.height[1]=!0,t.height[0]=e.gprimh)},uniformScale:function(e,t,n){t.width[1]&&!t.height[1]?(t.height[0]=e.imgh*e.gprimw/e.imgw,t.height[1]=!0):t.height[1]&&!t.width[1]&&(t.width[0]=e.imgw*e.gprimh/e.imgh,t.width[1]=!0)},place:function(e,t,n){!t.x[1]&&n[3]!=="yAlign"?(t.width[1]?t.x[0]=n[1]*e.gprimw-n[0]*t.width[0]:t.x[0]=n[1]*e.gprimw-n[0]*e.imgw,t.x[1]=!0):t.y[1]||(t.height[1]?t.y[0]=n[1]*e.gprimh-n[0]*t.height[0]:t.y[0]=n[1]*e.gprimh-n[0]*e.imgh,t.y[1]=!0)},cut:function(e,t,n){t.sx[1]||(t.sx[1]=!0,t.sx[0]=-t.x[0],t.swidth[0]=e.gprimw*e.imgh/e.gprimh),t.sy[1]||(t.sy[1]=!0,t.sy[0]=-t.y[0],t.sheight[0]=e.gprimh*e.imgw/e.gprimw),t.x[0]=0,t.y[0]=0,t.width[0]=e.gprimw,t.height[0]=e.gprimh}},d=function(e,t){t.save(),e.applyStyle(t)},v=function(e){e.restore()},m={M:function(e,t){var n=e.point();t.moveTo(n.x,n.y)},L:function(e,t){var n=e.point();t.lineTo(n.x,n.y)},Q:function(e,t){var n=e.point(),r=e.controlpoint();t.quadraticCurveTo(r.x,r.y,n.x,n.y)},C:function(e,t){var n=e.point(),r=e.controlpoint1(),i=e.controlpoint2();t.bezierCurveTo(r.x,r.y,i.x,i.y,n.x,n.y)},A:function(e,t){var n=e.rx(),r=e.ry(),i=e.point();if(n===0||r===0){t.lineTo(i.x,i.y);return}var s=e.center().x,o=e.center().y,u=e.largearcflag(),a=e.sweepflag(),f=e.xaxisrotate(),l=e.startAngle(),c=e.endAngle(),h=a===1?!1:!0;t.translate(s,o),t.rotate(f);var p=n>r?n:r;t.scale(n/p,r/p),t.arc(0,0,p,l,c,h),t.scale(p/n,p/r),t.rotate(-f),t.translate(-s,o)},Z:function(e,t){t.closePath()}},g=function(e,t,n){var r=e.bbox();n.lineTo(r.width,0),n.lineTo(r.width,r.height),n.lineTo(0,r.height),n.lineTo(0,0)},y={defaultPath:function(e,t,n){g(e,t,n)},circle:function(e,t,n){var r=e.radius();n.translate(r,r),n.arc(0,0,r,Math.PI*2,0,!0),n.translate(-r,-r)},polygon:function(e,t,n){var r=e.vertexes();for(var i in r){var s=r[i];n.lineTo(s.x,s.y)}},line:function(e,t,n){var r=e.vertexes();if(r==null||r.length<1)return;n.moveTo(r[0].x,r[0].y);for(var i=1;i<r.length;i++)n.lineTo(r[i].x,r[i].y)},arc:function(e,t,n){n.arc(0,0,e.radius(),e.startAngle(),e.endAngle(),e.anticlockwise())},path:function(e,t,n){var r=e.pathElements();if(r==null||r.length<2||r[0].type()!="M"||r[1].type()=="Z")return;for(var i=0,s=r.length;i<s;i++){var o=r[i].type(),u=m[o];u(r[i],n)}},turtle:function(e,t,n){var r=e.pathElements();if(r==null||r.length<1||r[0].type=="Z")return;n.moveTo(0,0);for(var i=0,s=r.length;i<s;i++){n.rotate(r[i].angle());var o=r[i].type(),u=m[o];u(r[i],n);var a=r[i].point();n.translate(a.x,a.y)}},annulus:function(e,t,n){var r=e.startAngle(),i=e.endAngle(),s=e.innerradius(),o=e.outerradius();n.moveTo(s*Math.cos(r),s*Math.sin(r)),n.lineTo(o*Math.cos(r),o*Math.sin(r)),n.arc(0,0,e.outerradius(),e.startAngle(),e.endAngle(),e.anticlockwise()),n.lineTo(s*Math.cos(i),s*Math.sin(i)),n.arc(0,0,e.innerradius(),e.endAngle(),e.startAngle(),!e.anticlockwise())}},b=function(e,t,n){var r=e.owner().matrix(),i=e.gprim();n.setTransform(r.a,r.b,r.c,r.d,r.tx,r.ty);var s=i.matrix();n.transform(s.a,s.b,s.c,s.d,s.tx,s.ty),n.beginPath();var o=y[i.type()];o?o(i,t,n):y.defaultPath(i,t,n),n.closePath(),n.clip()},w={gprim:function(e,t,n){},image:function(e,t,n){var r=e.image();if(r.complete&&r.naturalWidth!=0){var i=e.alpha(),s=n.globalAlpha;i!=s&&(n.globalAlpha*=i);var o=e.constraintmode();if(o==undefined){n.drawImage(r,0,0);return}var u=e.width(),a=e.height(),f=r.width,l=r.height,c={imgw:f,imgh:l,gprimw:u,gprimh:a},h={sx:[0,!1],sy:[0,!1],swidth:[f,!1],sheight:[l,!1],x:[0,!1],y:[0,!1],width:[f,!1],height:[l,!1]},d,v,m,g=o.length;for(v=0;v<g;v++){d=o[v].type;if(d==="fitHeight"||d==="fitWidth"){m=p[d],m(c,h,o[v].param);break}}var y;for(v=0;v<g;v++){d=o[v].type;if(d=="cut"){y="cut";continue}m=p[d],m(c,h,o[v].param)}y==="cut"&&(m=p[y],m(c,h)),n.drawImage(r,h.sx[0],h.sy[0],h.swidth[0],h.sheight[0],h.x[0],h.y[0],h.width[0],h.height[0]),n.globalAlpha=s}else if(t.showUnloadedImage()){n.fillStyle="white",n.fillRect(5,5,e.width()-10,e.height()-10);var b=n.lineWidth;n.lineWidth=5,n.fillStyle="blue",n.strokeStyle="blue",n.beginPath(),n.moveTo(5,5),n.lineTo(e.width()-11,e.height()-11),n.moveTo(e.width()-11,5),n.lineTo(5,e.height()-15),n.stroke();var w=n.textBaseline;n.font="18 Arial",n.textBaseline="top",n.fillText("未加载图片",0,0),n.textBaseline=w}},circle:function(e,t,n){d(e,n),n.beginPath(),y[e.type()](e,t,n),(e.fillStyle()!=undefined||e.fillFlag())&&n.fill(),(e.strokeStyle()!=undefined||e.strokeFlag())&&n.stroke(),v(n)},polygon:function(e,t,n){var r=e.vertexes();d(e,n),n.beginPath(),y[e.type()](e,t,n),n.closePath(),(e.fillStyle()!=undefined||e.fillFlag())&&n.fill(),(e.strokeStyle()!=undefined||e.strokeFlag())&&n.stroke(),v(n)},text:function(e,t,n){var r=e.text();d(e,n),n.font=e.fontString();var i=n.textBaseline;n.textBaseline="middle";var s=e.font().size/2;(e.fillStyle()!=undefined||e.fillFlag())&&n.fillText(r,0,s),e.strokeStyle()!=undefined||e.strokeFlag()?n.strokeText(r,0,s):e.fillStyle()==undefined&&!e.fillFlag()&&n.fillText(r,0,s),n.textBaseline=i,v(n)},map:function(e,t,n){var r=e.map,i=t._canvas.width,s=t._canvas.height;r.paint(n,0,0,i,s,0,0,i,s)},line:function(e,t,n){d(e,n);var r=e.vertexes();if(r==null||r.length<1)return;n.beginPath(),y[e.type()](e,t,n),n.stroke(),v(n)},arc:function(e,t,n){d(e,n),n.beginPath(),y[e.type()](e,t,n),n.stroke(),v(n)},clip:function(e,t,n){n.save(),n.beginPath(),n.rect(0,0,e.clipw(),e.cliph()),n.clip(),n.translate(-e.clipx(),-e.clipy()),t.draw(e.gprim()),n.closePath(),n.restore()},proceduregprim:function(e,t,n){e.draw(e,t)},composite:function(e,t,n){d(e,n);var r=0;for(var r=0,i=e.gprims().length;r<i;++r){var s=e.gprims()[r];t.draw(s,n)}v(n)},path:function(e,t,n){var r=e.pathElements();if(r==null||r.length<2||r[0].type()!="M"||r[1].type()=="Z")return;d(e,n),n.beginPath(),y[e.type()](e,t,n),(e.fillStyle()!=undefined||e.fillFlag())&&r[r.length-1].type()=="Z"&&n.fill(),(e.strokeStyle()!=undefined||e.strokeFlag())&&n.stroke(),v(n)},turtle:function(e,t,n){var r=e.pathElements();if(r==null||r.length<1||r[0].type=="Z")return;d(e,n),n.beginPath(),n.moveTo(0,0);for(var i=0,s=r.length;i<s;i++){n.rotate(r[i].angle());var o=r[i].type(),u=m[o];u(r[i],n);var a=r[i].point();n.translate(a.x,a.y)}(e.fillStyle()!=undefined||e.fillFlag())&&r[r.length-1].type()=="Z"&&n.fill(),(e.strokeStyle()!=undefined||e.strokeFlag())&&n.stroke(),v(n)},annulus:function(e,t,n){d(e,n),n.beginPath(),y[e.type()](e,t,n),(e.fillStyle()!=undefined||e.fillFlag())&&n.fill(),(e.strokeStyle()!=undefined||e.strokeFlag())&&n.stroke(),v(n)},rect:function(e,t,n){d(e,n),n.beginPath(),n.rect(0,0,e.width(),e.height()),(e.fillStyle()!=undefined||e.fillFlag())&&n.fill(),(e.strokeStyle()!=undefined||e.strokeFlag())&&n.stroke(),v(n)}},E=function(e,t){var n=e.getContext("2d");t.alpha!=undefined&&(n.globalAlpha*=t.alpha)},S=f.extend({initialize:function(e){this.execProto("initialize"),this._canvas=e,this._ctx=e.getContext("2d"),this._showUnloadedImage=!0},sketchpad:function(){return this._canvas},getContext:function(e){return this._canvas.getContext(e)},bbox:function(e){var t=e.cache;if(t.bbox!==undefined)return t.bbox;var n=hvBboxTbl[e.type];i(n,"no bounding box calculator for the `"+e.type+"' type of gprim");var r=n(e,this);return r.nocache?t.bbox=undefined:t.bbox=r,r},inside:function(e,t){var n=this.bbox(e),r=t.x,s=t.y;if(n.origin.x<=r&&r<n.origin.x+n.size.width&&n.origin.y<=s&&s<n.origin.y+n.size.height){var o=hvInsideTbl[e.type];return i(o,"no inside function for the `"+e.type+"' of gprim"),o(e,r,s,this)}return!1},showUnloadedImage:function(e){return e===undefined?this._showUnloadedImage:(this._showUnloadedImage=e,e)},draw:function(e,t){var n=t||this._ctx,r=e.type(),s=w[r];i(s,"no draw function for type `"+r+"'"),n.save();var o=e.matrix();n.transform(o.a,o.b,o.c,o.d,o.tx,o.ty),s(e,this,n),n.restore()},clear:function(){var e=this._ctx;e.clearRect(0,0,this._canvas.width,this._canvas.height)},drawGPrim:function(e,t,n){var r=e.type(),i=w[r],s=this._ctx;s.save(),E(this,n),s.transform(t.a,t.b,t.c,t.d,t.tx,t.ty);var o=e.matrix();s.transform(o.a,o.b,o.c,o.d,o.tx,o.ty),i(e,this,s),s.restore()},drawGPrims:function(e){var t=this;h(e,function(e){t.drawGPrim(e.gprim(),e.matrix(),e.effect())})},__doEffect:function(e,t){if(!t)return;t.getAlpha()!==undefined&&(e.globalAlpha*=t.getAlpha()),t.getCompositing()!==undefined&&(e.globalCompositeOperation=t.getCompositing())},__intersectClip:function(e,t){if(!e)return;var n=e.gprim();b(e,this,t),e.intersector()!==undefined&&this._t.__intersectClip(e.intersector(),t)},drawEffectedDisplayObject:function(e,t,n){var r=this._ctx,s=e.worldMatrix(),o=e.gprim(),u=o.type(),a=w[u];r.save(),i(a,"no draw function for type '"+u+"'"),this._t.__doEffect(r,n),this._t.__intersectClip(t,r),r.setTransform(s.a,s.b,s.c,s.d,s.tx,s.ty);var f=o.matrix();r.transform(f.a,f.b,f.c,f.d,f.tx,f.ty),a(o,this,r),r.restore()},drawDisplayObject:function(e){var t=this._ctx,n=e.worldMatrix(),r=e.gprim(),s=r.type(),o=w[s];t.save(),i(o,"no draw function for type '"+s+"'"),t.setTransform(n.a,n.b,n.c,n.d,n.tx,n.ty);var u=r.matrix();t.transform(u.a,u.b,u.c,u.d,u.tx,u.ty);var a=r.anchor();(a.x!=0||a.y!=0)&&t.translate(-a.x,-a.y),o(r,this,t),t.restore()},eventObservables:function(){return this._canvasEventObservables||(this._canvasEventObservables=new u(this.sketchpad())),this._canvasEventObservables},setWidth:function(e){this._canvas.width=e},setHeight:function(e){this._canvas.height=e},getSize:function(){return{width:this._canvas.width,height:this._canvas.height}}}),x=a.extend({},[],[S]);x.register=function(e,t){return i(!w[e],e+" has already exist in draw functions table"),w[e]=t.draw,t},w=w,n({HonestPainter:x,hvDraw:w})},e["/layeredscene.js"]=function(e,t,n){var r=e("scene").TreeScene,i=e("./lib/util").arrayForEach,s=e("./lib/debug"),s=e("./lib/debug"),o=e("actor").TreeActor,u=e("director").TimeStamper,a=e("./lib/geometry"),f=e("./lib/colortraits").Klass,l=e("./lib/colortraits").Trait,c=l.extend({__init:function(e,t){this._t.setlayers([]),this._t.setowner(e);for(var n=0;n<t;n++)this._t.layers().push(r.create(e))},addLayer:function(){return this._t.layers().push(r.create(this._t.owner())),this._t.layers().length-1},removeLayer:function(e){return e===undefined||e<0||e>=this._t.layers.length?null:this._t.layers.splice(e,1)},getLayer:function(e){return e===undefined||e<0||e>=this._t.layers.length?null:this._t.layers[e]},__update:function(e,t){i(this._t.layers(),function(n){n.update(e,t)})},addActorToLayer:function(e,t,n){this._t.layers()[e].addActor(t,n)},removeActorFromLayer:function(e,t){e?this._t.layers()[e].removeActor(t):this._t.layers()[0].removeActor(t)},emitDisplayObjects:function(e){i(this._t.layers(),function(t){t.emitDisplayObjects(e)})},emitInteractiveObjects:function(e){i(this._t.layers(),function(t){t.emitInteractiveObjects(e)})}},["layers","owner"]),h=r.extend({initialize:function(e,t){this.subTraits(0).__init(e,t)}},[],[c]);n({LayeredTreeScene:h})},e["/gprims/circlegprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./shaptrait").ShapTrait,s=e("../lib/geometry"),o=r.Klass,u=r.READONLY,a=r.CUSTOM_SETTER,f={radius:10},l=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=f),this._t.setradius(e.radius==undefined?10:e.radius),this._t.settype("circle"),this._t.setlength(undefined)},setradius:function(e){return this._t.cache().bbox=undefined,this._t.setradius(e),this._t.setlength(undefined),this},localBbox:function(){var e=this._t.radius(),t=0;if(this._t.strokeFlag()||this._t.strokeStyle()!=undefined)t=1;return s.rectMake(0-t/2,0-t/2,2*e+t,2*e+t)},localInside:function(e,t){var n=this._t.radius(),r=Math.pow(e-n,2)+Math.pow(t-n,2);return r<=n*n},localHook:function(e){this.hookMany(this._t,["fillFlag","strokeFlag","radius","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash","anchorPoint"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["fillFlag","strokeFlag","radius","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash","anchorPoint"],e,"a")},length:function(){var e=this._t.length();if(e==undefined){var t=this._t.radius();e=2*Math.PI*t,this._t.setlength(e)}return e},pointAtPercent:function(e){var t=this.radius();if(e<=0||e>=1)return{x:t*2,y:t};var n=this.length(),r=e*Math.PI*2;return{x:t*Math.cos(r)+t,y:t*Math.sin(r)+t}},percentAtLength:function(e){var t=this._t.length();return e<0?0:t<e?1:e/t}},["radius"].concat(i.grantMany(["fillFlag","strokeFlag","cache","type","id","tag","strokeStyle","fillStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash","length","anchorPoint"]))),c=o.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[u("type"),l.grant("type")],[a("radius"),l.grant("radius")],[a("strokeStyle"),l.grant("strokeStyle")],[a("fillStyle"),l.grant("fillStyle")],[a("shadowColor"),l.grant("shadowColor")]].concat(l.grantMany(["fillFlag","strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash"])),[l]);n({CircleKlass:c,CircleTrait:l})},e["/lib/geometry.js"]=function(e,t,n){var r=e("./util"),i=/\{\s*([\d.\-]+)\s*,\s*([\d.\-]+)\s*\}/,s=/\{\s*(\{[\s\d,.\-]+\})\s*,\s*(\{[\s\d,.\-]+\})\s*\}/,o=function(e,t){return e.x*t.y-e.y*t.x},u={Point:function(e,t){this.x=e,this.y=t},Size:function(e,t){this.width=e,this.height=t},Rect:function(e,t,n,r){this.x=e,this.y=t,this.width=n,this.height=r},Matrix:function(e,t,n,r,i,s,o){this.a=e,this.b=t,this.c=n,this.d=r,this.tx=i,this.ty=s,o==undefined?this.tz=0:this.tz=o},pointAdd:function(e,t){return u.pointMake(e.x+t.x,e.y+t.y)},pointAddBy:function(e,t){e.x+=t.x,e.y+=t.y;return},pointSub:function(e,t){return u.pointMake(e.x-t.x,e.y-t.y)},pointSubBy:function(e,t){e.x-=t.x,e.y-=t.y;return},pointMultiply:function(e,t){return u.pointMake(e.x*t.x,e.y*t.y)},pointMultiplyBy:function(e,t){e.x*=t.x,e.y*=t.y;return},pointNegation:function(e){return u.pointMake(-e.x,-e.y)},pointpNegationBy:function(e){e.x=-e.x,e.y=-e.y;return},pointRound:function(e){return u.pointMake(Math.round(e.x),Math.round(e.y))},pointRoundBy:function(e){e.x=Math.round(e.x),e.y=Math.round(e.y);return},pointCeil:function(e){return u.pointMake(Math.ceil(e.x),Math.ceil(e.y))},pointCeilBy:function(e){e.x=Math.ceil(e.x),e.y=Math.ceil(e.y);return},pointFloor:function(e){return u.pointMake(Math.floor(e.x),Math.floor(e.y))},pointFloorBy:function(e){e.x=Math.floor(e.x),e.y=Math.floor(e.y);return},PointZero:function(){return u.pointMake(0,0)},isPointInPolygon:function(e,t,n){var r=n.length,i=!1;for(var s=0,o=r-1;s<r;s++)(n[s].y<t&&n[o].y>=t||n[o].y<t&&n[s].y>=t)&&(n[s].x<=e||n[o].x<=e)&&(i^=n[s].x+(t-n[s].y)/(n[o].y-n[s].y)*(n[o].x-n[s].x)<e),o=s;return!!i},getVectorAngle:function(e,t){var n=t.x*e.x+t.y*e.y,r=Math.sqrt(t.x*t.x+t.y*t.y)*Math.sqrt(e.x*e.x+e.y*e.y);if(r==0)return undefined;var i=n/r,s=Math.acos(Math.abs(i)<=1?i:i>0?1:-1);return o(e,t)<0&&(s=Math.PI*2-s),s},rectMake:function(e,t,n,r){return new u.Rect(e,t,n,r)},rectFromString:function(e){var t=e.match(s),n=u.pointFromString(t[1]),r=u.sizeFromString(t[2]);return u.rectMake(n.x,n.y,r.width,r.height)},sizeMake:function(e,t){return new u.Size(e,t)},sizeFromString:function(e){var t=e.match(i),n=parseFloat(t[1]),r=parseFloat(t[2]);return u.sizeMake(n,r)},pointMake:function(e,t){return new u.Point(e,t)},pointFromString:function(e){var t=e.match(i),n=parseFloat(t[1]),r=parseFloat(t[2]);return u.pointMake(n,r)},rectContainsPoint:function(e,t){return t.x>=e.x&&t.x<=e.x+e.width&&t.y>=e.y&&t.y<=e.y+e.height},rectUnion:function(e,t){var n=new u.Rect(0,0,0,0);return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.width=Math.max(e.x+e.width,t.x+t.width)-n.x,n.height=Math.max(e.y+e.height,t.y+t.height)-n.y,n},rectOverlapsRect:function(e,t){return e.x+e.width<t.x||t.x+t.width<e.x||e.y+e.height<t.y||t.y+t.height<e.y?!1:!0},rectIntersection:function(e,t){var n=new u.Rect(Math.max(e.x,t.x),Math.max(e.y,t.y),0,0);return n.width=Math.min(e.x+e.width,t.x+t.width)-n.x,n.height=Math.min(e.y+e.height,t.y+t.height)-n.y,n},boundingRectMake:function(e,t,n,r){var i=Math.min(e.x,t.x,n.x,r.x),s=Math.min(e.y,t.y,n.y,r.y),o=Math.max(e.x,t.x,n.x,r.x),a=Math.max(e.y,t.y,n.y,r.y);return u.rectMake(i,s,o-i,a-s)},pointApplyMatrix:function(e,t){return u.pointMake(t.a*e.x+t.c*e.y+t.tx,t.b*e.x+t.d*e.y+t.ty)},pointApplyByMatrix:function(e,t){var n=e.x,r=e.y;e.x=t.a*n+t.c*r+t.tx,e.y=t.b*n+t.d*r+t.ty},rectApplyMatrixToBoundRect:function(e,t){var n=u.pointMake(e.x,e.y),r=u.pointMake(e.x+e.width,e.y),i=u.pointMake(e.x,e.y+e.height),s=u.pointMake(e.x+e.width,e.y+e.height);return u.pointApplyByMatrix(n,t),u.pointApplyByMatrix(r,t),u.pointApplyByMatrix(i,t),u.pointApplyByMatrix(s,t),u.boundingRectMake(n,r,i,s)},rectApplyByMatrixToBoundRect:function(e,t){var n=u.pointMake(e.x,e.y),r=u.pointMake(e.x+e.width,e.y),i=u.pointMake(e.x,e.y+e.height),s=u.pointMake(e.x+e.width,e.y+e.height);u.pointApplyByMatrix(n,t),u.pointApplyByMatrix(r,t),u.pointApplyByMatrix(i,t),u.pointApplyByMatrix(s,t);var o=Math.min(n.x,r.x,i.x,s.x),a=Math.min(n.y,r.y,i.y,s.y),f=Math.max(n.x,r.x,i.x,s.x),l=Math.max(n.y,r.y,i.y,s.y);e.x=o,e.y=a,e.width=f-o,e.height=l-a},boundRectOverlap:function(e,t){return!(e.x>t.x+t.width||e.y>t.y+t.height||t.x>e.x+e.width||t.y>e.y+e.height)},matrixInvert:function(e){var t=1/(e.a*e.d-e.b*e.c);return new u.Matrix(t*e.d,-t*e.b,-t*e.c,t*e.a,t*(e.c*e.ty-e.d*e.tx),t*(e.b*e.tx-e.a*e.ty),e.tz)},matrixInvertBy:function(e){var t=1/(e.a*e.d-e.b*e.c),n=t*e.d,r=-t*e.b,i=-t*e.c,s=t*e.a,o=t*(e.c*e.ty-e.d*e.tx),u=t*(e.b*e.tx-e.a*e.ty);e.a=n,e.b=r,e.c=i,e.d=s,e.tx=o,e.ty=u;return},matrixMultiply:function(e,t){return new u.Matrix(e.a*t.a+e.c*t.b,e.b*t.a+e.d*t.b,e.a*t.c+e.c*t.d,e.b*t.c+e.d*t.d,e.a*t.tx+e.c*t.ty+e.tx,e.b*t.tx+e.d*t.ty+e.ty,e.tz+t.tz)},matrixMultiplyBy:function(e,t){var n=e.a*t.a+e.c*t.b,r=e.b*t.a+e.d*t.b,i=e.a*t.c+e.c*t.d,s=e.b*t.c+e.d*t.d,o=e.a*t.tx+e.c*t.ty+e.tx,u=e.b*t.tx+e.d*t.ty+e.ty,a=e.tz+t.tz;e.a=n,e.b=r,e.c=i,e.d=s,e.tx=o,e.ty=u,e.tz=a;return},matrixTranslate:function(e,t,n,i){var s=r.copy(e);return s.tx=e.tx+e.a*t+e.c*n,s.ty=e.ty+e.b*t+e.d*n,i!=undefined&&(e.tz!=undefined?s.tz=e.tz+i:s.tz=i),s},matrixTranslateBy:function(e,t,n,r){r!=undefined&&e.tz==undefined&&(e.tz=0),e.tx=e.tx+e.a*t+e.c*n,e.ty=e.ty+e.b*t+e.d*n,r!=undefined&&(e.tz=e.tz+r);return},matrixRotateBy:function(e,t){var n=Math.sin(t),r=Math.cos(t),i,s,o,u;i=e.a*r+e.c*n,s=e.b*r+e.d*n,o=e.c*r-e.a*n,u=e.d*r-e.b*n,e.a=i,e.b=s,e.c=o,e.d=u;return},matrixRotate:function(e,t){var n=Math.sin(t),r=Math.cos(t),i,s,o,a;return i=e.a*r+e.c*n,s=e.b*r+e.d*n,o=e.c*r-e.a*n,a=e.d*r-e.b*n,new u.Matrix(i,s,o,a,e.tx,e.ty,e.tz)},matrixScaleBy:function(e,t,n){n===undefined&&(n=t),e.a*=t,e.b*=t,e.c*=n,e.d*=n;return},matrixScale:function(e,t,n){return n===undefined&&(n=t),new u.Matrix(e.a*t,e.b*t,e.c*n,e.d*n,e.tx,e.ty,e.tz)},identityMatrix:function(){return new u.Matrix(1,0,0,1,0,0,0)},isIdentityMatrix:function(e){return e.a===1&&e.b===0&&e.c===0&&e.d===1&&e.tx===0&&e.ty===0&&e.tz===0},decomposeMatrix:function(e){var t=Math.sqrt(Math.pow(e.a,2)+Math.pow(e.b,2)),n=Math.sqrt(Math.pow(e.c,2)+Math.pow(e.d,2)),r=Math.acos(e.a/t),i=e.tx,s=e.ty,o=e.tz;return{sx:t,sy:n,radian:r,tx:e.tx,ty:e.ty,tz:e.tz}},quadraticResolve:function(e,t,n){if(e==0)return[-n/t];var r=t*t-4*e*n,i=undefined,s=undefined;return r>0?(i=(-t+Math.sqrt(r))/(2*e),s=(-t-Math.sqrt(r))/(2*e),[i,s]):r==0?(i=s=-t/(2*e),[i]):[]},cubicResolve:function(e,t,n,r){if(e==0)return u.quadraticResolve(t,n,r);var i,s,o,a=t*n/(6*e*e)-t*t*t/(27*e*e*e)-r/(2*e),f=n/(3*e)-t*t/(9*e*e),l=a*a+f*f*f;if(l>0){var c=Math.sqrt(l);return i=-t/(3*e)+(a+c)/Math.abs(a+c)*Math.pow(Math.abs(a+c),1/3)+(a-c)/Math.abs(a-c)*Math.pow(Math.abs(a-c),1/3),[i]}if(l==0){if(a*a==0)return i=s=o=-t/(3*e),[i];var h=a/Math.abs(a)*Math.pow(Math.abs(a),1/3);return i=-t/(3*e)+2*h,s=o=-t/(3*e)-h,[i,s]}if(l<0){var p=Math.acos(a/Math.pow(-f,1.5));return i=-t/(3*e)+2*Math.sqrt(-f)*Math.cos(p/3),s=-t/(3*e)+2*Math.sqrt(-f)*Math.cos((p+2*Math.PI)/3),o=-t/(3*e)+2*Math.sqrt(-f)*Math.cos((p-2*Math.PI)/3),[i,s,o]}return[]},coordinateSysChange:function(e,t){var n=u.identityMatrix(),r=u.getVectorAngle({x:1,y:0},u.pointSub(t,e));return u.matrixTranslateBy(n,t.x,t.y),u.matrixRotateBy(n,r),u.matrixInvertBy(n),n},isPointInLine:function(e,t,n,r,i,s){var o={x:n,y:r},a=u.coordinateSysChange(e,t);u.pointApplyByMatrix(o,a);var f=u.pointApplyMatrix(e,a);return f.x<=o.x&&o.x<=0&&Math.abs(o.y)<i/2+s?!0:!1},ellipseCenterAngle:function(e,t,n,r,i,s,o,a){if(n==0||r==0||e.x==t.x&&e.y==t.y)return;var f={x:(e.x-t.x)/2,y:(e.y-t.y)/2},l={x:(e.x+t.x)/2,y:(e.y+t.y)/2},c=u.identityMatrix();u.matrixRotateBy(c,i);var h=u.matrixInvert(c);u.pointApplyByMatrix(f,h);var p=f.x*f.x/(n*n)+f.y*f.y/(r*r);p>1&&(n=Math.sqrt(p)*n,r=Math.sqrt(p)*r);var d=(n*n*r*r-n*n*f.y*f.y-r*r*f.x*f.x)/(n*n*f.y*f.y+r*r*f.x*f.x);d=Math.abs(d),d=Math.sqrt(d);var v;s==o?v={x:-d*n*f.y/r,y:-d*-r*f.x/n}:v={x:d*n*f.y/r,y:d*-r*f.x/n};var m=u.pointAdd(u.pointApplyMatrix(v,c),l),g={x:1,y:0},y=u.getVectorAngle(g,{x:(f.x-v.x)/n,y:(f.y-v.y)/r}),b=u.getVectorAngle({x:(f.x-v.x)/n,y:(f.y-v.y)/r},{x:(-f.x-v.x)/n,y:(-f.y-v.y)/r});o==0&&(b-=2*Math.PI),a.center=m,a.anglestart=y,a.detangle=b,a.rx=n,a.ry=r;return}};n(u)},e["/actor.js"]=function(e,t,n){var r=e("./lib/colortraits").Klass,i=e("./lib/colortraits").Trait,s=e("./lib/colortraits").READONLY,o=e("animate").AnimatorTrait,u=e("./lib/transformable").TransformableTrait,a=e("./lib/geometry"),f=e("actortraits").InteractorTrait,l=e("./lib/timestamp").globalTimeStamp,c=e("./lib/eventstream"),h=r.extend({initialize:function(e){e!=null&&e.interactable!=undefined?this._t.setinteractable(e.interactable):this._t.setinteractable(!0),this.subTraits(3).__init();var t=this.createEventStream("system"),n=this;this._t.setsystemEventStream(t
.select(function(e){return e.type=="active"?n.setownerScene(e.scene):e.type=="deactive"&&n.setownerScene(undefined),e})),this.subTraits(1).__init(l),this.subTraits(0).__init(),this.subTraits(2).__init()},update:function(e,t){return this.subTraits(0).__update(e,t,this),this},bbox:function(){return a.rectApplyMatrixToBoundRect(a.rectMake(0,0,0,0),this.matrix())},subscribe:function(e,t){return e=="system"?this._t.systemEventStream().subscribe(t):this._t.subject()[e].observable.subscribe(t)},emitDisplayObjects:function(e){return e},emitInteractiveObjects:function(e){return e},hookActorVisible:function(e){return this.hook(this.subTraits(1),"dirtyStamp",e,"a"),this.hook(this.subTraits(1),"dirtyStamp",e,"b"),this},unhookActorVisible:function(e){return this.unhook(this.subTraits(1),"dirtyStamp",e,"a"),this.unhook(this.subTraits(1),"dirtyStamp",e,"b"),this},applyEffect:function(e){if(this._t.effect()===e)return;this._t.seteffect(e),this.notify("system",{type:"effectChanged",effect:e})},applyClip:function(e){if(this._t.clipper()===e)return;this._t.setclipper(e),this.notify("system",{type:"clipperChanged",clipper:e})}},["interactable","systemEventStream","ownerScene",["subject",c.grant("subject")],s("effect"),s("clipper")],[o,u,f,c]);n(h)},e["/sprites/annulus.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=r.READONLY,s=r.CUSTOM_SETTER,o=e("./sprite"),u=e("../gprims/annulusgprim").AnnulusTrait,a=o.extend({initialize:function(e){this.execProto("initialize",{gprim:this,interactable:e==undefined?undefined:e.interactable}),this.subTraits(0).__init(e)}},[[i("type"),u.grant("type")],[s("innerradius"),u.grant("innerradius")],[s("outerradius"),u.grant("outerradius")],[s("startAngle"),u.grant("startAngle")],[s("endAngle"),u.grant("endAngle")],[s("anticlockwise"),u.grant("anticlockwise")],[s("strokeStyle"),u.grant("strokeStyle")],[s("fillStyle"),u.grant("fillStyle")],[s("shadowColor"),u.grant("shadowColor")]].concat(u.grantMany(["id","tag","strokeFlag","fillFlag","shadowBlur","shadowOffsetX","shadowOffsetY","lineDash"])),[u]);n(a)},e["/lib/pathlenprocess.js"]=function(e,t,n){function r(e,t){var n=t.x-e.x,r=t.y-e.y;return Math.sqrt(n*n+r*r)}function i(e,t,n){var r=1/3,i=2/3;return[{x:e.x,y:e.y},{x:r*e.x+i*t.x,y:r*e.y+i*t.y},{x:r*n.x+i*t.x,y:r*n.y+i*t.y},{x:n.x,y:n.y}]}function s(e,t,n){var r=(e[1].x+e[2].x)*.5;t[1].x=(e[0].x+e[1].x)*.5,n[2].x=(e[2].x+e[3].x)*.5,t[0].x=e[0].x,n[3].x=e[3].x,t[2].x=(t[1].x+r)*.5,n[1].x=(r+n[2].x)*.5,t[3].x=n[0].x=(t[2].x+n[1].x)*.5,r=(e[1].y+e[2].y)*.5,t[1].y=(e[0].y+e[1].y)*.5,n[2].y=(e[2].y+e[3].y)*.5,t[0].y=e[0].y,n[3].y=e[3].y,t[2].y=(t[1].y+r)*.5,n[1].y=(r+n[2].y)*.5,t[3].y=n[0].y=(t[2].y+n[1].y)*.5}function o(e,t,n){var i=[{},{},{},{}],u=[{},{},{},{}],a=0,f;a+=r(e[0],e[1]),a+=r(e[1],e[2]),a+=r(e[2],e[3]),f=r(e[0],e[3]);if(a-f>n){s(e,i,u),o(i,t,n),o(u,t,n);return}t[0]+=a;return}function u(e){var t=[0],n=.01;return o(e,t,n),t[0]}function m(e,t,n,r,i,s,o,u){var d=0,m=t*a,g=n*a,y=e.x,b=e.y,w=[{x:y+t,y:b},{x:y+t,y:b-g},{x:y+m,y:b-n},{x:y,y:b-n},{x:y-m,y:b-n},{x:y-t,y:b-g},{x:y-t,y:b},{x:y-t,y:b+g},{x:y-m,y:b+n},{x:y,y:b+n},{x:y+m,y:b+n},{x:y+t,y:b+g},{x:y+t,y:b}];i>f?i=f:i<-f&&(i=-f);if(r==0){var E;if(i==f){for(E=11;E>=0;--E)u[d++]=w[E];return d}if(i==-f){for(E=1;E<=12;++E)u[d++]=w[E];return d}}var S=Math.floor(r/l),x=Math.floor((r+i)/l),T=(r-S*l)/l,N=(r+i-x*l)/l,C=i>0?1:-1;C<0&&(T=1-T,N=1-N),c(T-1)&&(T=0,S+=C),c(N)&&(N=1,x-=C),T=p(T*l),N=p(N*l);var k=!c(T),L=!c(N-1),A=x+C;if(S==A){var O=3-(S%4+4)%4,M=3*O;return d}for(var E=S;E!=A;E+=C){var O=3-(E%4+4)%4,M=3*O,_;C>0?_=[{x:w[M+3].x,y:w[M+3].y},{x:w[M+2].x,y:w[M+2].y},{x:w[M+1].x,y:w[M+1].y},{x:w[M].x,y:w[M].y}]:_=[{x:w[M].x,y:w[M].y},{x:w[M+1].x,y:w[M+1].y},{x:w[M+2].x,y:w[M+2].y},{x:w[M+3].x,y:w[M+3].y}];if(S==x&&h(T,N))return d;E==S?E==x&&L?_=v(_,T,N):k&&(_=v(_,T,1)):E==x&&L&&(_=v(_,0,N)),u[d++]=_[1],u[d++]=_[2],u[d++]=_[3]}return u[d-1]={x:o.x,y:o.y},d}function y(e){if(e.length<=1)return 0;var t=0,n,s,o,a,f,l;for(var c=0;c<e.length;++c){n=e[c];switch(n[0]){case"M":break;case"L":o=e[c-1],s=o.length,t+=r(o[s-1],n[n.length-1]);break;case"Q":o=e[c-1],s=o.length,a=i(o[s-1],n[1],n[2]),t+=u(a);break;case"C":o=e[c-1],s=o.length,a=o.slice(s-1).concat(n.slice(1)),t+=u(a);break;case"A":o=e[c-1],s=o.length;var h={x:o[s-1].x,y:o[s-1].y},p=n.length,d={x:n[p-1].x,y:n[p-1].y};g(n[1],n[4],h,d);var v=new Array,y=m({x:0,y:0},n[2],n[3],n[5],n[6]-n[5],h,d,v);a=[h];for(var b=0;b<y;b+=3)a=a.slice(a.length-1).concat(v[b],v[b+1],v[b+2]),t+=u(a);break;case"Z":o=e[c-1],s=o.length,f=e[0],l=f.length,t+=r(o[s-1],f[l-1])}}return t}function b(e,t,n){return{x:t.x+e*(n.x-t.x),y:t.y+e*(n.y-t.y)}}function w(e,t){var n,r,i=1-e,s,o,u;return s=t[0].x*i+t[1].x*e,o=t[1].x*i+t[2].x*e,u=t[2].x*i+t[3].x*e,s=s*i+o*e,o=o*i+u*e,n=s*i+o*e,s=t[0].y*i+t[1].y*e,o=t[1].y*i+t[2].y*e,u=t[2].y*i+t[3].y*e,s=s*i+o*e,o=o*i+u*e,r=s*i+o*e,{x:n,y:r}}function E(e,t,n){var r=e.x*Math.cos(n)-e.y*Math.sin(n),i=e.y*Math.cos(n)+e.x*Math.sin(n);e.x=r+t.x,e.y=i+t.y}var a=.5522847498,f=Math.PI*2,l=Math.PI/2,c=function(e){return Math.abs(e)<1e-12},h=function(e,t){return Math.abs(e-t)*1e12<=Math.min(Math.abs(e),Math.abs(t))},p=function(e){if(c(e))return 0;if(h(e,l))return 1;var t=Math.cos(e),n=Math.sin(e),r=e/l;r-=(((2-3*a)*r+3*(a-1))*r*r+1-t)/(((6-9*a)*r+6*(a-1))*r),r-=(((2-3*a)*r+3*(a-1))*r*r+1-t)/(((6-9*a)*r+6*(a-1))*r);var i=r;i-=((((3*a-2)*i-6*a+3)*i+3*a)*i-n)/(((9*a-6)*i+12*a-6)*i+3*a),i-=((((3*a-2)*i-6*a+3)*i+3*a)*i-n)/(((9*a-6)*i+12*a-6)*i+3*a);var s=.5*(r+i);return s},d=function(e,t,n){n[0].x=e[0].x,n[0].y=e[0].y,n[1].x=e[0].x+t*(e[1].x-e[0].x),n[1].y=e[0].y+t*(e[1].y-e[0].y),n[2].x=e[1].x+t*(e[2].x-e[1].x),n[2].y=e[1].y+t*(e[2].y-e[1].y),e[2].x=e[2].x+t*(e[3].x-e[2].x),e[2].y=e[2].y+t*(e[3].y-e[2].y),e[1].x=n[2].x+t*(e[2].x-n[2].x),e[1].y=n[2].y+t*(e[2].y-n[2].y),n[2].x=n[1].x+t*(n[2].x-n[1].x),n[2].y=n[1].y+t*(n[2].y-n[1].y),n[3].x=e[0].x=n[2].x+t*(e[1].x-n[2].x),n[3].y=e[0].y=n[2].y+t*(e[1].y-n[2].y)},v=function(e,t,n){if(t==0&&n==1)return e;var r=[{},{},{},{}];d(e,t,r);var i=(n-t)/(1-t);return d(e,i,r),r},g=function(e,t,n,r){var i=(n.x-e.x)*Math.cos(t)+(n.y-e.y)*Math.sin(t),s=(n.y-e.y)*Math.cos(t)-(n.x-e.x)*Math.sin(t);n.x=i,n.y=s,i=(r.x-e.x)*Math.cos(t)+(r.y-e.y)*Math.sin(t),s=(r.y-e.y)*Math.cos(t)-(r.x-e.x)*Math.sin(t),r.x=i,r.y=s};n({LineLength:r,q2c:i,CubicBezierLength:u,EllipseArcStandard:g,a2c:m,getTotalLength:y,PointApplyEllipse:E,PointAtLine:b,PointAtBezier:w})},e["/sprites/bubblereceiver.js"]=function(e,t,n){var r=e("../treeactor").TreeActor,i=r.extend({initialize:function(){this.execProto("initialize",{})},receiveBubble:function(){return!0},emitDisplayObjects:function(){},emitInteractiveObjects:function(){}});n(i)},e["/pidget.js"]=function(e,t,n){var r=e("./lib/colortraits").Klass,i=e("./lib/colortraits").Trait,s=e("./lib/colortraits").compose,o=e("./lib/debug"),u=r.extend({initialize:function(e){this._t.setgprim(e.gprim),this._t.setactor(e.actor),this._t.setworldMatrix(e.worldMatrix),this._t.setviewMatrix(e.viewMatrix)}},["gprim","actor","worldMatrix","viewMatrix"]),a=u.extend({initialize:function(e){this.execProto("initialize",e)},draw:function(e){e.drawDisplayObject(this)}}),f=u.extend({initialize:function(e){this.execProto("initialize",e)},inside:function(e,t){var n=e.getPstnRelativeToMatrix(t,this.worldMatrix());return this.gprim().inside(n.x,n.y)}}),l=a.extend({initialize:function(e){this.execProto("initialize",e)},draw:function(e){var t=this.actor().clipper(),n=this.actor().effect();e.drawEffectedDisplayObject(this,t,n)}}),c=f.extend({initialize:function(e){this.execProto("initialize",e)},inside:function(e,t){var n=this.actor().clipper();return n?this.execProto("inside",e,t)&&n.inside(e,t):this.execProto("inside",e,t)}});n({DisplayObject:a,InteractiveObject:f,EffectedDisplayObject:l,EffectedInteractiveObject:c})},e["/query.js"]=function(e,t,n){var r=e("./lib/colortraits"),i=r.Trait,s=e("./lib/util"),o=s.arrayForEach,u=s.arraySome,a=i.extend({__init:function(e){this._t.setid(e.id),this._t.settag(e.tag)},getGPrimsInPath:function(e,t){var n=e.split("/");if(n.length==0)return!1;t.push(this);if(this.tag()==n[0]){n.splice(0,1);if(n.length==0)return!0}if(this.respondsTo("gprims")==undefined)return t.pop(this),!1;var r=u(this.gprims(),function(e){return 1==e.getGPrimsInPath(n.join("/"),t)?!0:!1});return r==0?(t.pop(this),!1):!0},innergetPath:function(e,t){this.tag()&&t.push(this.tag());if(this==e)return!0;if(this.respondsTo("gprims")===undefined)return this.tag()&&t.pop(),!1;var n=u(this.gprims(),function(n){return n.innergetPath(e,t)==1?!0:!1});return 0==n?(this.tag()&&t.pop(),!1):!0},getPath:function(e){var t=[];return 0==this.innergetPath(e,t)?!1:t.join("/")},findGPrimByPath:function(e){var t=[];return this.getGPrimsInPath(e,t)===!1?!1:t[t.length-1]},removeGPrimByPath:function(e){var t=[];if(!this.getGPrimsInPath(e,t))return!1;if(t.length<2)return!1;var n=t[t.length-2],r=t[t.length-1],i=n.gprims();return i.splice(i.indexOf(r),1),n.setgprims(i),r},replaceGPrimByPath:function(e,t){var n=[];if(this.getGPrimsInPath(e,n)===!1)return!1;if(n.length<2)return!1;var r=n[n.length-2],i=n[n.length-1],s=r.gprims();return s.splice(s.indexOf(i),1,t),r.setgprims(s),i},addGPrimByPath:function(e,t){if(e===undefined&&this.type()=="composite")return this.gprims().push(t),!0;var n=[];return this.getGPrimsInPath(e,n)===!1?!1:n[n.length-1].respondsTo("gprims")===undefined?!1:(n[n.length-1].gprims().push(t),!0)},findGPrimsBytag:function(e,t){this.tag()==e&&t.push(this);if(this.respondsTo("gprims")==undefined)return;var n=this.gprims();for(var r=0,i=n.length;r<i;r++){var s=n[r];s.findGPrimsBytag(e,t)}return},findGPrimById:function(e,t){if(this.id()==e)return t.push(this),!0;if(this.respondsTo("gprims")==undefined)return!1;var n=u(this.gprims(),function(n){return 1==n.findGPrimById(e,t)?!0:!1});return n},removeGPrimById:function(e){var t=[];if(!this.findGPrimById(e,t))return!1;var n=t[0];t=[];if(0==this.getGPrims(n,t))return!1;if(t.length<2)return!1;var r=t[t.length-2],i=t[t.length-1],s=r.gprims();return s.splice(s.indexOf(n),1),r.setgprims(s),i},replaceGPrimById:function(e,t){var n=[];if(!this.findGPrimById(e,n))return!1;var r=n[0];n=[];if(this.getGPrims(r,n)===!1)return!1;if(n.length<2)return!1;var i=n[n.length-2],s=n[n.length-1],o=i.gprims();return o.splice(o.indexOf(s),1,t),i.setgprims(o),s},getGPrims:function(e,t){t.push(this);if(this==e)return!0;if(this.respondsTo("gprims")==undefined)return t.pop(),!1;var n=u(this.gprims(),function(n){return 1==n.getGPrims(e,t)?!0:!1});return 0==n?(t.pop(),!1):!0},replaceGPrim:function(e,t){var n=[];if(!this.getGPrims(e,n))return!1;if(n.length<2)return!1;var r=n[n.length-2],i=r.gprims();return i.splice(i.indexOf(e),1,t),r.setgprims(i),!0},removeGPrim:function(e){var t=[];if(0==this.getGPrims(e,t))return!1;if(t.length<2)return!1;var n=t[t.length-2],r=n.gprims();return r.splice(r.indexOf(e),1),n.setgprims(r),!0},findGPrimsByType:function(e,t){this.type()==e&&t.push(this);if(this.respondsTo("gprims")==undefined)return;var n=o(this.gprims(),function(n){n.findGPrimsByType(e,t)});return}},["id","tag"]);n({QueryTrait:a})},e["/thirdlib/rx/rx.helper.js"]=function(e,t,n){(function(t,n){var r=typeof exports=="object"&&exports&&(typeof t=="object"&&t&&t==t.global&&(window=t),exports);if(typeof define=="function"&&define.amd)define(["rx","exports"],function(e,r){return t.Rx=n(t,r,e),t.Rx});else if(typeof module=="object"&&module&&module.exports==r){var i=n(t,module.exports,e("./rx"));module.exports=i}else t.Rx=n(t,{},t.Rx)})(this,function(e,t,n,r){var i=n.Observable,s=i.prototype,o=i.createWithDisposable,u=n.Disposable.create,a=n.CompositeDisposable,f=n.RefCountDisposable,l=n.AsyncSubject;return i.prototype.then=function(e,t){return this.select(e).switchLatest()},n})},e["/eventdecider.js"]=function(e,t,n){function d(){this.flow=!1}function m(e,t,n,r){if(n==r)return;var i=t[n],s=n,o=r;while(r>n)if(t[r].viewMatrix().tz-i.viewMatrix().tz<0)r--;else{t[n]=t[r];while(r>++n)if(t[n].viewMatrix().tz-i.viewMatrix().tz<=0){t[r]=t[n];break}}if(s==n){m(++n,o);return}t[n]=i,m(s,n),m(r,o)}function g(e,t){var n=0,r=t.length-1;return m(e,t,n,r),t}function y(e,t){return t.viewMatrix().tz-e.viewMatrix().tz}function x(e,t,n,r){var i=t.length,s,o,u;for(var a=0;a<i;++a){o=e.hitTestNodes(n,{x:t[0].mouseX,y:t[0].mouseY},r),u=o?o.hitActor:undefined,s==null&&(s=u);if(s==null||s!=u)return!1}return s}function L(e){if(e.actor.queryInteractSubject(e.type)==null)debugger;e.actor.queryInteractSubject(e.type).onNext(e)}function O(e){var t=e.actor;t.queryInteractSubject(e.type).onNext(e);if(!e.flow)return;var n=t.parent();while(n){if(n.hasMethod("receiveBubble")&&n.receiveBubble()){n.queryInteractSubject(e.type).onNext(e);if(!e.flow)return}t=n,n=n.parent()}}var r=e("./lib/geometry"),i=e("./lib/debug"),s=e("./lib/colortraits").Klass,o=e("./lib/colortraits").Trait,u=e("./thirdlib/rx/all"),a=e("./lib/util"),f=a.arrayForEach,l=a.arraySome,c=a.identifier,h=a.objectDotCreate,p=function(e,t){var n=r.matrixInvert(e.getGameToViewMatrix()),i=r.pointApplyMatrix({x:t.mouseX,y:t.mouseY},n);return t.gameX=i.x,t.gameY=i.y,t},p=function(e,t){var n=r.matrixInvert(e.getGameToViewMatrix()),i=r.pointApplyMatrix({x:t.mouseX,y:t.mouseY},n);return t.gameX=i.x,t.gameY=i.y,t},v=function(e){var t=h(e);return t.flow=!0,t.preventFlow=d,t},b=o.extend({initialize:function(e){this.interactiveObjs={},this.interactiveObjs.mouse=[],this.interactiveObjs.keyboard=[],this.interactiveObjs.touch=[],this._deciderSubject=new u.Subject,this._deciderObservable=this._deciderSubject.asObservable(),this._deciderObservable.subscribe(e)},deciderObservable:function(){return this._deciderObservable},hitTestNodes:function(e,t,n){var r=this,i,s;e.updateViewMatrix(n),n.sort(y);for(var o=0;o<n.length;++o){var u=n[o];s=r.hitTest(e,t,u);if(s!=0){i=u;break}}if(i)return{hitActor:i.actor(),gprimPath:typeof s=="object"?s:undefined}},hitTest:function(e,t,n){return n.inside(e,t)},updateInteractiveObjects:function(e,t){this.interactiveObjs[t].length=0,e.requestInteractiveObjects(this,this.interactiveObjs[t],t)}}),w=s.extend({},[],[b]),E=o.extend({mousedownDecider:function(e,t,n,r){if(this._pressedInfo&&this._pressedInfo.hitActor.queryInteractSubject("mouseReleased")!=undefined){var i=v(t);i.type="mouseReleased",i.actor=this._pressedInfo.hitActor,this._pressedInfo=undefined,this._pressedEvent=undefined,r.onNext(i)}var s=this.hitTestNodes(e,{x:t.mouseX,y:t.mouseY},n),o=s?s.hitActor:undefined;s&&o.queryInteractSubject("mousePressed")!=undefined&&(this._pressedInfo=s,this._pressedEvent=v(t),this._pressedEvent.type="mousePressed",this._pressedEvent.actor=o,this._pressedEvent.gprimPath=s.gprimPath,r.onNext(this._pressedEvent))},mousemoveDecider:function(e,t,n,r){if(this._pressedInfo){if(this._pressedInfo.hitActor.queryInteractSubject("mouseMoved")!=null){var i=v(t);i.gprimPath=this._pressedInfo.gprimPath,i.actor=this._pressedInfo.hitActor,i.type="mouseMoved",r.onNext(i)}}else{var s=this.hitTestNodes(e,{x:t.mouseX,y:t.mouseY},n),o=s?s.hitActor:undefined;if(this._activeNode&&o!==this._activeNode){if(this._activeNode.queryInteractSubject("mouseOut")!=null){var i=v(t);i.type="mouseOut",i.gprimPath=this._activeGPrimPath,i.actor=this._activeNode,r.onNext(i)}this._activeNode=undefined,this._activeGPrim=undefined,this._activeGPrimPath=undefined}else if(s&&o&&o==this._activeNode){if(this._activeNode.queryInteractSubject("mouseMoved")!=null){var i=v(t);i.type="mouseMoved",i.gprimPath=s.gprimPath,i.actor=this._activeNode,r.onNext(i)}}else if(o&&o!==this._activeNode){this._activeNode=s.hitActor,this._activeGPrimPath=s.gprimPath;if(this._activeNode.queryInteractSubject("mouseOver")!=null){var i=v(t);i.type="mouseOver",i.gprimPath=s.gprimPath,i.actor=this._activeNode,r.onNext(i)}}}},mouseupDecider:function(e,t,n,r){if(this._pressedInfo)if(this._pressedInfo.hitActor.queryInteractSubject("mouseReleased")==null)this._pressedInfo=undefined,this._pressedEvent=undefined;else{var i=v(t);i.gprimPath=this._pressedInfo.gprimPath,i.actor=this._pressedInfo.hitActor,i.type="mouseReleased",this._pressedInfo=undefined,this._pressedEvent=undefined,r.onNext(i)}}}),S=o.extend({commonEventDecider:function(e,t,n,r){var i,s;for(var o in waiters){var s=waiters[o],u=v(t);u.actor=s,r.onNext(u)}}}),T=o.extend({touchstartDecider:function(e,t,n,r){var i=t.touches,s=i.length;if(this._t.twoFingerTouching()||s!=2){this.mousedownDecider(e,t,n,r);return}if(s!=2)return;var o=x(this,i,e,n);if(!o)return;if(o.queryInteractSubject("twoFingerTouch")==null)return;var u=v(t);u.type="twoFingerTouch",u.etype="touchstart",u.actor=o,r.onNext(u),this._t.settwoFingerTouching(o)},touchmoveDecider:function(e,t,n,r){var i=t.touches;if(this._t.twoFingerTouching()==null||i.length!=2){this.mousemoveDecider(e,t,n,r);return}var s=x(this,i,e,n);if(!s||s!=this._t.twoFingerTouching())return;if(s.queryInteractSubject("twoFingerTouch")==null)return;var o=v(t);o.type="twoFingerTouch",o.etype="touchmove",o.actor=s,r.onNext(o)},touchendDecider:function(e,t,n,r){this.mouseupDecider(e,t,n,r);if(this._t.twoFingerTouching()==null)return;var i=this._t.twoFingerTouching();if(i.queryInteractSubject("twoFingerTouch")==null)return;var s=v(t);s.type="twoFingerTouch",s.etype="touchend",s.actor=i,r.onNext(s),this._t.settwoFingerTouching(undefined)}},["twoFingerTouching"]),N="mouse",C="keyboard",k=w.extend({initialize:function(e,t,n,r){this.execProto("initialize",r);var i=this,e=e,t=t,s=this._deciderSubject,o=0;this.observers=[],t.mousedownObservable&&(this.observers[o++]=t.mousedownObservable.subscribe(function(t){i.updateInteractiveObjects(n,N),p(e,t),i.mousedownDecider(e,t,i.interactiveObjs.mouse,s)}),this.observers[o++]=t.mousemoveObservable.subscribe(function(t){i.updateInteractiveObjects(n,N),p(e,t),i.mousemoveDecider(e,t,i.interactiveObjs.mouse,s)}),this.observers[o++]=t.mouseupObservable.subscribe(function(t){i.updateInteractiveObjects(n,N),p(e,t),i.mouseupDecider(e,t,i.interactiveObjs.mouse,s)})),this.observers[o++]=t.keydownObservable.subscribe(function(t){i.updateInteractiveObjects(n,C),p(e,t),i.commonEventDecider(e,t,i.interactiveObjs.keyboard,s)}),this.observers[o++]=t.keyupObservable.subscribe(function(t){i.updateInteractiveObjects(n,C),p(e,t),i.commonEventDecider(e,t,i.interactiveObjs.keyboard,s)}),t.touchstartObservable&&(this.observers[o++]=t.touchstartObservable.subscribe(function(t){i.updateInteractiveObjects(n,N),i.touchstartDecider(e,t,i.interactiveObjs.mouse,s)}),this.observers[o++]=t.touchmoveObservable.subscribe(function(t){i.updateInteractiveObjects(n,N),i.touchmoveDecider(e,t,i.interactiveObjs.mouse,s)}),this.observers[o++]=t.touchendObservable.subscribe(function(t){i.updateInteractiveObjects(n,N),i.touchendDecider(e,t,i.interactiveObjs.mouse,s)}))},destroy:function(){for(var e=0;e<this.observers.length;++e)this.observers[e].dispose()}},[],[E,S,T]),A=k.extend({initialize:function(e,t,n){this.execProto("initialize",e,t,n,L)}}),M=k.extend({initialize:function(e,t,n){this.execProto("initialize",e,t,n,O)}});n({DeciderBase:w,EventDecider:A,BubbleEventDecider:M})},e["/lib/timestamp.js"]=function(e,t,n){var r=e("./colortraits").Klass,i=e("./colortraits").Trait,s=i.extend({initialize:function(e){return this.execProto("initialize"),e=e||{},e.startTime!=undefined?this._startTime=e.startTime:this._startTime=0,this._curTime=this._startTime,e.step!=undefined?this._step=e.step:this._step=1,this},stepForward:function(e){e!=undefined?this._curTime=this._curTime+e:this._curTime=this._curTime+this._step},adjust:function(e){this._curTime=e},now:function(){return this._curTime}}),o=r.extend({},[],[s]),u=o.create();n({TimeStamper:o,globalTimeStamp:u})},e["/gprims/linegprim.js"]=function(e,t,n){var r=e("../lib/colortraits"),i=e("./shaptrait").ShapTrait,s=e("../lib/geometry"),o=r.Klass,u=r.READONLY,a=r.CUSTOM_SETTER,f={vertexes:[{x:0,y:0},{x:10,y:0}]},l=i.extend({__init:function(e){this.subTraits(0).__init(e),e==undefined&&(e=f),this._t.setvertexes(e.vertexes==undefined?f.vertexes:e.vertexes),this._t.settype("line"),this._t.setlength(undefined)},setvertexes:function(e){return this._t.cache(),bbox=undefined,this._t.setvertexes(e),this._t.setlength(undefined),this},localBbox:function(){var e=this._t.vertexes(),t,n,r,i;for(var o=0,u=e.length;o<u;o++){var a=e[o];if(a.x<t||t==undefined)t=a.x;if(a.x>n||n==undefined)n=a.x;if(a.y<r||r==undefined)r=a.y;if(a.y>i||i==undefined)i=a.y}var f=this._t.lineWidth();return new s.Rect(t-f/2,r-f/2,n-t+f,i-r+f)},localInside:function(e,t){var n=this._t.lineWidth(),r=this._t.vertexes();for(var i=1,o=r.length;i<o;i++)if(s.isPointInLine(r[i-1],r[i],e,t,n,0))return!0;return!1},localHook:function(e){this.hookMany(this._t,["strokeFlag","vertexes","strokeStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","lineCap","lineJoin","miterLimit","lineDash","anchorPoint"],e,"a")},unlocalHook:function(e){this.unhookMany(this._t,["strokeFlag","vertexes","strokeStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","lineCap","lineJoin","miterLimit","lineDash","anchorPoint"],e,"a")},length:function(){var e=this._t.length();if(e==undefined){e=0;var t=this._t.vertexes();for(var n=0,r=t.length;n<r-1;n++){var i=t[n],s=t[n+1];e+=Math.sqrt((i.x-s.x)*(i.x-s.x)+(i.y-s.y)*(i.y-s.y))}this._t.setlength(e)}return e},pointAtPercent:function(e){var t=this._t.vertexes();if(e<=0)return{x:t[0].x,y:t[0].y};var n=t.length;if(e>=1)return{x:t[n-1].x,y:t[n-1].y};var r=this.length(),i=0;for(var s=0,n=t.length;s<n-1;s++){var o=t[s],u=t[s+1],a=Math.sqrt((o.x-u.x)*(o.x-u.x)+(o.y-u.y)*(o.y-u.y));i+=a;if(r*e<=i){var f=(r*e-i+a)/a;return{x:o.x+f*(u.x-o.x),y:o.y+f*(u.y-o.y)}}}},percentAtLength:function(e){var t=this._t.length();return e<0?0:t<e?1:e/t}},["vertexes","length"].concat(i.grantMany(["strokeFlag","cache","type","id","tag","strokeStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","lineWidth","lineCap","lineJoin","miterLimit","lineDash","anchorPoint"]))),c=o.extend({initialize:function(e){this.execProto("initialize"),this.subTraits(0).__init(e)}},[[u("type"),l.grant("type")],[a("vertexes"),l.grant("vertexes")],[a("lineWidth"),l.grant("lineWidth")],[a("strokeStyle"),l.grant("strokeStyle")],[a("shadowColor"),l.grant("shadowColor")]].concat(l.grantMany(["strokeFlag","id","tag","shadowBlur","shadowOffsetX","shadowOffsetY","lineCap","lineJoin","miterLimit","lineDash"])),[l]);n({LineKlass:c,LineTrait:l})},"use strict",function(){function n(e){var t=e.split("/");return t.pop(),t.join("/")}function r(e){var t=e.split("/");return t[t.length-1]}function i(){return o(Array.prototype.join.call(arguments,"/"))}function s(e,t){var n=[],r;for(var i=0,s=e.length-1;i<=s;i++){var o=e[i];if(o===""&&i!==0&&i!==s&&!t)continue;if(o==="."&&r!==undefined)continue;if(n.length===1&&n[0]===""&&(o==="."||o===".."))continue;o===".."&&n.length&&r!==".."&&r!=="."&&r!==undefined&&(r!==""||t)?(n.pop(),r=n.slice(-1)[0]):(r==="."&&n.pop(),n.push(o),r=o)}return n}function o(e,t){return s(e.split("/"),t).join("/")}function u(t){return e[t]}function a(e,t){var r=e+".js";if(u(r)!==undefined)return r;var s=n(t);return r=i(s,r),r}function h(e,t){var n=a(e,c);if(f[n]!=null)return f[n];var r=u(n);if(r==null)throw"Unable to find module: "+n;var i=l,s=c;c=n,r.apply(t,[h,p,d]),f[n]=l;var o=l;return l=i,c=s,o}function p(e,t){return h(e,t)}function d(e){l=e}var f={},l={},c="/";t=h("./colorbox")}(),t};