/* Copyright 2015, Jason Davies. All rights reserved. */!function(){function t(t,n,o){var a=t.translate(),r=Math.atan2(n[1]-a[1],n[0]-a[0])-Math.atan2(o[1]-a[1],o[0]-a[0]);return[Math.cos(r/2),0,0,Math.sin(r/2)]}function n(t,n){var o=t.invert(n);return o&&isFinite(o[0])&&isFinite(o[1])&&u(o)}function o(t){var n=.5*t[0]*f,o=.5*t[1]*f,a=.5*t[2]*f,r=Math.sin(n),e=Math.cos(n),i=Math.sin(o),u=Math.cos(o),s=Math.sin(a),c=Math.cos(a);return[e*u*c+r*i*s,r*u*c-e*i*s,e*i*c+r*u*s,e*u*s-r*i*c]}function a(t,n){var o=t[0],a=t[1],r=t[2],e=t[3],i=n[0],u=n[1],s=n[2],c=n[3];return[o*i-a*u-r*s-e*c,o*u+a*i+r*c-e*s,o*s-a*c+r*i+e*u,o*c+a*s-r*u+e*i]}function r(t,n){if(t&&n){var o=c(t,n),a=Math.sqrt(s(o,o)),r=.5*Math.acos(Math.max(-1,Math.min(1,s(t,n)))),e=Math.sin(r)/a;return a&&[Math.cos(r),o[2]*e,-o[1]*e,o[0]*e]}}function e(t,n){var o=Math.max(-1,Math.min(1,s(t,n))),a=0>o?-1:1,r=Math.acos(a*o),e=Math.sin(r);return e?function(o){var i=a*Math.sin((1-o)*r)/e,u=Math.sin(o*r)/e;return[t[0]*i+n[0]*u,t[1]*i+n[1]*u,t[2]*i+n[2]*u,t[3]*i+n[3]*u]}:function(){return t}}function i(t){return[Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),1-2*(t[1]*t[1]+t[2]*t[2]))*m,Math.asin(Math.max(-1,Math.min(1,2*(t[0]*t[2]-t[3]*t[1]))))*m,Math.atan2(2*(t[0]*t[3]+t[1]*t[2]),1-2*(t[2]*t[2]+t[3]*t[3]))*m]}function u(t){var n=t[0]*f,o=t[1]*f,a=Math.cos(o);return[a*Math.cos(n),a*Math.sin(n),Math.sin(o)]}function s(t,n){for(var o=0,a=t.length,r=0;a>o;++o)r+=t[o]*n[o];return r}function c(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function h(t){for(var n=0,o=arguments.length,a=[];++n