From 787bb861980590d8ed13b6855fe5160703d8c357 Mon Sep 17 00:00:00 2001 From: kangax Date: Thu, 7 Jun 2012 16:24:32 +0200 Subject: [PATCH] Build distribution, bump version. --- HEADER.js | 2 +- dist/all.js | 98 +++++++++++++++++++++++++++------------------ dist/all.min.js | 2 +- dist/all.min.js.gz | Bin 39048 -> 39301 bytes package.json | 2 +- 5 files changed, 63 insertions(+), 41 deletions(-) diff --git a/HEADER.js b/HEADER.js index f0cd416a..d211335b 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2012, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "0.8.15" }; +var fabric = fabric || { version: "0.8.16" }; if (typeof exports != 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index d627ddc5..49c91db9 100644 --- a/dist/all.js +++ b/dist/all.js @@ -2290,58 +2290,69 @@ fabric.util.string = { })(); (function() { - + var slice = Array.prototype.slice, emptyFunction = function() { }; - + var IS_DONTENUM_BUGGY = (function(){ for (var p in { toString: 1 }) { if (p === 'toString') return false; } return true; })(); - - var addMethods; - if (IS_DONTENUM_BUGGY) { - /** @ignore */ - addMethods = function(klass, source) { - if (source.toString !== Object.prototype.toString) { - klass.prototype.toString = source.toString; + + /** @ignore */ + var addMethods = function(klass, source, parent) { + for (var property in source) { + + if (property in klass.prototype && typeof klass.prototype[property] == 'function') { + + klass.prototype[property] = (function(property) { + return function() { + + var superclass = this.constructor.superclass; + this.constructor.superclass = parent; + var returnValue = source[property].apply(this, arguments); + this.constructor.superclass = superclass; + + if (property !== 'initialize') { + return returnValue; + } + } + })(property); } - if (source.valueOf !== Object.prototype.valueOf) { - klass.prototype.valueOf = source.valueOf; - } - for (var property in source) { + else { klass.prototype[property] = source[property]; } - }; - } - else { - /** @ignore */ - addMethods = function(klass, source) { - for (var property in source) { - klass.prototype[property] = source[property]; + + if (IS_DONTENUM_BUGGY) { + if (source.toString !== Object.prototype.toString) { + klass.prototype.toString = source.toString; + } + if (source.valueOf !== Object.prototype.valueOf) { + klass.prototype.valueOf = source.valueOf; + } } - }; - } + } + }; function subclass() { }; - + /** * Helper for creation of "classes" * @method createClass * @memberOf fabric.util */ function createClass() { - var parent = null, + var parent = null, properties = slice.call(arguments, 0); - + if (typeof properties[0] === 'function') { parent = properties.shift(); } function klass() { this.initialize.apply(this, arguments); } - + klass.superclass = parent; klass.subclasses = [ ]; @@ -2351,7 +2362,7 @@ fabric.util.string = { parent.subclasses.push(klass); } for (var i = 0, length = properties.length; i < length; i++) { - addMethods(klass, properties[i]); + addMethods(klass, properties[i], parent); } if (!klass.prototype.initialize) { klass.prototype.initialize = emptyFunction; @@ -2359,7 +2370,7 @@ fabric.util.string = { klass.prototype.constructor = klass; return klass; } - + fabric.util.createClass = createClass; })(); (function (global) { @@ -7183,12 +7194,22 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { el.width = this.getWidth(); el.height = this.getHeight(); - // cache - var clone = this.__clone || (this.__clone = new fabric.Canvas(el)); + var clone = new fabric.Canvas(el); clone.clipTo = this.clipTo; - - if (callback) { - callback(clone); + if (this.backgroundImage) { + clone.setBackgroundImage(this.backgroundImage.src, function() { + clone.renderAll(); + if (callback) { + callback(clone); + } + }); + clone.backgroundImageOpacity = this.backgroundImageOpacity; + clone.backgroundImageStretch = this.backgroundImageStretch; + } + else { + if (callback) { + callback(clone); + } } } }); @@ -7756,7 +7777,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { return this; }, - + /** * Returns width of an object's bounding rectangle * @method getBoundingRectWidth @@ -7777,10 +7798,10 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { getBoundingRectHeight: function() { var yCoords = [this.oCoords.tl.y, this.oCoords.tr.y, this.oCoords.br.y, this.oCoords.bl.y]; var minY = fabric.util.array.min(yCoords); - var maxY = fabric.util.array.max(yCoords); + var maxY = fabric.util.array.max(yCoords); return Math.abs(minY - maxY); - }, - + }, + /** * Draws borders of an object's bounding box. * Requires public properties: width, height @@ -7983,7 +8004,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { G_vmlCanvasManager.initElement(el); } - el.width = this.getBoundingRectWidth(); + this.setCoords(); + el.width = this.getBoundingRectWidth(); el.height = this.getBoundingRectHeight(); fabric.util.wrapElement(el, 'div'); diff --git a/dist/all.min.js b/dist/all.min.js index 0f361cbc..686731de 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -4,4 +4,4 @@ var fabric=fabric||{version:"0.8.15"};if(typeof exports!="undefined"){exports.fa * Copyright (c) 2009 Simo Kinnunen. * Licensed under the MIT license. */ -var Cufon=(function(){var k=function(){return k.replace.apply(null,arguments)};var u=k.DOM={ready:(function(){var z=false,B={loaded:1,complete:1};var y=[],A=function(){if(z){return}z=true;for(var C;C=y.shift();C()){}};if(fabric.document.addEventListener){fabric.document.addEventListener("DOMContentLoaded",A,false);fabric.window.addEventListener("pageshow",A,false)}if(!fabric.window.opera&&fabric.document.readyState){(function(){B[fabric.document.readyState]?A():setTimeout(arguments.callee,10)})()}if(fabric.document.readyState&&fabric.document.createStyleSheet){(function(){try{fabric.document.body.doScroll("left");A()}catch(C){setTimeout(arguments.callee,1)}})()}o(fabric.window,"load",A);return function(C){if(!arguments.length){A()}else{z?C():y.push(C)}}})()};var l=k.CSS={Size:function(z,y){this.value=parseFloat(z);this.unit=String(z).match(/[a-z%]*$/)[0]||"px";this.convert=function(A){return A/y*this.value};this.convertFrom=function(A){return A/this.value*y};this.toString=function(){return this.value+this.unit}},getStyle:function(y){return new a(y.style)},quotedList:i(function(B){var A=[],z=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,y;while(y=z.exec(B)){A.push(y[3]||y[1])}return A}),ready:(function(){var A=false;var z=[],B=function(){A=true;for(var D;D=z.shift();D()){}};var y=Object.prototype.propertyIsEnumerable?f("style"):{length:0};var C=f("link");u.ready(function(){var G=0,F;for(var E=0,D=C.length;F=C[E],E=y.length+G){B()}else{setTimeout(arguments.callee,10)}});return function(D){if(A){D()}else{z.push(D)}}})(),supports:function(A,z){var y=fabric.document.createElement("span").style;if(y[A]===undefined){return false}y[A]=z;return y[A]===z},textAlign:function(B,A,y,z){if(A.get("textAlign")=="right"){if(y>0){B=" "+B}}else{if(y400}if(F==500){F=400}for(var G in D){G=parseInt(G,10);if(!C||GA){A=G}H.push(G)}if(FA){F=A}H.sort(function(J,I){return(B?(J>F&&I>F)?JI:(JI:JV){V=Q}if(P>T){T=P}if(Qz){z=e}L.push(e);e=0;continue}var B=ab.glyphs[ag[aa]]||ab.missingGlyph;if(!B){continue}e+=D=Number(B.w||ab.w)+U}L.push(e);e=Math.max(z,e);var m=[];for(var aa=L.length;aa--;){m[aa]=e-L[aa]}if(D===null){return null}V+=(H.width-D);C+=H.minX;var v,p;if(n){v=J;p=J.firstChild}else{v=fabric.document.createElement("span");v.className="cufon cufon-canvas";v.alt=E;p=fabric.document.createElement("canvas");v.appendChild(p);if(A.printable){var Y=fabric.document.createElement("span");Y.className="cufon-alt";Y.appendChild(fabric.document.createTextNode(E));v.appendChild(Y)}}var ah=v.style;var O=p.style||{};var k=o.convert(H.height-I+T);var af=Math.ceil(k);var S=af/k;p.width=Math.ceil(o.convert(e+V-C)*S);p.height=af;I+=H.minY;O.top=Math.round(o.convert(I-ab.ascent))+"px";O.left=Math.round(o.convert(C))+"px";var j=Math.ceil(o.convert(e*S));var t=j+"px";var s=o.convert(ab.height);var F=(A.lineHeight-1)*o.convert(-ab.ascent/5)*(M-1);Cufon.textOptions.width=j;Cufon.textOptions.height=(s*M)+F;Cufon.textOptions.lines=M;Cufon.textOptions.totalLineHeight=F;if(a){ah.width=t;ah.height=s+"px"}else{ah.paddingLeft=t;ah.paddingBottom=(s-1)+"px"}var ad=Cufon.textOptions.context||p.getContext("2d"),K=af/H.height;Cufon.textOptions.fontAscent=ab.ascent*K;Cufon.textOptions.boundaries=null;for(var w=Cufon.textOptions.shadowOffsets,aa=R.length;aa--;){w[aa]=[R[aa][0]*K,R[aa][1]*K]}ad.save();ad.scale(K,K);ad.translate(-C-((1/K*p.width)/2)+(Cufon.fonts[ab.family].offsetLeft||0),-I-(Cufon.textOptions.height/K)/2);ad.lineWidth=ab.face["underline-thickness"];ad.save();function q(l,i){ad.strokeStyle=i;ad.beginPath();ad.moveTo(0,l);ad.lineTo(e,l);ad.stroke()}var r=Cufon.getTextDecoration(A),u=A.fontStyle==="italic";function ae(){ad.save();ad.fillStyle=A.backgroundColor;var aj=0,an=0,y=[{left:0}];if(A.textAlign==="right"){ad.translate(m[an],0);y[0].left=m[an]*K}else{if(A.textAlign==="center"){ad.translate(m[an]/2,0);y[0].left=m[an]/2*K}}for(var al=0,ak=ag.length;al.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}');function c(e,f){return a(e,/(?:em|ex|%)$/i.test(f)?"1em":f)}function a(h,i){if(/px$/i.test(i)){return parseFloat(i)}var g=h.style.left,f=h.runtimeStyle.left;h.runtimeStyle.left=h.currentStyle.left;h.style.left=i;var e=h.style.pixelLeft;h.style.left=g;h.runtimeStyle.left=f;return e}return function(T,z,O,w,D,U,M){var h=(z===null);if(h){z=D.alt}var B=T.viewBox;var j=O.computedFontSize||(O.computedFontSize=new Cufon.CSS.Size(c(U,O.get("fontSize"))+"px",T.baseSize));var L=O.computedLSpacing;if(L==undefined){L=O.get("letterSpacing");O.computedLSpacing=L=(L=="normal")?0:~~j.convertFrom(a(U,L))}var t,m;if(h){t=D;m=D.firstChild}else{t=fabric.document.createElement("span");t.className="cufon cufon-vml";t.alt=z;m=fabric.document.createElement("span");m.className="cufon-vml-canvas";t.appendChild(m);if(w.printable){var R=fabric.document.createElement("span");R.className="cufon-alt";R.appendChild(fabric.document.createTextNode(z));t.appendChild(R)}if(!M){t.appendChild(fabric.document.createElement("cvml:shape"))}}var Z=t.style;var G=m.style;var f=j.convert(B.height),W=Math.ceil(f);var K=W/f;var J=B.minX,I=B.minY;G.height=W;G.top=Math.round(j.convert(I-T.ascent));G.left=Math.round(j.convert(J));Z.height=j.convert(T.height)+"px";var p=Cufon.getTextDecoration(w);var y=O.get("color");var X=Cufon.CSS.textTransform(z,O).split("");var e=0,H=0,q=null;var x,r,A=w.textShadow;for(var S=0,Q=0,P=X.length;St?m:(l-k);p(q(currentTime,j,byValue,m));if(l>t||n()){u.onComplete&&u.onComplete();return}h(o)})()}var h=(function(){return fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(k,j){fabric.window.setTimeout(k,1000/60)}})();function a(k,m,l){if(k){var j=new Image();j.onload=function(){m&&m.call(l,j);j=j.onload=null};j.src=k}else{m&&m.call(l,k)}}fabric.util.removeFromArray=g;fabric.util.degreesToRadians=b;fabric.util.toFixed=d;fabric.util.getRandomInt=e;fabric.util.falseFunction=i;fabric.util.animate=c;fabric.util.requestAnimFrame=h;fabric.util.loadImage=a})();(function(){var d=Array.prototype.slice;if(!Array.prototype.indexOf){Array.prototype.indexOf=function(g){if(this===void 0||this===null){throw new TypeError()}var h=Object(this),e=h.length>>>0;if(e===0){return -1}var i=0;if(arguments.length>0){i=Number(arguments[1]);if(i!==i){i=0}else{if(i!==0&&i!==(1/0)&&i!==-(1/0)){i=(i>0||-1)*Math.floor(Math.abs(i))}}}if(i>=e){return -1}var f=i>=0?i:Math.max(e-Math.abs(i),0);for(;f>>0;f>>0;g>>0;f>>0;f>>0;g>>0,f=0,h;if(arguments.length>1){h=arguments[1]}else{do{if(f in this){h=this[f++];break}if(++f>=e){throw new TypeError()}}while(true)}for(;f=e){e=h[f][g]}}}else{while(f--){if(h[f]>=e){e=h[f]}}}return e}function c(h,g){if(!h||h.length===0){return undefined}var f=h.length-1,e=g?h[f][g]:h[f];if(g){while(f--){if(h[f][g]",">")}fabric.util.string={camelize:b,capitalize:c,escapeXml:a}}());(function(){var c=Array.prototype.slice,a=Function.prototype.apply,b=function(){};if(!Function.prototype.bind){Function.prototype.bind=function(d){var g=this,e=c.call(arguments,1),f;if(e.length){f=function(){return a.call(g,this instanceof b?this:d,e.concat(c.call(arguments)))}}else{f=function(){return a.call(g,this instanceof b?this:d,arguments)}}b.prototype=this.prototype;f.prototype=new b;return f}}})();(function(){var f=Array.prototype.slice,e=function(){};var c=(function(){for(var g in {toString:1}){if(g==="toString"){return false}}return true})();var b;if(c){b=function(g,i){if(i.toString!==Object.prototype.toString){g.prototype.toString=i.toString}if(i.valueOf!==Object.prototype.valueOf){g.prototype.valueOf=i.valueOf}for(var h in i){g.prototype[h]=i[h]}}}else{b=function(g,i){for(var h in i){g.prototype[h]=i[h]}}}function a(){}function d(){var k=null,j=f.call(arguments,0);if(typeof j[0]==="function"){k=j.shift()}function g(){this.initialize.apply(this,arguments)}g.superclass=k;g.subclasses=[];if(k){a.prototype=k.prototype;g.prototype=new a;k.subclasses.push(g)}for(var h=0,l=j.length;h-1?c(j,l.match(/opacity:\s*(\d?\.?\d*)/)[1]):j}for(var m in l){if(m==="opacity"){c(j,l[m])}else{var k=(m==="float"||m==="cssFloat")?(typeof n.styleFloat==="undefined"?"cssFloat":"styleFloat"):m;n[k]=l[m]}}return j}var h=fabric.document.createElement("div"),g=typeof h.style.opacity==="string",b=typeof h.style.filter==="string",a=fabric.document.defaultView,f=a&&typeof a.getComputedStyle!=="undefined",d=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,c=function(i){return i};if(g){c=function(i,j){i.style.opacity=j;return i}}else{if(b){c=function(i,j){var k=i.style;if(i.currentStyle&&!i.currentStyle.hasLayout){k.zoom=1}if(d.test(k.filter)){j=j>=0.9999?"":("alpha(opacity="+(j*100)+")");k.filter=k.filter.replace(d,j)}else{k.filter+=" alpha(opacity="+(j*100)+")"}return i}}}fabric.util.setStyle=e})();(function(){var h=Array.prototype.slice;function g(j){return typeof j==="string"?fabric.document.getElementById(j):j}function b(j){return h.call(j,0)}try{var i=b(fabric.document.childNodes) instanceof Array}catch(a){}if(!i){b=function(k){var j=new Array(k.length),l=k.length;while(l--){j[l]=k[l]}return j}}function c(k,j){var l=fabric.document.createElement(k);for(var m in j){if(m==="class"){l.className=j[m]}else{if(m==="for"){l.htmlFor=j[m]}else{l.setAttribute(m,j[m])}}}return l}function f(j,k){if((" "+j.className+" ").indexOf(" "+k+" ")===-1){j.className+=(j.className?" ":"")+k}}function e(k,l,j){if(typeof l==="string"){l=c(l,j)}if(k.parentNode){k.parentNode.replaceChild(l,k)}l.appendChild(k);return l}function d(k){var j=0,l=0;do{j+=k.offsetTop||0;l+=k.offsetLeft||0;k=k.offsetParent}while(k);return({left:l,top:j})}(function(){var k=fabric.document.documentElement.style;var l="userSelect" in k?"userSelect":"MozUserSelect" in k?"MozUserSelect":"WebkitUserSelect" in k?"WebkitUserSelect":"KhtmlUserSelect" in k?"KhtmlUserSelect":"";function m(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=fabric.util.falseFunction}if(l){n.style[l]="none"}else{if(typeof n.unselectable=="string"){n.unselectable="on"}}return n}function j(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=null}if(l){n.style[l]=""}else{if(typeof n.unselectable=="string"){n.unselectable=""}}return n}fabric.util.makeElementUnselectable=m;fabric.util.makeElementSelectable=j})();(function(){function j(k,o){var m=fabric.document.getElementsByTagName("head")[0],l=fabric.document.createElement("script"),n=true;l.type="text/javascript";l.setAttribute("runat","server");l.onload=l.onreadystatechange=function(p){if(n){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete"){return}n=false;o(p||fabric.window.event);l=l.onload=l.onreadystatechange=null}};l.src=k;m.appendChild(l)}fabric.util.getScript=j})();fabric.util.getById=g;fabric.util.toArray=b;fabric.util.makeElement=c;fabric.util.addClass=f;fabric.util.wrapElement=e;fabric.util.getElementOffset=d})();(function(){function d(e,f){return e+(/\?/.test(e)?"&":"?")+f}var c=(function(){var h=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest()}];for(var e=h.length;e--;){try{var g=h[e]();if(g){return h[e]}}catch(f){}}})();function a(){}function b(g,f){f||(f={});var j=f.method?f.method.toUpperCase():"GET",i=f.onComplete||function(){},h=c(),e;h.onreadystatechange=function(){if(h.readyState===4){i(h);h.onreadystatechange=a}};if(j==="GET"){e=null;if(typeof f.parameters=="string"){g=d(g,f.parameters)}}h.open(j,g,true);if(j==="POST"||j==="PUT"){h.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}h.send(e);return h}fabric.util.request=b})();(function(){fabric.util.ease={};function d(F,E,H,G){return H*(F/=G)*F+E}function l(F,E,H,G){return -H*(F/=G)*(F-2)+E}function r(F,E,H,G){if((F/=G/2)<1){return H/2*F*F+E}return -H/2*((--F)*(F-2)-1)+E}function B(F,E,H,G){return H*(F/=G)*F*F+E}function q(F,E,H,G){return H*((F=F/G-1)*F*F+1)+E}function u(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F+E}return H/2*((F-=2)*F*F+2)+E}function t(F,E,H,G){return H*(F/=G)*F*F*F+E}function g(F,E,H,G){return -H*((F=F/G-1)*F*F*F-1)+E}function k(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F+E}return -H/2*((F-=2)*F*F*F-2)+E}function y(F,E,H,G){return H*(F/=G)*F*F*F*F+E}function j(F,E,H,G){return H*((F=F/G-1)*F*F*F*F+1)+E}function n(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F*F+E}return H/2*((F-=2)*F*F*F*F+2)+E}function f(F,E,H,G){return -H*Math.cos(F/G*(Math.PI/2))+H+E}function o(F,E,H,G){return H*Math.sin(F/G*(Math.PI/2))+E}function v(F,E,H,G){return -H/2*(Math.cos(Math.PI*F/G)-1)+E}function D(F,E,H,G){return(F==0)?E:H*Math.pow(2,10*(F/G-1))+E}function c(F,E,H,G){return(F==G)?E+H:H*(-Math.pow(2,-10*F/G)+1)+E}function i(F,E,H,G){if(F==0){return E}if(F==G){return E+H}if((F/=G/2)<1){return H/2*Math.pow(2,10*(F-1))+E}return H/2*(-Math.pow(2,-10*--F)+2)+E}function h(F,E,H,G){return -H*(Math.sqrt(1-(F/=G)*F)-1)+E}function p(F,E,H,G){return H*Math.sqrt(1-(F=F/G-1)*F)+E}function x(F,E,H,G){if((F/=G/2)<1){return -H/2*(Math.sqrt(1-F*F)-1)+E}return H/2*(Math.sqrt(1-(F-=2)*F)+1)+E}function s(G,E,K,J){var H=1.70158;var I=0;var F=K;if(G==0){return E}if((G/=J)==1){return E+K}if(!I){I=J*0.3}if(F-1;v=v.split(/\s+/);var t=[];if(x){for(var u=0,s=v.length;u/i,""))}if(!v.documentElement){return}g.parseSVGDocument(v.documentElement,function(y,x){j.set(s,{objects:g.util.array.invoke(y,"toObject"),options:x});u(y,x)})}}function a(u){var t=u.objects,s=u.options;t=t.map(function(v){return g[e(v.type)].fromObject(v)});return({objects:t,options:s})}function m(s,v){s=s.trim();var t;if(typeof DOMParser!=="undefined"){var u=new DOMParser();if(u&&u.parseFromString){t=u.parseFromString(s,"text/xml")}}else{if(g.window.ActiveXObject){var t=new ActiveXObject("Microsoft.XMLDOM");t.async="false";t.loadXML(s.replace(//i,""))}}g.parseSVGDocument(t.documentElement,function(x,w){v(x,w)})}function l(v){var t="";for(var u=0,s=v.length;u",'",""].join("")}return t}o(g,{parseAttributes:d,parseElements:f,parseStyleAttribute:h,parsePointsAttribute:r,getCSSRules:c,loadSVGFromURL:b,loadSVGFromString:m,createSVGFontFacesMarkup:l})})(typeof exports!="undefined"?exports:this);(function(){function c(h){var g=h.getAttribute("style");if(g){var k=g.split(/\s*;\s*/);if(k[k.length-1]===""){k.pop()}for(var f=k.length;f--;){var e=k[f].split(/\s*:\s*/),d=e[0].trim(),j=e[1].trim();if(d==="stop-color"){return j}}}}fabric.Gradient={create:function(l,m){m||(m={});var f=m.x1||0,k=m.y1||0,e=m.x2||l.canvas.width,i=m.y2||0,g=m.colorStops;var j=l.createLinearGradient(f,k,e,i);for(var h in g){var d=g[h];j.addColorStop(parseFloat(h),d)}return j},fromElement:function(d,m,l){var j=d.getElementsByTagName("stop"),d,f,e={},g,k={x1:d.getAttribute("x1")||0,y1:d.getAttribute("y1")||0,x2:d.getAttribute("x2")||"100%",y2:d.getAttribute("y2")||0};for(var h=j.length;h--;){d=j[h];f=d.getAttribute("offset");f=parseFloat(f)/(/%$/.test(f)?100:1);e[f]=c(d)||d.getAttribute("stop-color")}a(l,k);return fabric.Gradient.create(m,{x1:k.x1,y1:k.y1,x2:k.x2,y2:k.y2,colorStops:e})},forObject:function(g,d,e){e||(e={});a(g,e);var f=fabric.Gradient.create(d,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,colorStops:e.colorStops});return f}};function a(f,e){for(var g in e){if(typeof e[g]==="string"&&/^\d+%$/.test(e[g])){var d=parseFloat(e[g],10);if(g==="x1"||g==="x2"){e[g]=f.width*d/100}else{if(g==="y1"||g==="y2"){e[g]=f.height*d/100}}}if(g==="x1"||g==="x2"){e[g]-=f.width/2}else{if(g==="y1"||g==="y2"){e[g]-=f.height/2}}}}function b(j){var f=j.getElementsByTagName("linearGradient"),d=j.getElementsByTagName("radialGradient"),g,h={};for(var e=f.length;e--;){g=f[e];h[g.id]=g}for(var e=d.length;e--;){g=d[e];h[g.id]=g}return h}fabric.getGradientDefs=b})();(function(b){var c=b.fabric||(b.fabric={});if(c.Point){c.warn("fabric.Point is already defined");return}c.Point=a;function a(d,e){if(arguments.length>0){this.init(d,e)}}a.prototype={constructor:a,init:function(d,e){this.x=d;this.y=e},add:function(d){return new a(this.x+d.x,this.y+d.y)},addEquals:function(d){this.x+=d.x;this.y+=d.y;return this},scalarAdd:function(d){return new a(this.x+d,this.y+d)},scalarAddEquals:function(d){this.x+=d;this.y+=d;return this},subtract:function(d){return new a(this.x-d.x,this.y-d.y)},subtractEquals:function(d){this.x-=d.x;this.y-=d.y;return this},scalarSubtract:function(d){return new a(this.x-d,this.y-d)},scalarSubtractEquals:function(d){this.x-=d;this.y-=d;return this},multiply:function(d){return new a(this.x*d,this.y*d)},multiplyEquals:function(d){this.x*=d;this.y*=d;return this},divide:function(d){return new a(this.x/d,this.y/d)},divideEquals:function(d){this.x/=d;this.y/=d;return this},eq:function(d){return(this.x==d.x&&this.y==d.y)},lt:function(d){return(this.xd.x&&this.y>d.y)},gte:function(d){return(this.x>=d.x&&this.y>=d.y)},lerp:function(e,d){return new a(this.x+(e.x-this.x)*d,this.y+(e.y-this.y)*d)},distanceFrom:function(f){var e=this.x-f.x,d=this.y-f.y;return Math.sqrt(e*e+d*d)},min:function(d){return new a(Math.min(this.x,d.x),Math.min(this.y,d.y))},max:function(d){return new a(Math.max(this.x,d.x),Math.max(this.y,d.y))},toString:function(){return this.x+","+this.y},setXY:function(d,e){this.x=d;this.y=e},setFromPoint:function(d){this.x=d.x;this.y=d.y},swap:function(e){var d=this.x,f=this.y;this.x=e.x;this.y=e.y;e.x=d;e.y=f}}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Intersection){b.warn("fabric.Intersection is already defined");return}function c(d){if(arguments.length>0){this.init(d)}}b.Intersection=c;b.Intersection.prototype={init:function(d){this.status=d;this.points=[]},appendPoint:function(d){this.points.push(d)},appendPoints:function(d){this.points=this.points.concat(d)}};b.Intersection.intersectLineLine=function(h,f,l,k){var m,i=(k.x-l.x)*(h.y-l.y)-(k.y-l.y)*(h.x-l.x),j=(f.x-h.x)*(h.y-l.y)-(f.y-h.y)*(h.x-l.x),g=(k.y-l.y)*(f.x-h.x)-(k.x-l.x)*(f.y-h.y);if(g!=0){var e=i/g,d=j/g;if(0<=e&&e<=1&&0<=d&&d<=1){m=new c("Intersection");m.points.push(new b.Point(h.x+e*(f.x-h.x),h.y+e*(f.y-h.y)))}else{m=new c("No Intersection")}}else{if(i==0||j==0){m=new c("Coincident")}else{m=new c("Parallel")}}return m};b.Intersection.intersectLinePolygon=function(e,d,l){var m=new c("No Intersection"),f=l.length;for(var h=0;h0){m.status="Intersection"}return m};b.Intersection.intersectPolygonPolygon=function(j,h){var f=new c("No Intersection"),l=j.length;for(var k=0;k0){f.status="Intersection"}return f};b.Intersection.intersectPolygonRectangle=function(n,e,d){var g=e.min(d),m=e.max(d),f=new b.Point(m.x,g.y),l=new b.Point(g.x,m.y),k=c.intersectLinePolygon(g,f,n),j=c.intersectLinePolygon(f,m,n),i=c.intersectLinePolygon(m,l,n),h=c.intersectLinePolygon(l,g,n),o=new c("No Intersection");o.appendPoints(k.points);o.appendPoints(j.points);o.appendPoints(i.points);o.appendPoints(h.points);if(o.points.length>0){o.status="Intersection"}return o}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Color){b.warn("fabric.Color is already defined.");return}function c(d){if(!d){this.setSource([0,0,0,1])}else{this._tryParsingColor(d)}}b.Color=c;b.Color.prototype={_tryParsingColor:function(d){var e=c.sourceFromHex(d);if(!e){e=c.sourceFromRgb(d)}if(e){this.setSource(e)}},getSource:function(){return this._source},setSource:function(d){this._source=d},toRgb:function(){var d=this.getSource();return"rgb("+d[0]+","+d[1]+","+d[2]+")"},toRgba:function(){var d=this.getSource();return"rgba("+d[0]+","+d[1]+","+d[2]+","+d[3]+")"},toHex:function(){var h=this.getSource();var f=h[0].toString(16);f=(f.length==1)?("0"+f):f;var e=h[1].toString(16);e=(e.length==1)?("0"+e):e;var d=h[2].toString(16);d=(d.length==1)?("0"+d):d;return f.toUpperCase()+e.toUpperCase()+d.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var d=this.getSource();d[3]=e;this.setSource(d);return this},toGrayscale:function(){var f=this.getSource(),e=parseInt((f[0]*0.3+f[1]*0.59+f[2]*0.11).toFixed(0),10),d=f[3];this.setSource([e,e,e,d]);return this},toBlackWhite:function(d){var g=this.getSource(),f=(g[0]*0.3+g[1]*0.59+g[2]*0.11).toFixed(0),e=g[3],d=d||127;f=(Number(f)','',"',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())];if(this.backgroundImage){h.push('')}for(var j=0,k=this.getObjects(),g=k.length;j");return h.join("")},isEmpty:function(){return this._objects.length===0},remove:function(g){e(this._objects,g);if(this.getActiveObject()===g){this.fire("before:selection:cleared",{target:g});this.discardActiveObject();this.fire("selection:cleared")}this.renderAll();return g},sendToBack:function(g){e(this._objects,g);this._objects.unshift(g);return this.renderAll()},bringToFront:function(g){e(this._objects,g);this._objects.push(g);return this.renderAll()},sendBackwards:function(j){var h=this._objects.indexOf(j),g=h;if(h!==0){for(var k=h-1;k>=0;--k){if(j.intersectsWithObject(this._objects[k])||j.isContainedWithinObject(this._objects[k])){g=k;break}}e(this._objects,j);this._objects.splice(g,0,j)}return this.renderAll()},bringForward:function(k){var n=this.getObjects(),h=n.indexOf(k),g=h;if(h!==n.length-1){for(var m=h+1,j=this._objects.length;m"};f(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(l){var k=l.getContext("2d"),g=k.getImageData(0,0,l.width,l.height),p=g.data,m=g.width,r=g.height,q,h,o,n;for(o=0;o0)?0:-v),r.ey-((u>0)?0:-u),t,s);this.contextTop.lineWidth=this.selectionLineWidth;this.contextTop.strokeStyle=this.selectionBorderColor;this.contextTop.strokeRect(r.ex+a-((v>0)?0:t),r.ey+a-((u>0)?0:s),t,s)},_findSelectedObjects:function(x){var y,t,D=[],s=this._groupSelector.ex,C=this._groupSelector.ey,r=s+this._groupSelector.left,A=C+this._groupSelector.top,z,w=new fabric.Point(f(s,r),f(C,A)),B=new fabric.Point(l(s,r),l(C,A));for(var u=0,v=this._objects.length;u1){var D=new fabric.Group(D);this.setActiveGroup(D);D.saveCoords();this.fire("selection:created",{target:D})}}this.renderAll()},findTarget:function(v,s){var u,w=this.getPointer(v);var t=this.getActiveGroup();if(t&&!s&&this.containsPoint(v,t)){u=t;return u}for(var r=this._objects.length;r--;){if(this._objects[r]&&this.containsPoint(v,this._objects[r])){u=this._objects[r];this.relatedTarget=u;break}}if(u&&u.selectable){return u}},getPointer:function(r){var s=q(r);return{x:s.x-this._offset.left,y:s.y-this._offset.top}},_createUpperCanvas:function(){this.upperCanvasEl=this._createCanvasElement();this.upperCanvasEl.className="upper-canvas";this.wrapperEl.appendChild(this.upperCanvasEl);this._applyCanvasStyle(this.upperCanvasEl);this.contextTop=this.upperCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=fabric.util.wrapElement(this.lowerCanvasEl,"div",{"class":this.CONTAINER_CLASS});fabric.util.setStyle(this.wrapperEl,{width:this.getWidth()+"px",height:this.getHeight()+"px",position:"relative"});fabric.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(s){var t=this.getWidth()||s.width,r=this.getHeight()||s.height;fabric.util.setStyle(s,{position:"absolute",width:t+"px",height:r+"px",left:0,top:0});s.width=t;s.height=r;fabric.util.makeElementUnselectable(s)},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},setActiveObject:function(r,s){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=r;r.setActive(true);this.renderAll();this.fire("object:selected",{target:r,e:s});return this},getActiveObject:function(){return this._activeObject},discardActiveObject:function(){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=null;return this},setActiveGroup:function(r){this._activeGroup=r;return this},getActiveGroup:function(){return this._activeGroup},discardActiveGroup:function(){var r=this.getActiveGroup();if(r){r.destroy()}return this.setActiveGroup(null)},deactivateAll:function(){var s=this.getObjects(),t=0,r=s.length;for(;t1){var o=new fabric.PathGroup(q,n)}else{var o=q[0]}o.setSourcePath(m);if(!(o instanceof fabric.PathGroup)){fabric.util.object.extend(o,n);if(typeof n.angle!=="undefined"){o.setAngle(n.angle)}}g(o,l)})}}}},this)}catch(c){fabric.log(c.message)}},loadFromJSON:function(a,d){if(!a){return}var b=JSON.parse(a);if(!b||(b&&!b.objects)){return}this.clear();var c=this;this._enlivenObjects(b.objects,function(){c.backgroundColor=b.background;if(b.backgroundImage){c.setBackgroundImage(b.backgroundImage,c.renderAll.bind(c));c.backgroundImageOpacity=b.backgroundImageOpacity;c.backgroundImageStretch=b.backgroundImageStretch}if(d){d()}});return this},_enlivenObjects:function(b,e){var c=0,a=b.filter(function(f){return f.type==="image"}).length;var d=this;b.forEach(function(h,g){if(!h.type){return}switch(h.type){case"image":case"font":fabric[fabric.util.string.capitalize(h.type)].fromObject(h,function(i){d.insertAt(i,g,true);if(++c===a){if(e){e()}}});break;default:var f=fabric[fabric.util.string.camelize(fabric.util.string.capitalize(h.type))];if(f&&f.fromObject){d.insertAt(f.fromObject(h),g,true)}break}});if(a===0&&e){e()}},_toDataURL:function(a,b){this.clone(function(c){b(c.toDataURL(a))})},_toDataURLWithMultiplier:function(a,c,b){this.clone(function(d){b(d.toDataURLWithMultiplier(a,c))})},clone:function(b){var a=JSON.stringify(this);this.cloneWithoutData(function(c){c.loadFromJSON(a,function(){if(b){b(c)}})})},cloneWithoutData:function(c){var a=fabric.document.createElement("canvas");a.width=this.getWidth();a.height=this.getHeight();var b=this.__clone||(this.__clone=new fabric.Canvas(a));b.clipTo=this.clipTo;if(c){c(b)}}});(function(a){var d=a.fabric||(a.fabric={}),l=d.util.object.extend,m=d.util.object.clone,c=d.util.toFixed,k=d.util.string.capitalize,p=d.util.getPointer,b=d.util.degreesToRadians,o=Array.prototype.slice;if(d.Object){return}d.Object=d.util.createClass({type:"object",includeDefaultValues:true,NUM_FRACTION_DIGITS:2,MIN_SCALE_LIMIT:0.1,stateProperties:("top left width height scaleX scaleY flipX flipY theta angle opacity cornersize fill overlayFill stroke strokeWidth fillRule borderScaleFactor transformMatrix selectable").split(" "),top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:false,flipY:false,theta:0,opacity:1,angle:0,cornersize:12,padding:0,borderColor:"rgba(102,153,255,0.75)",cornerColor:"rgba(102,153,255,0.5)",fill:"rgb(0,0,0)",fillRule:"source-over",overlayFill:null,stroke:null,strokeWidth:1,borderOpacityWhenMoving:0.4,borderScaleFactor:1,transformMatrix:null,selectable:true,hasControls:true,hasBorders:true,hasRotatingPoint:false,callSuper:function(i){var q=this.constructor.superclass.prototype[i];return(arguments.length>1)?q.apply(this,o.call(arguments,1)):q.call(this)},initialize:function(i){i&&this.setOptions(i)},setOptions:function(q){var r=this.stateProperties.length,s;while(r--){s=this.stateProperties[r];if(s in q){this.set(s,q[s])}}},transform:function(i){i.globalAlpha=this.opacity;i.translate(this.left,this.top);i.rotate(this.theta);i.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toObject:function(){var i={type:this.type,left:c(this.left,this.NUM_FRACTION_DIGITS),top:c(this.top,this.NUM_FRACTION_DIGITS),width:c(this.width,this.NUM_FRACTION_DIGITS),height:c(this.height,this.NUM_FRACTION_DIGITS),fill:this.fill,overlayFill:this.overlayFill,stroke:this.stroke,strokeWidth:this.strokeWidth,scaleX:c(this.scaleX,this.NUM_FRACTION_DIGITS),scaleY:c(this.scaleY,this.NUM_FRACTION_DIGITS),angle:c(this.getAngle(),this.NUM_FRACTION_DIGITS),flipX:this.flipX,flipY:this.flipY,opacity:c(this.opacity,this.NUM_FRACTION_DIGITS),selectable:this.selectable,hasControls:this.hasControls,hasBorders:this.hasBorders,hasRotatingPoint:this.hasRotatingPoint};if(!this.includeDefaultValues){i=this._removeDefaultValues(i)}return i},toDatalessObject:function(){return this.toObject()},getSvgStyles:function(){return["stroke: ",(this.stroke?this.stroke:"none"),"; ","stroke-width: ",(this.strokeWidth?this.strokeWidth:"0"),"; ","fill: ",(this.fill?this.fill:"none"),"; ","opacity: ",(this.opacity?this.opacity:"1"),";"].join("")},getSvgTransform:function(){var i=this.getAngle();return["translate(",c(this.left,2)," ",c(this.top,2),")",i!==0?(" rotate("+c(i,2)+")"):"",(this.scaleX===1&&this.scaleY===1)?"":(" scale("+c(this.scaleX,2)+" "+c(this.scaleY,2)+")")].join("")},_removeDefaultValues:function(q){var i=d.Object.prototype.options;if(i){this.stateProperties.forEach(function(r){if(q[r]===i[r]){delete q[r]}})}return q},isActive:function(){return !!this.active},setActive:function(i){this.active=!!i;return this},toString:function(){return"#"},set:function(q,i){var s=(q==="scaleX"||q==="scaleY")&&ir.x&&s.xr.y&&u.y=v)&&(s.d.y>=v)){continue}if((s.o.x==s.d.x)&&(s.o.x>=w)){x=s.o.x;u=v}else{z=0;y=(s.d.y-s.o.y)/(s.d.x-s.o.x);r=v-z*w;q=s.o.y-y*s.o.x;x=-(r-q)/(z-y);u=r+z*x}if(x>=w){t+=1}if(t==2){break}}return t},_getImageLines:function(r,q){return{topline:{o:r.tl,d:r.tr},rightline:{o:r.tr,d:r.br},bottomline:{o:r.br,d:r.bl},leftline:{o:r.bl,d:r.tl}}},_setCornerCoords:function(){var w=this.oCoords,r=b(45-this.getAngle()),i=Math.sqrt(2*Math.pow(this.cornersize,2))/2,x=i*Math.cos(r),q=i*Math.sin(r),v=Math.sin(this.theta),u=Math.cos(this.theta);w.tl.corner={tl:{x:w.tl.x-q,y:w.tl.y-x},tr:{x:w.tl.x+x,y:w.tl.y-q},bl:{x:w.tl.x-x,y:w.tl.y+q},br:{x:w.tl.x+q,y:w.tl.y+x}};w.tr.corner={tl:{x:w.tr.x-q,y:w.tr.y-x},tr:{x:w.tr.x+x,y:w.tr.y-q},br:{x:w.tr.x+q,y:w.tr.y+x},bl:{x:w.tr.x-x,y:w.tr.y+q}};w.bl.corner={tl:{x:w.bl.x-q,y:w.bl.y-x},bl:{x:w.bl.x-x,y:w.bl.y+q},br:{x:w.bl.x+q,y:w.bl.y+x},tr:{x:w.bl.x+x,y:w.bl.y-q}};w.br.corner={tr:{x:w.br.x+x,y:w.br.y-q},bl:{x:w.br.x-x,y:w.br.y+q},br:{x:w.br.x+q,y:w.br.y+x},tl:{x:w.br.x-q,y:w.br.y-x}};w.ml.corner={tl:{x:w.ml.x-q,y:w.ml.y-x},tr:{x:w.ml.x+x,y:w.ml.y-q},bl:{x:w.ml.x-x,y:w.ml.y+q},br:{x:w.ml.x+q,y:w.ml.y+x}};w.mt.corner={tl:{x:w.mt.x-q,y:w.mt.y-x},tr:{x:w.mt.x+x,y:w.mt.y-q},bl:{x:w.mt.x-x,y:w.mt.y+q},br:{x:w.mt.x+q,y:w.mt.y+x}};w.mr.corner={tl:{x:w.mr.x-q,y:w.mr.y-x},tr:{x:w.mr.x+x,y:w.mr.y-q},bl:{x:w.mr.x-x,y:w.mr.y+q},br:{x:w.mr.x+q,y:w.mr.y+x}};w.mb.corner={tl:{x:w.mb.x-q,y:w.mb.y-x},tr:{x:w.mb.x+x,y:w.mb.y-q},bl:{x:w.mb.x-x,y:w.mb.y+q},br:{x:w.mb.x+q,y:w.mb.y+x}};var t=40;w.mtr.corner={tl:{x:w.mtr.x-q+(v*t),y:w.mtr.y-x-(u*t)},tr:{x:w.mtr.x+x+(v*t),y:w.mtr.y-q-(u*t)},bl:{x:w.mtr.x-x+(v*t),y:w.mtr.y+q-(u*t)},br:{x:w.mtr.x+q+(v*t),y:w.mtr.y+x-(u*t)}};var s=(-t-this.currentHeight);w.mbr.corner={tl:{x:w.mbr.x-q+(v*s),y:w.mbr.y-x-(u*s)},tr:{x:w.mbr.x+x+(v*s),y:w.mbr.y-q-(u*s)},bl:{x:w.mbr.x-x+(v*s),y:w.mbr.y+q-(u*s)},br:{x:w.mbr.x+q+(v*s),y:w.mbr.y+x-(u*s)}}},toGrayscale:function(){var i=this.get("fill");if(i){this.set("overlayFill",new d.Color(i).toGrayscale().toRgb())}return this},complexity:function(){return 0},toJSON:function(){return this.toObject()},setGradientFill:function(i,q){this.set("fill",d.Gradient.forObject(this,i,q))},animate:function(q,s,i){var r=this;if(!("from" in i)){i.from=this.get(q)}if(/[+-]/.test(s.charAt(0))){s=this.get(q)+parseFloat(s)}d.util.animate({startValue:i.from,endValue:s,byValue:i.by,easing:i.easing,duration:i.duration,onChange:function(t){r.set(q,t);i.onChange&&i.onChange()},onComplete:function(){r.setCoords();i.onComplete&&i.onComplete()}})}});d.Object.prototype.rotate=d.Object.prototype.setAngle;var j=d.Object.prototype;for(var g=j.stateProperties.length;g--;){var h=j.stateProperties[g],e=h.charAt(0).toUpperCase()+h.slice(1),f="set"+e,n="get"+e;if(!j[n]){j[n]=(function(i){return new Function('return this.get("'+i+'")')})(h)}if(!j[f]){j[f]=(function(i){return new Function("value",'return this.set("'+i+'", value)')})(h)}}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),e=c.util.object.extend,d=c.Object.prototype.set,a={x1:1,x2:1,y1:1,y2:1};if(c.Line){c.warn("fabric.Line is already defined");return}c.Line=c.util.createClass(c.Object,{type:"line",initialize:function(g,f){if(!g){g=[0,0,0,0]}this.callSuper("initialize",f);this.set("x1",g[0]);this.set("y1",g[1]);this.set("x2",g[2]);this.set("y2",g[3]);this._setWidthHeight()},_setWidthHeight:function(){this.set("width",(this.x2-this.x1)||1);this.set("height",(this.y2-this.y1)||1);this.set("left",this.x1+this.width/2);this.set("top",this.y1+this.height/2)},set:function(f,g){d.call(this,f,g);if(f in a){this._setWidthHeight()}return this},_render:function(f){f.beginPath();f.moveTo(this.width===1?0:(-this.width/2),this.height===1?0:(-this.height/2));f.lineTo(this.width===1?0:(this.width/2),this.height===1?0:(this.height/2));f.lineWidth=this.strokeWidth;var g=f.strokeStyle;f.strokeStyle=f.fillStyle;f.stroke();f.strokeStyle=g},complexity:function(){return 1},toObject:function(){return e(this.callSuper("toObject"),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}});c.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" ");c.Line.fromElement=function(g,f){var i=c.parseAttributes(g,c.Line.ATTRIBUTE_NAMES);var h=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new c.Line(h,e(i,f))};c.Line.fromObject=function(f){var g=[f.x1,f.y1,f.x2,f.y2];return new c.Line(g,f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),d=Math.PI*2,e=b.util.object.extend;if(b.Circle){b.warn("fabric.Circle is already defined.");return}b.Circle=b.util.createClass(b.Object,{type:"circle",initialize:function(f){f=f||{};this.set("radius",f.radius||0);this.callSuper("initialize",f);var g=this.get("radius")*2;this.set("width",g).set("height",g)},toObject:function(){return e(this.callSuper("toObject"),{radius:this.get("radius")})},toSVG:function(){return('')},_render:function(f,g){f.beginPath();f.globalAlpha*=this.opacity;f.arc(g?this.left:0,g?this.top:0,this.radius,0,d,false);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(f){this.radius=f;this.set("width",f*2).set("height",f*2)},complexity:function(){return 1}});b.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Circle.fromElement=function(g,f){f||(f={});var h=b.parseAttributes(g,b.Circle.ATTRIBUTE_NAMES);if(!c(h)){throw Error("value of `r` attribute is required and can not be negative")}if("left" in h){h.left-=(f.width/2)||0}if("top" in h){h.top-=(f.height/2)||0}return new b.Circle(e(h,f))};function c(f){return(("radius" in f)&&(f.radius>0))}b.Circle.fromObject=function(f){return new b.Circle(f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Triangle){b.warn("fabric.Triangle is already defined");return}b.Triangle=b.util.createClass(b.Object,{type:"triangle",initialize:function(c){c=c||{};this.callSuper("initialize",c);this.set("width",c.width||100).set("height",c.height||100)},_render:function(c){var d=this.width/2,e=this.height/2;c.beginPath();c.moveTo(-d,e);c.lineTo(0,-e);c.lineTo(d,e);c.closePath();if(this.fill){c.fill()}if(this.stroke){c.stroke()}},complexity:function(){return 1},toSVG:function(){var c=this.width/2,d=this.height/2;var e=[-c+" "+d,"0 "+-d,c+" "+d].join(",");return''}});b.Triangle.fromObject=function(c){return new b.Triangle(c)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),c=Math.PI*2,d=b.util.object.extend;if(b.Ellipse){b.warn("fabric.Ellipse is already defined.");return}b.Ellipse=b.util.createClass(b.Object,{type:"ellipse",initialize:function(e){e=e||{};this.callSuper("initialize",e);this.set("rx",e.rx||0);this.set("ry",e.ry||0);this.set("width",this.get("rx")*2);this.set("height",this.get("ry")*2)},toObject:function(){return d(this.callSuper("toObject"),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,f){if(this.rx===0||this.ry===0){return}return this.callSuper("render",e,f)},_render:function(e,f){e.beginPath();e.save();e.globalAlpha*=this.opacity;e.transform(1,0,0,this.ry/this.rx,0,0);e.arc(f?this.left:0,f?this.top:0,this.rx,0,c,false);if(this.stroke){e.stroke()}if(this.fill){e.fill()}e.restore()},complexity:function(){return 1}});b.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Ellipse.fromElement=function(f,e){e||(e={});var g=b.parseAttributes(f,b.Ellipse.ATTRIBUTE_NAMES);if("left" in g){g.left-=(e.width/2)||0}if("top" in g){g.top-=(e.height/2)||0}return new b.Ellipse(d(g,e))};b.Ellipse.fromObject=function(e){return new b.Ellipse(e)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={});if(c.Rect){console.warn("fabric.Rect is already defined");return}c.Rect=c.util.createClass(c.Object,{type:"rect",options:{rx:0,ry:0},initialize:function(d){this._initStateProperties();this.callSuper("initialize",d);this._initRxRy()},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){if(this.rx&&!this.ry){this.ry=this.rx}else{if(this.ry&&!this.rx){this.rx=this.ry}}},_render:function(f){var j=this.rx||0,i=this.ry||0,d=-this.width/2,k=-this.height/2,e=this.width,g=this.height;f.beginPath();f.globalAlpha*=this.opacity;if(this.group){f.translate(this.x||0,this.y||0)}f.moveTo(d+j,k);f.lineTo(d+e-j,k);f.bezierCurveTo(d+e,k,d+e,k+i,d+e,k+i);f.lineTo(d+e,k+g-i);f.bezierCurveTo(d+e,k+g,d+e-j,k+g,d+e-j,k+g);f.lineTo(d+j,k+g);f.bezierCurveTo(d,k+g,d,k+g-i,d,k+g-i);f.lineTo(d,k+i);f.bezierCurveTo(d,k,d+j,k,d+j,k);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},_normalizeLeftTopProperties:function(d){if(d.left){this.set("left",d.left+this.getWidth()/2)}this.set("x",d.left||0);if(d.top){this.set("top",d.top+this.getHeight()/2)}this.set("y",d.top||0);return this},complexity:function(){return 1},toObject:function(){return c.util.object.extend(this.callSuper("toObject"),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return''}});c.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");function a(d){d.left=d.left||0;d.top=d.top||0;return d}c.Rect.fromElement=function(e,d){if(!e){return null}var g=c.parseAttributes(e,c.Rect.ATTRIBUTE_NAMES);g=a(g);var f=new c.Rect(c.util.object.extend((d?c.util.object.clone(d):{}),g));f._normalizeLeftTopProperties(g);return f};c.Rect.fromObject=function(d){return new c.Rect(d)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),a=c.util.toFixed;if(c.Polyline){c.warn("fabric.Polyline is already defined");return}c.Polyline=c.util.createClass(c.Object,{type:"polyline",initialize:function(e,d){d=d||{};this.set("points",e);this.callSuper("initialize",d);this._calcDimensions()},_calcDimensions:function(){return c.Polygon.prototype._calcDimensions.call(this)},toObject:function(){return c.Polygon.prototype.toObject.call(this)},toSVG:function(){var f=[];for(var e=0,d=this.points.length;e"].join("")},_render:function(f){var e;f.beginPath();for(var g=0,d=this.points.length;g"].join("")},_render:function(l){var k;l.beginPath();for(var m=0,j=this.points.length;m1){E=Math.sqrt(E);O*=E;N*=E}var R=aa/O;var Q=W/O;var D=(-W)/N;var C=(aa)/N;var H=R*M+Q*L;var q=D*M+C*L;var F=R*T+Q*S;var ab=D*T+C*S;var Z=(F-H)*(F-H)+(ab-q)*(ab-q);var U=1/Z-0.25;if(U<0){U=0}var w=Math.sqrt(U);if(P==J){w=-w}var V=0.5*(H+F)-w*(ab-q);var K=0.5*(q+ab)+w*(F-H);var v=Math.atan2(q-K,H-V);var u=Math.atan2(ab-K,F-V);var Y=u-v;if(Y<0&&P==1){Y+=2*Math.PI}else{if(Y>0&&P==0){Y-=2*Math.PI}}var B=Math.ceil(Math.abs(Y/(Math.PI*0.5+0.001)));var I=[];for(var X=0;X"},toObject:function(){var q=g(this.callSuper("toObject"),{path:this.path});if(this.sourcePath){q.sourcePath=this.sourcePath}if(this.transformMatrix){q.transformMatrix=this.transformMatrix}return q},toDatalessObject:function(){var q=this.toObject();if(this.sourcePath){q.path=this.sourcePath}delete q.sourcePath;return q},toSVG:function(){var t=[];for(var r=0,q=this.path.length;r',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var C=[],z,v,y;for(var u=0,t,q,w=this.path.length;uB){for(var r=1,x=q.length;r"];for(var l=0,j=m.length;l");return k.join("")},toString:function(){return"#"},isSameColor:function(){var j=this.getObjects()[0].get("fill");return this.getObjects().every(function(k){return k.get("fill")===j})},complexity:function(){return this.paths.reduce(function(j,k){return j+((k&&k.complexity)?k.complexity():0)},0)},toGrayscale:function(){var j=this.paths.length;while(j--){this.paths[j].toGrayscale()}return this},getObjects:function(){return this.paths}});function c(m){for(var l=0,j=m.length;l"},getObjects:function(){return this.objects},add:function(h){this._restoreObjectsState();this.objects.push(h);h.setActive(true);this._calcBounds();this._updateObjectsCoords();return this},remove:function(h){this._restoreObjectsState();f(this.objects,h);h.setActive(false);this._calcBounds();this._updateObjectsCoords();return this},size:function(){return this.getObjects().length},set:function(h,k){if(typeof k=="function"){this.set(h,k(this[h]))}else{if(h==="fill"||h==="opacity"){var j=this.objects.length;this[h]=k;while(j--){this.objects[j].set(h,k)}}else{this[h]=k}}return this},contains:function(h){return this.objects.indexOf(h)>-1},toObject:function(){return g(this.callSuper("toObject"),{objects:b(this.objects,"clone")})},render:function(j){j.save();this.transform(j);var n=Math.max(this.scaleX,this.scaleY);for(var l=0,h=this.objects.length,k;k=this.objects[l];l++){var m=k.borderScaleFactor;k.borderScaleFactor=n;k.render(j);k.borderScaleFactor=m}this.hideBorders||this.drawBorders(j);this.hideCorners||this.drawCorners(j);j.restore();this.setCoords()},item:function(h){return this.getObjects()[h]},complexity:function(){return this.getObjects().reduce(function(i,h){i+=(typeof h.complexity=="function")?h.complexity():0;return i},0)},_restoreObjectsState:function(){this.objects.forEach(this._restoreObjectState,this);return this},_restoreObjectState:function(j){var l=this.get("left"),m=this.get("top"),h=this.getAngle()*(Math.PI/180),k=j.get("originalLeft"),n=j.get("originalTop"),i=Math.cos(h)*j.get("top")+Math.sin(h)*j.get("left"),o=-Math.sin(h)*j.get("top")+Math.cos(h)*j.get("left");j.setAngle(j.getAngle()+this.getAngle());j.set("left",l+o*this.get("scaleX"));j.set("top",m+i*this.get("scaleY"));j.set("scaleX",j.get("scaleX")*this.get("scaleX"));j.set("scaleY",j.get("scaleY")*this.get("scaleY"));j.setCoords();j.hideCorners=false;j.setActive(false);j.setCoords();return this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){this._originalLeft=this.get("left");this._originalTop=this.get("top");return this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){this.forEachObject(function(h){h.setCoords()});return this},activateAllObjects:function(){return this.setActive(true)},setActive:function(h){this.forEachObject(function(i){i.setActive(h)});return this},forEachObject:e.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var j=this.getObjects(),i=j[0]?j[0].get("opacity"):1;var h=j.every(function(k){return k.get("opacity")===i});if(h){this.opacity=i}},_calcBounds:function(){var s=[],q=[],p,n,k,h,m,l,u,r=0,t=this.objects.length;for(;ri.x&&j-hi.y},toGrayscale:function(){var h=this.objects.length;while(h--){this.objects[h].toGrayscale()}}});e.Group.fromObject=function(h){return new e.Group(h.objects,h)}})(typeof exports!="undefined"?exports:this);(function(a){var b=fabric.util.object.extend;if(!a.fabric){a.fabric={}}if(a.fabric.Image){fabric.warn("fabric.Image is already defined.");return}if(!fabric.Object){fabric.warn("fabric.Object is required for fabric.Image initialization");return}fabric.Image=fabric.util.createClass(fabric.Object,{active:false,bordervisibility:false,cornervisibility:false,type:"image",filters:[],initialize:function(d,c){c||(c={});this.callSuper("initialize",c);this._initElement(d);this._originalImage=this.getElement();this._initConfig(c);if(c.filters){this.filters=c.filters;this.applyFilters()}},getElement:function(){return this._element},setElement:function(c){this._element=c;this._initConfig();return this},getOriginalSize:function(){var c=this.getElement();return{width:c.width,height:c.height}},setBorderVisibility:function(c){this._resetWidthHeight();this._adjustWidthHeightToBorders(showBorder);this.setCoords()},setCornersVisibility:function(c){this.cornervisibility=!!c},render:function(c,d){c.save();if(!d){this.transform(c)}this._render(c);if(this.active&&!d){this.drawBorders(c);this.hideCorners||this.drawCorners(c)}c.restore()},toObject:function(){return b(this.callSuper("toObject"),{src:this._originalImage.src||this._originalImage._src,filters:this.filters.concat()})},toSVG:function(){return''},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(c){this.constructor.fromObject(this.toObject(),c)},applyFilters:function(i){if(this.filters.length===0){this.setElement(this._originalImage);i&&i();return}var c=typeof Buffer!=="undefined"&&typeof window==="undefined",g=this._originalImage,e=fabric.document.createElement("canvas"),f=c?new (require("canvas").Image):fabric.document.createElement("img"),h=this;if(!e.getContext&&typeof G_vmlCanvasManager!="undefined"){G_vmlCanvasManager.initElement(e)}e.width=g.width;e.height=g.height;e.getContext("2d").drawImage(g,0,0);this.filters.forEach(function(j){j&&j.applyTo(e)});f.onload=function(){h.setElement(f);i&&i();f.onload=e=g=null};f.width=g.width;f.height=g.height;if(c){var d=e.toDataURL("image/png").replace(/data:image\/png;base64,/,"");f.src=new Buffer(d,"base64");h.setElement(f);i&&i()}else{f.src=e.toDataURL("image/png")}return this},_render:function(c){c.drawImage(this.getElement(),-this.width/2,-this.height/2,this.width,this.height)},_adjustWidthHeightToBorders:function(c){if(c){this.currentBorder=this.borderwidth;this.width+=(2*this.currentBorder);this.height+=(2*this.currentBorder)}else{this.currentBorder=0}},_resetWidthHeight:function(){var c=this.getElement();this.set("width",c.width);this.set("height",c.height)},_initElement:function(c){this.setElement(fabric.util.getById(c));fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(c){this.setOptions(c||{});this._setBorder();this._setWidthHeight()},_initFilters:function(c){if(c.filters&&c.filters.length){this.filters=c.filters.map(function(d){return fabric.Image.filters[d.type].fromObject(d)})}},_setBorder:function(){if(this.bordervisibility){this.currentBorder=this.borderwidth}else{this.currentBorder=0}},_setWidthHeight:function(){var c=2*this.currentBorder;this.width=(this.getElement().width||0)+c;this.height=(this.getElement().height||0)+c},complexity:function(){return 1}});fabric.Image.CSS_CANVAS="canvas-img";fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc;fabric.Image.fromObject=function(d,f){var c=fabric.document.createElement("img"),e=d.src;if(d.width){c.width=d.width}if(d.height){c.height=d.height}c.onload=function(){fabric.Image.prototype._initFilters.call(d,d);var g=new fabric.Image(c,d);f&&f(g);c=c.onload=null};c.src=e};fabric.Image.fromURL=function(d,f,e){var c=fabric.document.createElement("img");c.onload=function(){if(f){f(new fabric.Image(c,e))}c=c.onload=null};c.src=d};fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" ");fabric.Image.fromElement=function(d,f,c){c||(c={});var e=fabric.parseAttributes(d,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(e["xlink:href"],f,b(e,c))};fabric.Image.async=true})(typeof exports!="undefined"?exports:this);fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var a=this.get("angle");if(a>-225&&a<=-135){return -180}else{if(a>-135&&a<=-45){return -90}else{if(a>-45&&a<=45){return 0}else{if(a>45&&a<=135){return 90}else{if(a>135&&a<=225){return 180}else{if(a>225&&a<=315){return 270}else{if(a>315){return 360}}}}}}}return 0},straighten:function(){var a=this._getAngleValueForStraighten();this.setAngle(a);return this},fxStraighten:function(b){b=b||{};var c=function(){},d=b.onComplete||c,a=b.onChange||c,e=this;fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(f){e.setAngle(f);a()},onComplete:function(){e.setCoords();d()},onStart:function(){e.setActive(false)}});return this}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(a){a.straighten();this.renderAll();return this},fxStraightenObject:function(a){a.fxStraighten({onChange:this.renderAll.bind(this)});return this}});fabric.Image.filters={};fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(d){var c=d.getContext("2d"),a=c.getImageData(0,0,d.width,d.height),h=a.data,e=a.width,l=a.height,k,b,g,f;for(g=0;gh&&m>h&&o>h&&p(a-m)'},_render:function(f){var h=Cufon.textOptions||(Cufon.textOptions={});h.left=this.left;h.top=this.top;h.context=f;h.color=this.fill;var g=this._initDummyElement();this.transform(f);Cufon.replaceElement(g,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor});this.width=h.width;this.height=h.height;this._totalLineHeight=h.totalLineHeight;this._fontAscent=h.fontAscent;this._boundaries=h.boundaries;this._shadowOffsets=h.shadowOffsets;this._shadows=h.shadows||[];this.setCoords()},_initDummyElement:function(){var g=c.document.createElement("pre"),f=c.document.createElement("div");f.appendChild(g);if(typeof G_vmlCanvasManager=="undefined"){g.innerHTML=this.text}else{g.innerText=this.text.replace(/\r?\n/gi,"\r")}g.style.fontSize=this.fontSize+"px";g.style.letterSpacing="normal";return g},render:function(f,g){f.save();this._render(f);if(!g&&this.active){this.drawBorders(f);this.hideCorners||this.drawCorners(f)}f.restore()},toObject:function(){return e(this.callSuper("toObject"),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor})},toSVG:function(){var i=this.text.split(/\r?\n/),j=-this._fontAscent-((this._fontAscent/5)*this.lineHeight),g=-(this.width/2),f=(this.height/2)-(i.length*this.fontSize)-this._totalLineHeight,h=this._getSVGTextAndBg(j,g,i),k=this._getSVGShadows(j,i);f+=((this._fontAscent/5)*this.lineHeight);return['',h.textBgRects.join(""),"',k.join(""),h.textSpans.join(""),"",""].join("")},_getSVGShadows:function(h,n){var o=[],k,l,p,g,f=1;for(k=0,p=this._shadows.length;k",c.util.string.escapeXml(n[l]),"");f=1}else{f++}}}return o},_getSVGTextAndBg:function(j,h,n){var g=[],k=[],l,m,o,f=1;for(l=0,o=n.length;l",c.util.string.escapeXml(n[l]),"");f=1}else{f++}if(!this.backgroundColor){continue}k.push("')}return{textSpans:g,textBgRects:k}},_getFillAttributes:function(f){var g=f?new c.Color(f):"";if(!g||!g.getSource()||g.getAlpha()===1){return'fill="'+f+'"'}return'opacity="'+g.getAlpha()+'" fill="'+g.setAlpha(1).toRgb()+'"'},setColor:function(f){this.set("fill",f);return this},setFontsize:function(f){this.set("fontSize",f);this.setCoords();return this},getText:function(){return this.text},setText:function(f){this.set("text",f);this.setCoords();return this},set:function(f,g){if(typeof f=="object"){for(var h in f){this.set(h,f[h])}}else{this[f]=g;if(f==="fontFamily"&&this.path){this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+g+"$3")}}return this}});c.Text.fromObject=function(f){return new c.Text(f.text,d(f))};c.Text.fromElement=function(f){}})(typeof exports!="undefined"?exports:this);(function(){if(typeof document!="undefined"&&typeof window!="undefined"){return}var DOMParser=new require("xmldom").DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;function request(url,encoding,callback){var oURL=URL.parse(url),client=HTTP.createClient(80,oURL.hostname),request=client.request("GET",oURL.pathname,{host:oURL.hostname});client.addListener("error",function(err){if(err.errno===process.ECONNREFUSED){fabric.log("ECONNREFUSED: connection refused to "+client.host+":"+client.port)}else{fabric.log(err.message)}});request.end();request.on("response",function(response){var body="";if(encoding){response.setEncoding(encoding)}response.on("end",function(){callback(body)});response.on("data",function(chunk){if(response.statusCode==200){body+=chunk}})})}fabric.util.loadImage=function(url,callback){request(url,"binary",function(body){var img=new Image();img.src=new Buffer(body,"binary");img._src=url;callback(img)})};fabric.loadSVGFromURL=function(url,callback){url=url.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim();request(url,"",function(body){var doc=new DOMParser().parseFromString(body);fabric.parseSVGDocument(doc.documentElement,function(results,options){callback(results,options)})})};fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body);callback&&callback()})};fabric.Image.fromObject=function(object,callback){fabric.util.loadImage(object.src,function(img){var oImg=new fabric.Image(img);oImg._initConfig(object);oImg._initFilters(object);callback(oImg)})};fabric.createCanvasForNode=function(width,height){var canvasEl=fabric.document.createElement("canvas"),nodeCanvas=new Canvas(width||600,height||600);canvasEl.style={};canvasEl.width=nodeCanvas.width;canvasEl.height=nodeCanvas.height;var canvas=fabric.Canvas||fabric.StaticCanvas;var fabricCanvas=new canvas(canvasEl);fabricCanvas.contextContainer=nodeCanvas.getContext("2d");fabricCanvas.nodeCanvas=nodeCanvas;return fabricCanvas};fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()};if(fabric.Canvas){fabric.Canvas.prototype.createPNGStream}var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(width){origSetWidth.call(this);this.nodeCanvas.width=width;return this};if(fabric.Canvas){fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth}var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(height){origSetHeight.call(this);this.nodeCanvas.height=height;return this};if(fabric.Canvas){fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight}})(); \ No newline at end of file +var Cufon=(function(){var k=function(){return k.replace.apply(null,arguments)};var u=k.DOM={ready:(function(){var z=false,B={loaded:1,complete:1};var y=[],A=function(){if(z){return}z=true;for(var C;C=y.shift();C()){}};if(fabric.document.addEventListener){fabric.document.addEventListener("DOMContentLoaded",A,false);fabric.window.addEventListener("pageshow",A,false)}if(!fabric.window.opera&&fabric.document.readyState){(function(){B[fabric.document.readyState]?A():setTimeout(arguments.callee,10)})()}if(fabric.document.readyState&&fabric.document.createStyleSheet){(function(){try{fabric.document.body.doScroll("left");A()}catch(C){setTimeout(arguments.callee,1)}})()}o(fabric.window,"load",A);return function(C){if(!arguments.length){A()}else{z?C():y.push(C)}}})()};var l=k.CSS={Size:function(z,y){this.value=parseFloat(z);this.unit=String(z).match(/[a-z%]*$/)[0]||"px";this.convert=function(A){return A/y*this.value};this.convertFrom=function(A){return A/this.value*y};this.toString=function(){return this.value+this.unit}},getStyle:function(y){return new a(y.style)},quotedList:i(function(B){var A=[],z=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,y;while(y=z.exec(B)){A.push(y[3]||y[1])}return A}),ready:(function(){var A=false;var z=[],B=function(){A=true;for(var D;D=z.shift();D()){}};var y=Object.prototype.propertyIsEnumerable?f("style"):{length:0};var C=f("link");u.ready(function(){var G=0,F;for(var E=0,D=C.length;F=C[E],E=y.length+G){B()}else{setTimeout(arguments.callee,10)}});return function(D){if(A){D()}else{z.push(D)}}})(),supports:function(A,z){var y=fabric.document.createElement("span").style;if(y[A]===undefined){return false}y[A]=z;return y[A]===z},textAlign:function(B,A,y,z){if(A.get("textAlign")=="right"){if(y>0){B=" "+B}}else{if(y400}if(F==500){F=400}for(var G in D){G=parseInt(G,10);if(!C||GA){A=G}H.push(G)}if(FA){F=A}H.sort(function(J,I){return(B?(J>F&&I>F)?JI:(JI:JV){V=Q}if(P>T){T=P}if(Qz){z=e}L.push(e);e=0;continue}var B=ab.glyphs[ag[aa]]||ab.missingGlyph;if(!B){continue}e+=D=Number(B.w||ab.w)+U}L.push(e);e=Math.max(z,e);var m=[];for(var aa=L.length;aa--;){m[aa]=e-L[aa]}if(D===null){return null}V+=(H.width-D);C+=H.minX;var v,p;if(n){v=J;p=J.firstChild}else{v=fabric.document.createElement("span");v.className="cufon cufon-canvas";v.alt=E;p=fabric.document.createElement("canvas");v.appendChild(p);if(A.printable){var Y=fabric.document.createElement("span");Y.className="cufon-alt";Y.appendChild(fabric.document.createTextNode(E));v.appendChild(Y)}}var ah=v.style;var O=p.style||{};var k=o.convert(H.height-I+T);var af=Math.ceil(k);var S=af/k;p.width=Math.ceil(o.convert(e+V-C)*S);p.height=af;I+=H.minY;O.top=Math.round(o.convert(I-ab.ascent))+"px";O.left=Math.round(o.convert(C))+"px";var j=Math.ceil(o.convert(e*S));var t=j+"px";var s=o.convert(ab.height);var F=(A.lineHeight-1)*o.convert(-ab.ascent/5)*(M-1);Cufon.textOptions.width=j;Cufon.textOptions.height=(s*M)+F;Cufon.textOptions.lines=M;Cufon.textOptions.totalLineHeight=F;if(a){ah.width=t;ah.height=s+"px"}else{ah.paddingLeft=t;ah.paddingBottom=(s-1)+"px"}var ad=Cufon.textOptions.context||p.getContext("2d"),K=af/H.height;Cufon.textOptions.fontAscent=ab.ascent*K;Cufon.textOptions.boundaries=null;for(var w=Cufon.textOptions.shadowOffsets,aa=R.length;aa--;){w[aa]=[R[aa][0]*K,R[aa][1]*K]}ad.save();ad.scale(K,K);ad.translate(-C-((1/K*p.width)/2)+(Cufon.fonts[ab.family].offsetLeft||0),-I-(Cufon.textOptions.height/K)/2);ad.lineWidth=ab.face["underline-thickness"];ad.save();function q(l,i){ad.strokeStyle=i;ad.beginPath();ad.moveTo(0,l);ad.lineTo(e,l);ad.stroke()}var r=Cufon.getTextDecoration(A),u=A.fontStyle==="italic";function ae(){ad.save();ad.fillStyle=A.backgroundColor;var aj=0,an=0,y=[{left:0}];if(A.textAlign==="right"){ad.translate(m[an],0);y[0].left=m[an]*K}else{if(A.textAlign==="center"){ad.translate(m[an]/2,0);y[0].left=m[an]/2*K}}for(var al=0,ak=ag.length;al.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}');function c(e,f){return a(e,/(?:em|ex|%)$/i.test(f)?"1em":f)}function a(h,i){if(/px$/i.test(i)){return parseFloat(i)}var g=h.style.left,f=h.runtimeStyle.left;h.runtimeStyle.left=h.currentStyle.left;h.style.left=i;var e=h.style.pixelLeft;h.style.left=g;h.runtimeStyle.left=f;return e}return function(T,z,O,w,D,U,M){var h=(z===null);if(h){z=D.alt}var B=T.viewBox;var j=O.computedFontSize||(O.computedFontSize=new Cufon.CSS.Size(c(U,O.get("fontSize"))+"px",T.baseSize));var L=O.computedLSpacing;if(L==undefined){L=O.get("letterSpacing");O.computedLSpacing=L=(L=="normal")?0:~~j.convertFrom(a(U,L))}var t,m;if(h){t=D;m=D.firstChild}else{t=fabric.document.createElement("span");t.className="cufon cufon-vml";t.alt=z;m=fabric.document.createElement("span");m.className="cufon-vml-canvas";t.appendChild(m);if(w.printable){var R=fabric.document.createElement("span");R.className="cufon-alt";R.appendChild(fabric.document.createTextNode(z));t.appendChild(R)}if(!M){t.appendChild(fabric.document.createElement("cvml:shape"))}}var Z=t.style;var G=m.style;var f=j.convert(B.height),W=Math.ceil(f);var K=W/f;var J=B.minX,I=B.minY;G.height=W;G.top=Math.round(j.convert(I-T.ascent));G.left=Math.round(j.convert(J));Z.height=j.convert(T.height)+"px";var p=Cufon.getTextDecoration(w);var y=O.get("color");var X=Cufon.CSS.textTransform(z,O).split("");var e=0,H=0,q=null;var x,r,A=w.textShadow;for(var S=0,Q=0,P=X.length;St?m:(l-k);p(q(currentTime,j,byValue,m));if(l>t||n()){u.onComplete&&u.onComplete();return}h(o)})()}var h=(function(){return fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(k,j){fabric.window.setTimeout(k,1000/60)}})();function a(k,m,l){if(k){var j=new Image();j.onload=function(){m&&m.call(l,j);j=j.onload=null};j.src=k}else{m&&m.call(l,k)}}fabric.util.removeFromArray=g;fabric.util.degreesToRadians=b;fabric.util.toFixed=d;fabric.util.getRandomInt=e;fabric.util.falseFunction=i;fabric.util.animate=c;fabric.util.requestAnimFrame=h;fabric.util.loadImage=a})();(function(){var d=Array.prototype.slice;if(!Array.prototype.indexOf){Array.prototype.indexOf=function(g){if(this===void 0||this===null){throw new TypeError()}var h=Object(this),e=h.length>>>0;if(e===0){return -1}var i=0;if(arguments.length>0){i=Number(arguments[1]);if(i!==i){i=0}else{if(i!==0&&i!==(1/0)&&i!==-(1/0)){i=(i>0||-1)*Math.floor(Math.abs(i))}}}if(i>=e){return -1}var f=i>=0?i:Math.max(e-Math.abs(i),0);for(;f>>0;f>>0;g>>0;f>>0;f>>0;g>>0,f=0,h;if(arguments.length>1){h=arguments[1]}else{do{if(f in this){h=this[f++];break}if(++f>=e){throw new TypeError()}}while(true)}for(;f=e){e=h[f][g]}}}else{while(f--){if(h[f]>=e){e=h[f]}}}return e}function c(h,g){if(!h||h.length===0){return undefined}var f=h.length-1,e=g?h[f][g]:h[f];if(g){while(f--){if(h[f][g]",">")}fabric.util.string={camelize:b,capitalize:c,escapeXml:a}}());(function(){var c=Array.prototype.slice,a=Function.prototype.apply,b=function(){};if(!Function.prototype.bind){Function.prototype.bind=function(d){var g=this,e=c.call(arguments,1),f;if(e.length){f=function(){return a.call(g,this instanceof b?this:d,e.concat(c.call(arguments)))}}else{f=function(){return a.call(g,this instanceof b?this:d,arguments)}}b.prototype=this.prototype;f.prototype=new b;return f}}})();(function(){var f=Array.prototype.slice,e=function(){};var c=(function(){for(var g in {toString:1}){if(g==="toString"){return false}}return true})();var b=function(g,j,h){for(var i in j){if(i in g.prototype&&typeof g.prototype[i]=="function"){g.prototype[i]=(function(k){return function(){var m=this.constructor.superclass;this.constructor.superclass=h;var l=j[k].apply(this,arguments);this.constructor.superclass=m;if(k!=="initialize"){return l}}})(i)}else{g.prototype[i]=j[i]}if(c){if(j.toString!==Object.prototype.toString){g.prototype.toString=j.toString}if(j.valueOf!==Object.prototype.valueOf){g.prototype.valueOf=j.valueOf}}}};function a(){}function d(){var k=null,j=f.call(arguments,0);if(typeof j[0]==="function"){k=j.shift()}function g(){this.initialize.apply(this,arguments)}g.superclass=k;g.subclasses=[];if(k){a.prototype=k.prototype;g.prototype=new a;k.subclasses.push(g)}for(var h=0,l=j.length;h-1?c(j,l.match(/opacity:\s*(\d?\.?\d*)/)[1]):j}for(var m in l){if(m==="opacity"){c(j,l[m])}else{var k=(m==="float"||m==="cssFloat")?(typeof n.styleFloat==="undefined"?"cssFloat":"styleFloat"):m;n[k]=l[m]}}return j}var h=fabric.document.createElement("div"),g=typeof h.style.opacity==="string",b=typeof h.style.filter==="string",a=fabric.document.defaultView,f=a&&typeof a.getComputedStyle!=="undefined",d=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,c=function(i){return i};if(g){c=function(i,j){i.style.opacity=j;return i}}else{if(b){c=function(i,j){var k=i.style;if(i.currentStyle&&!i.currentStyle.hasLayout){k.zoom=1}if(d.test(k.filter)){j=j>=0.9999?"":("alpha(opacity="+(j*100)+")");k.filter=k.filter.replace(d,j)}else{k.filter+=" alpha(opacity="+(j*100)+")"}return i}}}fabric.util.setStyle=e})();(function(){var h=Array.prototype.slice;function g(j){return typeof j==="string"?fabric.document.getElementById(j):j}function b(j){return h.call(j,0)}try{var i=b(fabric.document.childNodes) instanceof Array}catch(a){}if(!i){b=function(k){var j=new Array(k.length),l=k.length;while(l--){j[l]=k[l]}return j}}function c(k,j){var l=fabric.document.createElement(k);for(var m in j){if(m==="class"){l.className=j[m]}else{if(m==="for"){l.htmlFor=j[m]}else{l.setAttribute(m,j[m])}}}return l}function f(j,k){if((" "+j.className+" ").indexOf(" "+k+" ")===-1){j.className+=(j.className?" ":"")+k}}function e(k,l,j){if(typeof l==="string"){l=c(l,j)}if(k.parentNode){k.parentNode.replaceChild(l,k)}l.appendChild(k);return l}function d(k){var j=0,l=0;do{j+=k.offsetTop||0;l+=k.offsetLeft||0;k=k.offsetParent}while(k);return({left:l,top:j})}(function(){var k=fabric.document.documentElement.style;var l="userSelect" in k?"userSelect":"MozUserSelect" in k?"MozUserSelect":"WebkitUserSelect" in k?"WebkitUserSelect":"KhtmlUserSelect" in k?"KhtmlUserSelect":"";function m(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=fabric.util.falseFunction}if(l){n.style[l]="none"}else{if(typeof n.unselectable=="string"){n.unselectable="on"}}return n}function j(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=null}if(l){n.style[l]=""}else{if(typeof n.unselectable=="string"){n.unselectable=""}}return n}fabric.util.makeElementUnselectable=m;fabric.util.makeElementSelectable=j})();(function(){function j(k,o){var m=fabric.document.getElementsByTagName("head")[0],l=fabric.document.createElement("script"),n=true;l.type="text/javascript";l.setAttribute("runat","server");l.onload=l.onreadystatechange=function(p){if(n){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete"){return}n=false;o(p||fabric.window.event);l=l.onload=l.onreadystatechange=null}};l.src=k;m.appendChild(l)}fabric.util.getScript=j})();fabric.util.getById=g;fabric.util.toArray=b;fabric.util.makeElement=c;fabric.util.addClass=f;fabric.util.wrapElement=e;fabric.util.getElementOffset=d})();(function(){function d(e,f){return e+(/\?/.test(e)?"&":"?")+f}var c=(function(){var h=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest()}];for(var e=h.length;e--;){try{var g=h[e]();if(g){return h[e]}}catch(f){}}})();function a(){}function b(g,f){f||(f={});var j=f.method?f.method.toUpperCase():"GET",i=f.onComplete||function(){},h=c(),e;h.onreadystatechange=function(){if(h.readyState===4){i(h);h.onreadystatechange=a}};if(j==="GET"){e=null;if(typeof f.parameters=="string"){g=d(g,f.parameters)}}h.open(j,g,true);if(j==="POST"||j==="PUT"){h.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}h.send(e);return h}fabric.util.request=b})();(function(){fabric.util.ease={};function d(F,E,H,G){return H*(F/=G)*F+E}function l(F,E,H,G){return -H*(F/=G)*(F-2)+E}function r(F,E,H,G){if((F/=G/2)<1){return H/2*F*F+E}return -H/2*((--F)*(F-2)-1)+E}function B(F,E,H,G){return H*(F/=G)*F*F+E}function q(F,E,H,G){return H*((F=F/G-1)*F*F+1)+E}function u(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F+E}return H/2*((F-=2)*F*F+2)+E}function t(F,E,H,G){return H*(F/=G)*F*F*F+E}function g(F,E,H,G){return -H*((F=F/G-1)*F*F*F-1)+E}function k(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F+E}return -H/2*((F-=2)*F*F*F-2)+E}function y(F,E,H,G){return H*(F/=G)*F*F*F*F+E}function j(F,E,H,G){return H*((F=F/G-1)*F*F*F*F+1)+E}function n(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F*F+E}return H/2*((F-=2)*F*F*F*F+2)+E}function f(F,E,H,G){return -H*Math.cos(F/G*(Math.PI/2))+H+E}function o(F,E,H,G){return H*Math.sin(F/G*(Math.PI/2))+E}function v(F,E,H,G){return -H/2*(Math.cos(Math.PI*F/G)-1)+E}function D(F,E,H,G){return(F==0)?E:H*Math.pow(2,10*(F/G-1))+E}function c(F,E,H,G){return(F==G)?E+H:H*(-Math.pow(2,-10*F/G)+1)+E}function i(F,E,H,G){if(F==0){return E}if(F==G){return E+H}if((F/=G/2)<1){return H/2*Math.pow(2,10*(F-1))+E}return H/2*(-Math.pow(2,-10*--F)+2)+E}function h(F,E,H,G){return -H*(Math.sqrt(1-(F/=G)*F)-1)+E}function p(F,E,H,G){return H*Math.sqrt(1-(F=F/G-1)*F)+E}function x(F,E,H,G){if((F/=G/2)<1){return -H/2*(Math.sqrt(1-F*F)-1)+E}return H/2*(Math.sqrt(1-(F-=2)*F)+1)+E}function s(G,E,K,J){var H=1.70158;var I=0;var F=K;if(G==0){return E}if((G/=J)==1){return E+K}if(!I){I=J*0.3}if(F-1;v=v.split(/\s+/);var t=[];if(x){for(var u=0,s=v.length;u/i,""))}if(!v.documentElement){return}g.parseSVGDocument(v.documentElement,function(y,x){j.set(s,{objects:g.util.array.invoke(y,"toObject"),options:x});u(y,x)})}}function a(u){var t=u.objects,s=u.options;t=t.map(function(v){return g[e(v.type)].fromObject(v)});return({objects:t,options:s})}function m(s,v){s=s.trim();var t;if(typeof DOMParser!=="undefined"){var u=new DOMParser();if(u&&u.parseFromString){t=u.parseFromString(s,"text/xml")}}else{if(g.window.ActiveXObject){var t=new ActiveXObject("Microsoft.XMLDOM");t.async="false";t.loadXML(s.replace(//i,""))}}g.parseSVGDocument(t.documentElement,function(x,w){v(x,w)})}function l(v){var t="";for(var u=0,s=v.length;u",'",""].join("")}return t}o(g,{parseAttributes:d,parseElements:f,parseStyleAttribute:h,parsePointsAttribute:r,getCSSRules:c,loadSVGFromURL:b,loadSVGFromString:m,createSVGFontFacesMarkup:l})})(typeof exports!="undefined"?exports:this);(function(){function c(h){var g=h.getAttribute("style");if(g){var k=g.split(/\s*;\s*/);if(k[k.length-1]===""){k.pop()}for(var f=k.length;f--;){var e=k[f].split(/\s*:\s*/),d=e[0].trim(),j=e[1].trim();if(d==="stop-color"){return j}}}}fabric.Gradient={create:function(l,m){m||(m={});var f=m.x1||0,k=m.y1||0,e=m.x2||l.canvas.width,i=m.y2||0,g=m.colorStops;var j=l.createLinearGradient(f,k,e,i);for(var h in g){var d=g[h];j.addColorStop(parseFloat(h),d)}return j},fromElement:function(d,m,l){var j=d.getElementsByTagName("stop"),d,f,e={},g,k={x1:d.getAttribute("x1")||0,y1:d.getAttribute("y1")||0,x2:d.getAttribute("x2")||"100%",y2:d.getAttribute("y2")||0};for(var h=j.length;h--;){d=j[h];f=d.getAttribute("offset");f=parseFloat(f)/(/%$/.test(f)?100:1);e[f]=c(d)||d.getAttribute("stop-color")}a(l,k);return fabric.Gradient.create(m,{x1:k.x1,y1:k.y1,x2:k.x2,y2:k.y2,colorStops:e})},forObject:function(g,d,e){e||(e={});a(g,e);var f=fabric.Gradient.create(d,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,colorStops:e.colorStops});return f}};function a(f,e){for(var g in e){if(typeof e[g]==="string"&&/^\d+%$/.test(e[g])){var d=parseFloat(e[g],10);if(g==="x1"||g==="x2"){e[g]=f.width*d/100}else{if(g==="y1"||g==="y2"){e[g]=f.height*d/100}}}if(g==="x1"||g==="x2"){e[g]-=f.width/2}else{if(g==="y1"||g==="y2"){e[g]-=f.height/2}}}}function b(j){var f=j.getElementsByTagName("linearGradient"),d=j.getElementsByTagName("radialGradient"),g,h={};for(var e=f.length;e--;){g=f[e];h[g.id]=g}for(var e=d.length;e--;){g=d[e];h[g.id]=g}return h}fabric.getGradientDefs=b})();(function(b){var c=b.fabric||(b.fabric={});if(c.Point){c.warn("fabric.Point is already defined");return}c.Point=a;function a(d,e){if(arguments.length>0){this.init(d,e)}}a.prototype={constructor:a,init:function(d,e){this.x=d;this.y=e},add:function(d){return new a(this.x+d.x,this.y+d.y)},addEquals:function(d){this.x+=d.x;this.y+=d.y;return this},scalarAdd:function(d){return new a(this.x+d,this.y+d)},scalarAddEquals:function(d){this.x+=d;this.y+=d;return this},subtract:function(d){return new a(this.x-d.x,this.y-d.y)},subtractEquals:function(d){this.x-=d.x;this.y-=d.y;return this},scalarSubtract:function(d){return new a(this.x-d,this.y-d)},scalarSubtractEquals:function(d){this.x-=d;this.y-=d;return this},multiply:function(d){return new a(this.x*d,this.y*d)},multiplyEquals:function(d){this.x*=d;this.y*=d;return this},divide:function(d){return new a(this.x/d,this.y/d)},divideEquals:function(d){this.x/=d;this.y/=d;return this},eq:function(d){return(this.x==d.x&&this.y==d.y)},lt:function(d){return(this.xd.x&&this.y>d.y)},gte:function(d){return(this.x>=d.x&&this.y>=d.y)},lerp:function(e,d){return new a(this.x+(e.x-this.x)*d,this.y+(e.y-this.y)*d)},distanceFrom:function(f){var e=this.x-f.x,d=this.y-f.y;return Math.sqrt(e*e+d*d)},min:function(d){return new a(Math.min(this.x,d.x),Math.min(this.y,d.y))},max:function(d){return new a(Math.max(this.x,d.x),Math.max(this.y,d.y))},toString:function(){return this.x+","+this.y},setXY:function(d,e){this.x=d;this.y=e},setFromPoint:function(d){this.x=d.x;this.y=d.y},swap:function(e){var d=this.x,f=this.y;this.x=e.x;this.y=e.y;e.x=d;e.y=f}}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Intersection){b.warn("fabric.Intersection is already defined");return}function c(d){if(arguments.length>0){this.init(d)}}b.Intersection=c;b.Intersection.prototype={init:function(d){this.status=d;this.points=[]},appendPoint:function(d){this.points.push(d)},appendPoints:function(d){this.points=this.points.concat(d)}};b.Intersection.intersectLineLine=function(h,f,l,k){var m,i=(k.x-l.x)*(h.y-l.y)-(k.y-l.y)*(h.x-l.x),j=(f.x-h.x)*(h.y-l.y)-(f.y-h.y)*(h.x-l.x),g=(k.y-l.y)*(f.x-h.x)-(k.x-l.x)*(f.y-h.y);if(g!=0){var e=i/g,d=j/g;if(0<=e&&e<=1&&0<=d&&d<=1){m=new c("Intersection");m.points.push(new b.Point(h.x+e*(f.x-h.x),h.y+e*(f.y-h.y)))}else{m=new c("No Intersection")}}else{if(i==0||j==0){m=new c("Coincident")}else{m=new c("Parallel")}}return m};b.Intersection.intersectLinePolygon=function(e,d,l){var m=new c("No Intersection"),f=l.length;for(var h=0;h0){m.status="Intersection"}return m};b.Intersection.intersectPolygonPolygon=function(j,h){var f=new c("No Intersection"),l=j.length;for(var k=0;k0){f.status="Intersection"}return f};b.Intersection.intersectPolygonRectangle=function(n,e,d){var g=e.min(d),m=e.max(d),f=new b.Point(m.x,g.y),l=new b.Point(g.x,m.y),k=c.intersectLinePolygon(g,f,n),j=c.intersectLinePolygon(f,m,n),i=c.intersectLinePolygon(m,l,n),h=c.intersectLinePolygon(l,g,n),o=new c("No Intersection");o.appendPoints(k.points);o.appendPoints(j.points);o.appendPoints(i.points);o.appendPoints(h.points);if(o.points.length>0){o.status="Intersection"}return o}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Color){b.warn("fabric.Color is already defined.");return}function c(d){if(!d){this.setSource([0,0,0,1])}else{this._tryParsingColor(d)}}b.Color=c;b.Color.prototype={_tryParsingColor:function(d){var e=c.sourceFromHex(d);if(!e){e=c.sourceFromRgb(d)}if(e){this.setSource(e)}},getSource:function(){return this._source},setSource:function(d){this._source=d},toRgb:function(){var d=this.getSource();return"rgb("+d[0]+","+d[1]+","+d[2]+")"},toRgba:function(){var d=this.getSource();return"rgba("+d[0]+","+d[1]+","+d[2]+","+d[3]+")"},toHex:function(){var h=this.getSource();var f=h[0].toString(16);f=(f.length==1)?("0"+f):f;var e=h[1].toString(16);e=(e.length==1)?("0"+e):e;var d=h[2].toString(16);d=(d.length==1)?("0"+d):d;return f.toUpperCase()+e.toUpperCase()+d.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var d=this.getSource();d[3]=e;this.setSource(d);return this},toGrayscale:function(){var f=this.getSource(),e=parseInt((f[0]*0.3+f[1]*0.59+f[2]*0.11).toFixed(0),10),d=f[3];this.setSource([e,e,e,d]);return this},toBlackWhite:function(d){var g=this.getSource(),f=(g[0]*0.3+g[1]*0.59+g[2]*0.11).toFixed(0),e=g[3],d=d||127;f=(Number(f)','',"',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())];if(this.backgroundImage){h.push('')}for(var j=0,k=this.getObjects(),g=k.length;j");return h.join("")},isEmpty:function(){return this._objects.length===0},remove:function(g){e(this._objects,g);if(this.getActiveObject()===g){this.fire("before:selection:cleared",{target:g});this.discardActiveObject();this.fire("selection:cleared")}this.renderAll();return g},sendToBack:function(g){e(this._objects,g);this._objects.unshift(g);return this.renderAll()},bringToFront:function(g){e(this._objects,g);this._objects.push(g);return this.renderAll()},sendBackwards:function(j){var h=this._objects.indexOf(j),g=h;if(h!==0){for(var k=h-1;k>=0;--k){if(j.intersectsWithObject(this._objects[k])||j.isContainedWithinObject(this._objects[k])){g=k;break}}e(this._objects,j);this._objects.splice(g,0,j)}return this.renderAll()},bringForward:function(k){var n=this.getObjects(),h=n.indexOf(k),g=h;if(h!==n.length-1){for(var m=h+1,j=this._objects.length;m"};f(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(l){var k=l.getContext("2d"),g=k.getImageData(0,0,l.width,l.height),p=g.data,m=g.width,r=g.height,q,h,o,n;for(o=0;o0)?0:-v),r.ey-((u>0)?0:-u),t,s);this.contextTop.lineWidth=this.selectionLineWidth;this.contextTop.strokeStyle=this.selectionBorderColor;this.contextTop.strokeRect(r.ex+a-((v>0)?0:t),r.ey+a-((u>0)?0:s),t,s)},_findSelectedObjects:function(x){var y,t,D=[],s=this._groupSelector.ex,C=this._groupSelector.ey,r=s+this._groupSelector.left,A=C+this._groupSelector.top,z,w=new fabric.Point(f(s,r),f(C,A)),B=new fabric.Point(l(s,r),l(C,A));for(var u=0,v=this._objects.length;u1){var D=new fabric.Group(D);this.setActiveGroup(D);D.saveCoords();this.fire("selection:created",{target:D})}}this.renderAll()},findTarget:function(v,s){var u,w=this.getPointer(v);var t=this.getActiveGroup();if(t&&!s&&this.containsPoint(v,t)){u=t;return u}for(var r=this._objects.length;r--;){if(this._objects[r]&&this.containsPoint(v,this._objects[r])){u=this._objects[r];this.relatedTarget=u;break}}if(u&&u.selectable){return u}},getPointer:function(r){var s=q(r);return{x:s.x-this._offset.left,y:s.y-this._offset.top}},_createUpperCanvas:function(){this.upperCanvasEl=this._createCanvasElement();this.upperCanvasEl.className="upper-canvas";this.wrapperEl.appendChild(this.upperCanvasEl);this._applyCanvasStyle(this.upperCanvasEl);this.contextTop=this.upperCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=fabric.util.wrapElement(this.lowerCanvasEl,"div",{"class":this.CONTAINER_CLASS});fabric.util.setStyle(this.wrapperEl,{width:this.getWidth()+"px",height:this.getHeight()+"px",position:"relative"});fabric.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(s){var t=this.getWidth()||s.width,r=this.getHeight()||s.height;fabric.util.setStyle(s,{position:"absolute",width:t+"px",height:r+"px",left:0,top:0});s.width=t;s.height=r;fabric.util.makeElementUnselectable(s)},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},setActiveObject:function(r,s){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=r;r.setActive(true);this.renderAll();this.fire("object:selected",{target:r,e:s});return this},getActiveObject:function(){return this._activeObject},discardActiveObject:function(){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=null;return this},setActiveGroup:function(r){this._activeGroup=r;return this},getActiveGroup:function(){return this._activeGroup},discardActiveGroup:function(){var r=this.getActiveGroup();if(r){r.destroy()}return this.setActiveGroup(null)},deactivateAll:function(){var s=this.getObjects(),t=0,r=s.length;for(;t1){var o=new fabric.PathGroup(q,n)}else{var o=q[0]}o.setSourcePath(m);if(!(o instanceof fabric.PathGroup)){fabric.util.object.extend(o,n);if(typeof n.angle!=="undefined"){o.setAngle(n.angle)}}g(o,l)})}}}},this)}catch(c){fabric.log(c.message)}},loadFromJSON:function(a,d){if(!a){return}var b=JSON.parse(a);if(!b||(b&&!b.objects)){return}this.clear();var c=this;this._enlivenObjects(b.objects,function(){c.backgroundColor=b.background;if(b.backgroundImage){c.setBackgroundImage(b.backgroundImage,c.renderAll.bind(c));c.backgroundImageOpacity=b.backgroundImageOpacity;c.backgroundImageStretch=b.backgroundImageStretch}if(d){d()}});return this},_enlivenObjects:function(b,e){var c=0,a=b.filter(function(f){return f.type==="image"}).length;var d=this;b.forEach(function(h,g){if(!h.type){return}switch(h.type){case"image":case"font":fabric[fabric.util.string.capitalize(h.type)].fromObject(h,function(i){d.insertAt(i,g,true);if(++c===a){if(e){e()}}});break;default:var f=fabric[fabric.util.string.camelize(fabric.util.string.capitalize(h.type))];if(f&&f.fromObject){d.insertAt(f.fromObject(h),g,true)}break}});if(a===0&&e){e()}},_toDataURL:function(a,b){this.clone(function(c){b(c.toDataURL(a))})},_toDataURLWithMultiplier:function(a,c,b){this.clone(function(d){b(d.toDataURLWithMultiplier(a,c))})},clone:function(b){var a=JSON.stringify(this);this.cloneWithoutData(function(c){c.loadFromJSON(a,function(){if(b){b(c)}})})},cloneWithoutData:function(c){var a=fabric.document.createElement("canvas");a.width=this.getWidth();a.height=this.getHeight();var b=new fabric.Canvas(a);b.clipTo=this.clipTo;if(this.backgroundImage){b.setBackgroundImage(this.backgroundImage.src,function(){b.renderAll();if(c){c(b)}});b.backgroundImageOpacity=this.backgroundImageOpacity;b.backgroundImageStretch=this.backgroundImageStretch}else{if(c){c(b)}}}});(function(a){var d=a.fabric||(a.fabric={}),l=d.util.object.extend,m=d.util.object.clone,c=d.util.toFixed,k=d.util.string.capitalize,p=d.util.getPointer,b=d.util.degreesToRadians,o=Array.prototype.slice;if(d.Object){return}d.Object=d.util.createClass({type:"object",includeDefaultValues:true,NUM_FRACTION_DIGITS:2,MIN_SCALE_LIMIT:0.1,stateProperties:("top left width height scaleX scaleY flipX flipY theta angle opacity cornersize fill overlayFill stroke strokeWidth fillRule borderScaleFactor transformMatrix selectable").split(" "),top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:false,flipY:false,theta:0,opacity:1,angle:0,cornersize:12,padding:0,borderColor:"rgba(102,153,255,0.75)",cornerColor:"rgba(102,153,255,0.5)",fill:"rgb(0,0,0)",fillRule:"source-over",overlayFill:null,stroke:null,strokeWidth:1,borderOpacityWhenMoving:0.4,borderScaleFactor:1,transformMatrix:null,selectable:true,hasControls:true,hasBorders:true,hasRotatingPoint:false,callSuper:function(i){var q=this.constructor.superclass.prototype[i];return(arguments.length>1)?q.apply(this,o.call(arguments,1)):q.call(this)},initialize:function(i){i&&this.setOptions(i)},setOptions:function(q){var r=this.stateProperties.length,s;while(r--){s=this.stateProperties[r];if(s in q){this.set(s,q[s])}}},transform:function(i){i.globalAlpha=this.opacity;i.translate(this.left,this.top);i.rotate(this.theta);i.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toObject:function(){var i={type:this.type,left:c(this.left,this.NUM_FRACTION_DIGITS),top:c(this.top,this.NUM_FRACTION_DIGITS),width:c(this.width,this.NUM_FRACTION_DIGITS),height:c(this.height,this.NUM_FRACTION_DIGITS),fill:this.fill,overlayFill:this.overlayFill,stroke:this.stroke,strokeWidth:this.strokeWidth,scaleX:c(this.scaleX,this.NUM_FRACTION_DIGITS),scaleY:c(this.scaleY,this.NUM_FRACTION_DIGITS),angle:c(this.getAngle(),this.NUM_FRACTION_DIGITS),flipX:this.flipX,flipY:this.flipY,opacity:c(this.opacity,this.NUM_FRACTION_DIGITS),selectable:this.selectable,hasControls:this.hasControls,hasBorders:this.hasBorders,hasRotatingPoint:this.hasRotatingPoint};if(!this.includeDefaultValues){i=this._removeDefaultValues(i)}return i},toDatalessObject:function(){return this.toObject()},getSvgStyles:function(){return["stroke: ",(this.stroke?this.stroke:"none"),"; ","stroke-width: ",(this.strokeWidth?this.strokeWidth:"0"),"; ","fill: ",(this.fill?this.fill:"none"),"; ","opacity: ",(this.opacity?this.opacity:"1"),";"].join("")},getSvgTransform:function(){var i=this.getAngle();return["translate(",c(this.left,2)," ",c(this.top,2),")",i!==0?(" rotate("+c(i,2)+")"):"",(this.scaleX===1&&this.scaleY===1)?"":(" scale("+c(this.scaleX,2)+" "+c(this.scaleY,2)+")")].join("")},_removeDefaultValues:function(q){var i=d.Object.prototype.options;if(i){this.stateProperties.forEach(function(r){if(q[r]===i[r]){delete q[r]}})}return q},isActive:function(){return !!this.active},setActive:function(i){this.active=!!i;return this},toString:function(){return"#"},set:function(q,i){var s=(q==="scaleX"||q==="scaleY")&&ir.x&&s.xr.y&&u.y=v)&&(s.d.y>=v)){continue}if((s.o.x==s.d.x)&&(s.o.x>=w)){x=s.o.x;u=v}else{z=0;y=(s.d.y-s.o.y)/(s.d.x-s.o.x);r=v-z*w;q=s.o.y-y*s.o.x;x=-(r-q)/(z-y);u=r+z*x}if(x>=w){t+=1}if(t==2){break}}return t},_getImageLines:function(r,q){return{topline:{o:r.tl,d:r.tr},rightline:{o:r.tr,d:r.br},bottomline:{o:r.br,d:r.bl},leftline:{o:r.bl,d:r.tl}}},_setCornerCoords:function(){var w=this.oCoords,r=b(45-this.getAngle()),i=Math.sqrt(2*Math.pow(this.cornersize,2))/2,x=i*Math.cos(r),q=i*Math.sin(r),v=Math.sin(this.theta),u=Math.cos(this.theta);w.tl.corner={tl:{x:w.tl.x-q,y:w.tl.y-x},tr:{x:w.tl.x+x,y:w.tl.y-q},bl:{x:w.tl.x-x,y:w.tl.y+q},br:{x:w.tl.x+q,y:w.tl.y+x}};w.tr.corner={tl:{x:w.tr.x-q,y:w.tr.y-x},tr:{x:w.tr.x+x,y:w.tr.y-q},br:{x:w.tr.x+q,y:w.tr.y+x},bl:{x:w.tr.x-x,y:w.tr.y+q}};w.bl.corner={tl:{x:w.bl.x-q,y:w.bl.y-x},bl:{x:w.bl.x-x,y:w.bl.y+q},br:{x:w.bl.x+q,y:w.bl.y+x},tr:{x:w.bl.x+x,y:w.bl.y-q}};w.br.corner={tr:{x:w.br.x+x,y:w.br.y-q},bl:{x:w.br.x-x,y:w.br.y+q},br:{x:w.br.x+q,y:w.br.y+x},tl:{x:w.br.x-q,y:w.br.y-x}};w.ml.corner={tl:{x:w.ml.x-q,y:w.ml.y-x},tr:{x:w.ml.x+x,y:w.ml.y-q},bl:{x:w.ml.x-x,y:w.ml.y+q},br:{x:w.ml.x+q,y:w.ml.y+x}};w.mt.corner={tl:{x:w.mt.x-q,y:w.mt.y-x},tr:{x:w.mt.x+x,y:w.mt.y-q},bl:{x:w.mt.x-x,y:w.mt.y+q},br:{x:w.mt.x+q,y:w.mt.y+x}};w.mr.corner={tl:{x:w.mr.x-q,y:w.mr.y-x},tr:{x:w.mr.x+x,y:w.mr.y-q},bl:{x:w.mr.x-x,y:w.mr.y+q},br:{x:w.mr.x+q,y:w.mr.y+x}};w.mb.corner={tl:{x:w.mb.x-q,y:w.mb.y-x},tr:{x:w.mb.x+x,y:w.mb.y-q},bl:{x:w.mb.x-x,y:w.mb.y+q},br:{x:w.mb.x+q,y:w.mb.y+x}};var t=40;w.mtr.corner={tl:{x:w.mtr.x-q+(v*t),y:w.mtr.y-x-(u*t)},tr:{x:w.mtr.x+x+(v*t),y:w.mtr.y-q-(u*t)},bl:{x:w.mtr.x-x+(v*t),y:w.mtr.y+q-(u*t)},br:{x:w.mtr.x+q+(v*t),y:w.mtr.y+x-(u*t)}};var s=(-t-this.currentHeight);w.mbr.corner={tl:{x:w.mbr.x-q+(v*s),y:w.mbr.y-x-(u*s)},tr:{x:w.mbr.x+x+(v*s),y:w.mbr.y-q-(u*s)},bl:{x:w.mbr.x-x+(v*s),y:w.mbr.y+q-(u*s)},br:{x:w.mbr.x+q+(v*s),y:w.mbr.y+x-(u*s)}}},toGrayscale:function(){var i=this.get("fill");if(i){this.set("overlayFill",new d.Color(i).toGrayscale().toRgb())}return this},complexity:function(){return 0},toJSON:function(){return this.toObject()},setGradientFill:function(i,q){this.set("fill",d.Gradient.forObject(this,i,q))},animate:function(q,s,i){var r=this;if(!("from" in i)){i.from=this.get(q)}if(/[+-]/.test(s.charAt(0))){s=this.get(q)+parseFloat(s)}d.util.animate({startValue:i.from,endValue:s,byValue:i.by,easing:i.easing,duration:i.duration,onChange:function(t){r.set(q,t);i.onChange&&i.onChange()},onComplete:function(){r.setCoords();i.onComplete&&i.onComplete()}})}});d.Object.prototype.rotate=d.Object.prototype.setAngle;var j=d.Object.prototype;for(var g=j.stateProperties.length;g--;){var h=j.stateProperties[g],e=h.charAt(0).toUpperCase()+h.slice(1),f="set"+e,n="get"+e;if(!j[n]){j[n]=(function(i){return new Function('return this.get("'+i+'")')})(h)}if(!j[f]){j[f]=(function(i){return new Function("value",'return this.set("'+i+'", value)')})(h)}}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),e=c.util.object.extend,d=c.Object.prototype.set,a={x1:1,x2:1,y1:1,y2:1};if(c.Line){c.warn("fabric.Line is already defined");return}c.Line=c.util.createClass(c.Object,{type:"line",initialize:function(g,f){if(!g){g=[0,0,0,0]}this.callSuper("initialize",f);this.set("x1",g[0]);this.set("y1",g[1]);this.set("x2",g[2]);this.set("y2",g[3]);this._setWidthHeight()},_setWidthHeight:function(){this.set("width",(this.x2-this.x1)||1);this.set("height",(this.y2-this.y1)||1);this.set("left",this.x1+this.width/2);this.set("top",this.y1+this.height/2)},set:function(f,g){d.call(this,f,g);if(f in a){this._setWidthHeight()}return this},_render:function(f){f.beginPath();f.moveTo(this.width===1?0:(-this.width/2),this.height===1?0:(-this.height/2));f.lineTo(this.width===1?0:(this.width/2),this.height===1?0:(this.height/2));f.lineWidth=this.strokeWidth;var g=f.strokeStyle;f.strokeStyle=f.fillStyle;f.stroke();f.strokeStyle=g},complexity:function(){return 1},toObject:function(){return e(this.callSuper("toObject"),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}});c.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" ");c.Line.fromElement=function(g,f){var i=c.parseAttributes(g,c.Line.ATTRIBUTE_NAMES);var h=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new c.Line(h,e(i,f))};c.Line.fromObject=function(f){var g=[f.x1,f.y1,f.x2,f.y2];return new c.Line(g,f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),d=Math.PI*2,e=b.util.object.extend;if(b.Circle){b.warn("fabric.Circle is already defined.");return}b.Circle=b.util.createClass(b.Object,{type:"circle",initialize:function(f){f=f||{};this.set("radius",f.radius||0);this.callSuper("initialize",f);var g=this.get("radius")*2;this.set("width",g).set("height",g)},toObject:function(){return e(this.callSuper("toObject"),{radius:this.get("radius")})},toSVG:function(){return('')},_render:function(f,g){f.beginPath();f.globalAlpha*=this.opacity;f.arc(g?this.left:0,g?this.top:0,this.radius,0,d,false);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(f){this.radius=f;this.set("width",f*2).set("height",f*2)},complexity:function(){return 1}});b.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Circle.fromElement=function(g,f){f||(f={});var h=b.parseAttributes(g,b.Circle.ATTRIBUTE_NAMES);if(!c(h)){throw Error("value of `r` attribute is required and can not be negative")}if("left" in h){h.left-=(f.width/2)||0}if("top" in h){h.top-=(f.height/2)||0}return new b.Circle(e(h,f))};function c(f){return(("radius" in f)&&(f.radius>0))}b.Circle.fromObject=function(f){return new b.Circle(f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Triangle){b.warn("fabric.Triangle is already defined");return}b.Triangle=b.util.createClass(b.Object,{type:"triangle",initialize:function(c){c=c||{};this.callSuper("initialize",c);this.set("width",c.width||100).set("height",c.height||100)},_render:function(c){var d=this.width/2,e=this.height/2;c.beginPath();c.moveTo(-d,e);c.lineTo(0,-e);c.lineTo(d,e);c.closePath();if(this.fill){c.fill()}if(this.stroke){c.stroke()}},complexity:function(){return 1},toSVG:function(){var c=this.width/2,d=this.height/2;var e=[-c+" "+d,"0 "+-d,c+" "+d].join(",");return''}});b.Triangle.fromObject=function(c){return new b.Triangle(c)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),c=Math.PI*2,d=b.util.object.extend;if(b.Ellipse){b.warn("fabric.Ellipse is already defined.");return}b.Ellipse=b.util.createClass(b.Object,{type:"ellipse",initialize:function(e){e=e||{};this.callSuper("initialize",e);this.set("rx",e.rx||0);this.set("ry",e.ry||0);this.set("width",this.get("rx")*2);this.set("height",this.get("ry")*2)},toObject:function(){return d(this.callSuper("toObject"),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,f){if(this.rx===0||this.ry===0){return}return this.callSuper("render",e,f)},_render:function(e,f){e.beginPath();e.save();e.globalAlpha*=this.opacity;e.transform(1,0,0,this.ry/this.rx,0,0);e.arc(f?this.left:0,f?this.top:0,this.rx,0,c,false);if(this.stroke){e.stroke()}if(this.fill){e.fill()}e.restore()},complexity:function(){return 1}});b.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Ellipse.fromElement=function(f,e){e||(e={});var g=b.parseAttributes(f,b.Ellipse.ATTRIBUTE_NAMES);if("left" in g){g.left-=(e.width/2)||0}if("top" in g){g.top-=(e.height/2)||0}return new b.Ellipse(d(g,e))};b.Ellipse.fromObject=function(e){return new b.Ellipse(e)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={});if(c.Rect){console.warn("fabric.Rect is already defined");return}c.Rect=c.util.createClass(c.Object,{type:"rect",options:{rx:0,ry:0},initialize:function(d){this._initStateProperties();this.callSuper("initialize",d);this._initRxRy()},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){if(this.rx&&!this.ry){this.ry=this.rx}else{if(this.ry&&!this.rx){this.rx=this.ry}}},_render:function(f){var j=this.rx||0,i=this.ry||0,d=-this.width/2,k=-this.height/2,e=this.width,g=this.height;f.beginPath();f.globalAlpha*=this.opacity;if(this.group){f.translate(this.x||0,this.y||0)}f.moveTo(d+j,k);f.lineTo(d+e-j,k);f.bezierCurveTo(d+e,k,d+e,k+i,d+e,k+i);f.lineTo(d+e,k+g-i);f.bezierCurveTo(d+e,k+g,d+e-j,k+g,d+e-j,k+g);f.lineTo(d+j,k+g);f.bezierCurveTo(d,k+g,d,k+g-i,d,k+g-i);f.lineTo(d,k+i);f.bezierCurveTo(d,k,d+j,k,d+j,k);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},_normalizeLeftTopProperties:function(d){if(d.left){this.set("left",d.left+this.getWidth()/2)}this.set("x",d.left||0);if(d.top){this.set("top",d.top+this.getHeight()/2)}this.set("y",d.top||0);return this},complexity:function(){return 1},toObject:function(){return c.util.object.extend(this.callSuper("toObject"),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return''}});c.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");function a(d){d.left=d.left||0;d.top=d.top||0;return d}c.Rect.fromElement=function(e,d){if(!e){return null}var g=c.parseAttributes(e,c.Rect.ATTRIBUTE_NAMES);g=a(g);var f=new c.Rect(c.util.object.extend((d?c.util.object.clone(d):{}),g));f._normalizeLeftTopProperties(g);return f};c.Rect.fromObject=function(d){return new c.Rect(d)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),a=c.util.toFixed;if(c.Polyline){c.warn("fabric.Polyline is already defined");return}c.Polyline=c.util.createClass(c.Object,{type:"polyline",initialize:function(e,d){d=d||{};this.set("points",e);this.callSuper("initialize",d);this._calcDimensions()},_calcDimensions:function(){return c.Polygon.prototype._calcDimensions.call(this)},toObject:function(){return c.Polygon.prototype.toObject.call(this)},toSVG:function(){var f=[];for(var e=0,d=this.points.length;e"].join("")},_render:function(f){var e;f.beginPath();for(var g=0,d=this.points.length;g"].join("")},_render:function(l){var k;l.beginPath();for(var m=0,j=this.points.length;m1){E=Math.sqrt(E);O*=E;N*=E}var R=aa/O;var Q=W/O;var D=(-W)/N;var C=(aa)/N;var H=R*M+Q*L;var q=D*M+C*L;var F=R*T+Q*S;var ab=D*T+C*S;var Z=(F-H)*(F-H)+(ab-q)*(ab-q);var U=1/Z-0.25;if(U<0){U=0}var w=Math.sqrt(U);if(P==J){w=-w}var V=0.5*(H+F)-w*(ab-q);var K=0.5*(q+ab)+w*(F-H);var v=Math.atan2(q-K,H-V);var u=Math.atan2(ab-K,F-V);var Y=u-v;if(Y<0&&P==1){Y+=2*Math.PI}else{if(Y>0&&P==0){Y-=2*Math.PI}}var B=Math.ceil(Math.abs(Y/(Math.PI*0.5+0.001)));var I=[];for(var X=0;X"},toObject:function(){var q=g(this.callSuper("toObject"),{path:this.path});if(this.sourcePath){q.sourcePath=this.sourcePath}if(this.transformMatrix){q.transformMatrix=this.transformMatrix}return q},toDatalessObject:function(){var q=this.toObject();if(this.sourcePath){q.path=this.sourcePath}delete q.sourcePath;return q},toSVG:function(){var t=[];for(var r=0,q=this.path.length;r',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var C=[],z,v,y;for(var u=0,t,q,w=this.path.length;uB){for(var r=1,x=q.length;r"];for(var l=0,j=m.length;l");return k.join("")},toString:function(){return"#"},isSameColor:function(){var j=this.getObjects()[0].get("fill");return this.getObjects().every(function(k){return k.get("fill")===j})},complexity:function(){return this.paths.reduce(function(j,k){return j+((k&&k.complexity)?k.complexity():0)},0)},toGrayscale:function(){var j=this.paths.length;while(j--){this.paths[j].toGrayscale()}return this},getObjects:function(){return this.paths}});function c(m){for(var l=0,j=m.length;l"},getObjects:function(){return this.objects},add:function(h){this._restoreObjectsState();this.objects.push(h);h.setActive(true);this._calcBounds();this._updateObjectsCoords();return this},remove:function(h){this._restoreObjectsState();f(this.objects,h);h.setActive(false);this._calcBounds();this._updateObjectsCoords();return this},size:function(){return this.getObjects().length},set:function(h,k){if(typeof k=="function"){this.set(h,k(this[h]))}else{if(h==="fill"||h==="opacity"){var j=this.objects.length;this[h]=k;while(j--){this.objects[j].set(h,k)}}else{this[h]=k}}return this},contains:function(h){return this.objects.indexOf(h)>-1},toObject:function(){return g(this.callSuper("toObject"),{objects:b(this.objects,"clone")})},render:function(j){j.save();this.transform(j);var n=Math.max(this.scaleX,this.scaleY);for(var l=0,h=this.objects.length,k;k=this.objects[l];l++){var m=k.borderScaleFactor;k.borderScaleFactor=n;k.render(j);k.borderScaleFactor=m}this.hideBorders||this.drawBorders(j);this.hideCorners||this.drawCorners(j);j.restore();this.setCoords()},item:function(h){return this.getObjects()[h]},complexity:function(){return this.getObjects().reduce(function(i,h){i+=(typeof h.complexity=="function")?h.complexity():0;return i},0)},_restoreObjectsState:function(){this.objects.forEach(this._restoreObjectState,this);return this},_restoreObjectState:function(j){var l=this.get("left"),m=this.get("top"),h=this.getAngle()*(Math.PI/180),k=j.get("originalLeft"),n=j.get("originalTop"),i=Math.cos(h)*j.get("top")+Math.sin(h)*j.get("left"),o=-Math.sin(h)*j.get("top")+Math.cos(h)*j.get("left");j.setAngle(j.getAngle()+this.getAngle());j.set("left",l+o*this.get("scaleX"));j.set("top",m+i*this.get("scaleY"));j.set("scaleX",j.get("scaleX")*this.get("scaleX"));j.set("scaleY",j.get("scaleY")*this.get("scaleY"));j.setCoords();j.hideCorners=false;j.setActive(false);j.setCoords();return this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){this._originalLeft=this.get("left");this._originalTop=this.get("top");return this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){this.forEachObject(function(h){h.setCoords()});return this},activateAllObjects:function(){return this.setActive(true)},setActive:function(h){this.forEachObject(function(i){i.setActive(h)});return this},forEachObject:e.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var j=this.getObjects(),i=j[0]?j[0].get("opacity"):1;var h=j.every(function(k){return k.get("opacity")===i});if(h){this.opacity=i}},_calcBounds:function(){var s=[],q=[],p,n,k,h,m,l,u,r=0,t=this.objects.length;for(;ri.x&&j-hi.y},toGrayscale:function(){var h=this.objects.length;while(h--){this.objects[h].toGrayscale()}}});e.Group.fromObject=function(h){return new e.Group(h.objects,h)}})(typeof exports!="undefined"?exports:this);(function(a){var b=fabric.util.object.extend;if(!a.fabric){a.fabric={}}if(a.fabric.Image){fabric.warn("fabric.Image is already defined.");return}if(!fabric.Object){fabric.warn("fabric.Object is required for fabric.Image initialization");return}fabric.Image=fabric.util.createClass(fabric.Object,{active:false,bordervisibility:false,cornervisibility:false,type:"image",filters:[],initialize:function(d,c){c||(c={});this.callSuper("initialize",c);this._initElement(d);this._originalImage=this.getElement();this._initConfig(c);if(c.filters){this.filters=c.filters;this.applyFilters()}},getElement:function(){return this._element},setElement:function(c){this._element=c;this._initConfig();return this},getOriginalSize:function(){var c=this.getElement();return{width:c.width,height:c.height}},setBorderVisibility:function(c){this._resetWidthHeight();this._adjustWidthHeightToBorders(showBorder);this.setCoords()},setCornersVisibility:function(c){this.cornervisibility=!!c},render:function(c,d){c.save();if(!d){this.transform(c)}this._render(c);if(this.active&&!d){this.drawBorders(c);this.hideCorners||this.drawCorners(c)}c.restore()},toObject:function(){return b(this.callSuper("toObject"),{src:this._originalImage.src||this._originalImage._src,filters:this.filters.concat()})},toSVG:function(){return''},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(c){this.constructor.fromObject(this.toObject(),c)},applyFilters:function(i){if(this.filters.length===0){this.setElement(this._originalImage);i&&i();return}var c=typeof Buffer!=="undefined"&&typeof window==="undefined",g=this._originalImage,e=fabric.document.createElement("canvas"),f=c?new (require("canvas").Image):fabric.document.createElement("img"),h=this;if(!e.getContext&&typeof G_vmlCanvasManager!="undefined"){G_vmlCanvasManager.initElement(e)}e.width=g.width;e.height=g.height;e.getContext("2d").drawImage(g,0,0);this.filters.forEach(function(j){j&&j.applyTo(e)});f.onload=function(){h.setElement(f);i&&i();f.onload=e=g=null};f.width=g.width;f.height=g.height;if(c){var d=e.toDataURL("image/png").replace(/data:image\/png;base64,/,"");f.src=new Buffer(d,"base64");h.setElement(f);i&&i()}else{f.src=e.toDataURL("image/png")}return this},_render:function(c){c.drawImage(this.getElement(),-this.width/2,-this.height/2,this.width,this.height)},_adjustWidthHeightToBorders:function(c){if(c){this.currentBorder=this.borderwidth;this.width+=(2*this.currentBorder);this.height+=(2*this.currentBorder)}else{this.currentBorder=0}},_resetWidthHeight:function(){var c=this.getElement();this.set("width",c.width);this.set("height",c.height)},_initElement:function(c){this.setElement(fabric.util.getById(c));fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(c){this.setOptions(c||{});this._setBorder();this._setWidthHeight()},_initFilters:function(c){if(c.filters&&c.filters.length){this.filters=c.filters.map(function(d){return fabric.Image.filters[d.type].fromObject(d)})}},_setBorder:function(){if(this.bordervisibility){this.currentBorder=this.borderwidth}else{this.currentBorder=0}},_setWidthHeight:function(){var c=2*this.currentBorder;this.width=(this.getElement().width||0)+c;this.height=(this.getElement().height||0)+c},complexity:function(){return 1}});fabric.Image.CSS_CANVAS="canvas-img";fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc;fabric.Image.fromObject=function(d,f){var c=fabric.document.createElement("img"),e=d.src;if(d.width){c.width=d.width}if(d.height){c.height=d.height}c.onload=function(){fabric.Image.prototype._initFilters.call(d,d);var g=new fabric.Image(c,d);f&&f(g);c=c.onload=null};c.src=e};fabric.Image.fromURL=function(d,f,e){var c=fabric.document.createElement("img");c.onload=function(){if(f){f(new fabric.Image(c,e))}c=c.onload=null};c.src=d};fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" ");fabric.Image.fromElement=function(d,f,c){c||(c={});var e=fabric.parseAttributes(d,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(e["xlink:href"],f,b(e,c))};fabric.Image.async=true})(typeof exports!="undefined"?exports:this);fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var a=this.get("angle");if(a>-225&&a<=-135){return -180}else{if(a>-135&&a<=-45){return -90}else{if(a>-45&&a<=45){return 0}else{if(a>45&&a<=135){return 90}else{if(a>135&&a<=225){return 180}else{if(a>225&&a<=315){return 270}else{if(a>315){return 360}}}}}}}return 0},straighten:function(){var a=this._getAngleValueForStraighten();this.setAngle(a);return this},fxStraighten:function(b){b=b||{};var c=function(){},d=b.onComplete||c,a=b.onChange||c,e=this;fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(f){e.setAngle(f);a()},onComplete:function(){e.setCoords();d()},onStart:function(){e.setActive(false)}});return this}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(a){a.straighten();this.renderAll();return this},fxStraightenObject:function(a){a.fxStraighten({onChange:this.renderAll.bind(this)});return this}});fabric.Image.filters={};fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(d){var c=d.getContext("2d"),a=c.getImageData(0,0,d.width,d.height),h=a.data,e=a.width,l=a.height,k,b,g,f;for(g=0;gh&&m>h&&o>h&&p(a-m)'},_render:function(f){var h=Cufon.textOptions||(Cufon.textOptions={});h.left=this.left;h.top=this.top;h.context=f;h.color=this.fill;var g=this._initDummyElement();this.transform(f);Cufon.replaceElement(g,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor});this.width=h.width;this.height=h.height;this._totalLineHeight=h.totalLineHeight;this._fontAscent=h.fontAscent;this._boundaries=h.boundaries;this._shadowOffsets=h.shadowOffsets;this._shadows=h.shadows||[];this.setCoords()},_initDummyElement:function(){var g=c.document.createElement("pre"),f=c.document.createElement("div");f.appendChild(g);if(typeof G_vmlCanvasManager=="undefined"){g.innerHTML=this.text}else{g.innerText=this.text.replace(/\r?\n/gi,"\r")}g.style.fontSize=this.fontSize+"px";g.style.letterSpacing="normal";return g},render:function(f,g){f.save();this._render(f);if(!g&&this.active){this.drawBorders(f);this.hideCorners||this.drawCorners(f)}f.restore()},toObject:function(){return e(this.callSuper("toObject"),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor})},toSVG:function(){var i=this.text.split(/\r?\n/),j=-this._fontAscent-((this._fontAscent/5)*this.lineHeight),g=-(this.width/2),f=(this.height/2)-(i.length*this.fontSize)-this._totalLineHeight,h=this._getSVGTextAndBg(j,g,i),k=this._getSVGShadows(j,i);f+=((this._fontAscent/5)*this.lineHeight);return['',h.textBgRects.join(""),"',k.join(""),h.textSpans.join(""),"",""].join("")},_getSVGShadows:function(h,n){var o=[],k,l,p,g,f=1;for(k=0,p=this._shadows.length;k",c.util.string.escapeXml(n[l]),"");f=1}else{f++}}}return o},_getSVGTextAndBg:function(j,h,n){var g=[],k=[],l,m,o,f=1;for(l=0,o=n.length;l",c.util.string.escapeXml(n[l]),"");f=1}else{f++}if(!this.backgroundColor){continue}k.push("')}return{textSpans:g,textBgRects:k}},_getFillAttributes:function(f){var g=f?new c.Color(f):"";if(!g||!g.getSource()||g.getAlpha()===1){return'fill="'+f+'"'}return'opacity="'+g.getAlpha()+'" fill="'+g.setAlpha(1).toRgb()+'"'},setColor:function(f){this.set("fill",f);return this},setFontsize:function(f){this.set("fontSize",f);this.setCoords();return this},getText:function(){return this.text},setText:function(f){this.set("text",f);this.setCoords();return this},set:function(f,g){if(typeof f=="object"){for(var h in f){this.set(h,f[h])}}else{this[f]=g;if(f==="fontFamily"&&this.path){this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+g+"$3")}}return this}});c.Text.fromObject=function(f){return new c.Text(f.text,d(f))};c.Text.fromElement=function(f){}})(typeof exports!="undefined"?exports:this);(function(){if(typeof document!="undefined"&&typeof window!="undefined"){return}var DOMParser=new require("xmldom").DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;function request(url,encoding,callback){var oURL=URL.parse(url),client=HTTP.createClient(80,oURL.hostname),request=client.request("GET",oURL.pathname,{host:oURL.hostname});client.addListener("error",function(err){if(err.errno===process.ECONNREFUSED){fabric.log("ECONNREFUSED: connection refused to "+client.host+":"+client.port)}else{fabric.log(err.message)}});request.end();request.on("response",function(response){var body="";if(encoding){response.setEncoding(encoding)}response.on("end",function(){callback(body)});response.on("data",function(chunk){if(response.statusCode==200){body+=chunk}})})}fabric.util.loadImage=function(url,callback){request(url,"binary",function(body){var img=new Image();img.src=new Buffer(body,"binary");img._src=url;callback(img)})};fabric.loadSVGFromURL=function(url,callback){url=url.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim();request(url,"",function(body){var doc=new DOMParser().parseFromString(body);fabric.parseSVGDocument(doc.documentElement,function(results,options){callback(results,options)})})};fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body);callback&&callback()})};fabric.Image.fromObject=function(object,callback){fabric.util.loadImage(object.src,function(img){var oImg=new fabric.Image(img);oImg._initConfig(object);oImg._initFilters(object);callback(oImg)})};fabric.createCanvasForNode=function(width,height){var canvasEl=fabric.document.createElement("canvas"),nodeCanvas=new Canvas(width||600,height||600);canvasEl.style={};canvasEl.width=nodeCanvas.width;canvasEl.height=nodeCanvas.height;var canvas=fabric.Canvas||fabric.StaticCanvas;var fabricCanvas=new canvas(canvasEl);fabricCanvas.contextContainer=nodeCanvas.getContext("2d");fabricCanvas.nodeCanvas=nodeCanvas;return fabricCanvas};fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()};if(fabric.Canvas){fabric.Canvas.prototype.createPNGStream}var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(width){origSetWidth.call(this);this.nodeCanvas.width=width;return this};if(fabric.Canvas){fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth}var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(height){origSetHeight.call(this);this.nodeCanvas.height=height;return this};if(fabric.Canvas){fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight}})(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index fa0f512c54c458c0447b679f3c42537deb245f24..86ae49ba98d5f7da40f86383edce78f1fa15956d 100644 GIT binary patch delta 34261 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

A}2xczg*5*I24jkrGLN+%2h#T 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 delta 33991 zcmV(zK<2-NvjT{*0tO$82nc|Nu?EK!f1+<6D_H}^soJmJLmsiq&Dqm)^f@h7(JmJ`E%tU#;&Yd@v0@{W@@7KVd#KL- zNDEe7cS15v5Mc^PLMM_Sj*k;P3lW__GeOplbkiA$u-#oz{}FaUB=`uD-b)hpe|Yr? zWdZ~;QT)_=LBp=JlLUP2e3V)-p;dq<7;#tGd3eS5yc{~MEP#x>Ln9ax<={Pa-!u7} z8DhNCW-B)xG+d>Revc|n-q;z8_yhdEg8z@j!hH@bfhL*c5(NoPiZE4>#m1cFz8(x< z3(kL3WX=YS1RX@!{e_+@hBOQTf0$47xtxYDJpKgp5DLHkKk4&!7;@R>Ev*y# zK%1o)=9^o}T|>D`Y?Zd(k~fU)d2@W`ZO-T$S$J|M3!)t{dELz17hx*so|*14c_M+^jI73q6>6J@7Ue8$?vUz`uyzCvwABMxPHp zbzg8}Tm1E zgwm(b$t?|v3fQDcLZ(7>tHf-+ysz&F-*pK-q@fO^Th#K$tkqMm2-UT?3l)w~YGfWQ z`1%?M6MNfkH(X*J>n#P-!C8~~nSaISIvnr?(2L^K9rLtzG#nfPf14#Nu{vKj6!{w zR|5lZaL5-l(S_&6z@bYHrYE$LFrP>pUvP9Bc?Y_zhVSqX@4$V9D!}q_$Z?ZY3NHE#R~{T4;Yjqi2;fn4FlR&Mn*~w@lXrobWW_|n zqkOT*GXST4#4*X2O`n##$Abf2x7#TauE+e%bshj;Mb2?i$n{eJIugQ%+z77lcW_=& zu!|EM&f-YW8+p*&Q~+erE&@lTe{GUfbqcSMc;&TSuEn1TRKp}+SsqxZuUP_Dp=>2cs)WyhhABk%1Pix= zI8Ax^hrk5&#zVG?AEVb0KV=dii{XSRu-Y5k>>v?#__3<=@YHaVvt|hB&7?z`UV!dV z{HS0_2j|M9S7@fkZM9YH96qRM>F@!xrK|{HiqMWte=43H10M@yJXK^o)nq)J03Bx) zGpY{{SXI_RVjejB6k5}7ZRt2!KjMs17*mO#U@bO%n7~F_t8+zn;lq>g9r2*Z9no2j zNSGBifkJT@{{n*RVNz#J!DwLZ@9BomfYlMhKR?I{?O_|cop81eW2l!DS)*`T;EmFK zyiqtUe^>>=T(U>u)ZmXeCJPI>u;ewAO`-{!+zgjdZvh#QmHS6cQaxo@coxkU`3yIv z)n=G893?&tb4CMFO2aXFL|RM6Tp)JFZHr~MGdutBF>RO@KjR#1tQ{Z5+ievo0hDdG zA1&8Sxk>n0@Uz?hpKf+zV~^PhWbErPQ=*4sf3>a0Rognb^S1tpEtu@tfi^`&!J~iKpln+~ND00f$ zSCp_`L2sq@%<1^e#vdlBT;HWUyLj7>Zq#;ndaIRMwzF6xZQJ|0QwCk^)@nG-%$-5t zf9*pBI$Bm8TujzIg7c}~Y&`gb;8T+|Q$Q`uV4v@e6t;992Hcg8B<#y2#S>`Hbu!1t zDlBg&X4Dni!kBCZlF}B5wV)u>{F1DsX5L&dR*S*yDA;q5lr1 zYO)|SPhp>Pq+amZ{ga=H1^7%Z6@NY#e+KY_7k%5X;HYCum*3 z>%Gb|X~*r>cNLkT(SEJgH{=HUjiW;~UU98NgV5*!%u=K9gJNhhbb4%j4m8@D_eN0` z&g)s+o8|L-u&DR)tcCfU?d{$=8YtTWnPZAZkS>>_VMmO@Rh-W#^pU#%>PLfcf0-`+ z_2Jcp$8KKV@4~dANf;G>a(rDO+Z6h{nPCux-;Y_#_Xf>_xtxWOWv;AQqWoHNgXpln$vgH$RLFd(_%1vxsS&gNIlH%2?A?V;R1 zW0&hkcyl%L%*l#S{03zkL^7}H5&8vJ*2{l z!Z>R(fY;d)W;o+VBufn{(x4om23=gNa=IyyH@N~-CQjpZlwOpI4J%t8f2d$FCH?yq z`A%Mw8}fv_C$IRaI->4(rGH1CK2(i9K^30RgI-z6_=LV@W>Z)Q{bxcKzumg!MCNUv zwZ2Sy-*exS*M@f>>hXoTiCk%IKIdC6jGiupG9LlFupEoARHf3tT$x@_tZdo={{B0$ z)ZZZhc;WHcU64%RV?mz;e;MGUs4-pKQ6st7r!mE&5^_;p`WTWeWazp0N4)|{cW z%-EdX6m_YWckJtOk1qA{XLPCGJ+A=OCHLQe6}Y%VLzU!0Xk$Oqg`tdnPBY_eK-J{B zkEA-1d^A*=1HRJE>BqwXdwNM9@f$2>{NXxyE+xB<@L15XCWemne@dxXgXbmfsxJ5v z@;}Qab@G)2Pis@Bdv!)Pp1ku~7WO{vHMGFSuQIT_fd5~$k!4M03$@$ISf{K>W?n#Moh$?Hqk2b7 zz!C*iJZY1iQV1fck{oiMq`7r3ai;=(gtLjAp*sQO0bk2P6Pdk~3Si@Qf1z5<$dd9_H6&s}O66UVV!HkB z%3UM;`})SbLg&Td7JAn;D!Z4+eBGT#vlWZOxXIbG5oaPKT`t(Nn?_&0MCKi!xd^^d zOvV_XsM;vp!=TL7UXqy}yN4lK5dFG661ICCPv73J?zatce|6Vwv|4p``|`NDy9*r< zkoBj0f9UAJ^&c7Vepm&nmy0+Rv;o;r7CCQkEyBPA+F?vbkM#c;bX-iY?yA?};`5Yn#X0;1zEh|`9IKKwNvfrE? z9{sm*Ww7h&rjmn!?xk<_VmiujJsP=QU$zHD4Yj; zl$&@MS&{*z=`Z)#GIoyq6!&EfjMl^A;fSp4R%b|gW+<8Ze4fU#*|$IflU8N5TE;JarqFAUe^6D3 zM@vZ>^I4CMIUz6$k3B`Xs*Y1S49whqG@M1z{3^c;`!R?}v}@Yc- zENEn9v0e2{41>m2UdZqo(OzJ~r;yI@O-EKX4w>PJh77AkC-^>P!!iOMu_%4)#4hHD zQ`Ot-$fV90TAU?9{2Axf45ul$^|qX@DA@+@Njo>Bk&kZ{L(o=<&}t5baKLM zkLcXc)Mv{Ps}*y*WRWMpkUg<7YpE-kM;*3ZV;~Hut21J>U{bSI!$0oPVbkM}b@q%U z-S`BCf{sT;`Ve;KsOH--QXQYrs0iYKLTd9gZYkzFsv9+t;YP|B431$t05udq4K+}M_OOF;Jqv}&Ascqc zP(r2=SOp>QF0*fC7+LbKe`BmxyT1=*1;VN>(yN=DrG1)bQ5jH7{ZGJoE0`QG8|KPo z7^e%o;$NMM1pI_fwtTL6(D zx<{2~60o8pY92-+x@%tCU3@e!J00$kkAV9AfSoPX2k4H+r{b5yf2vOt+4hj5hu>5! zZ(w;Fe`h-LkL5j#A?@?(Y8d2!N31k_NYUpC&%d+-r9-u_s2I_ zvMrg)y1*At&z5Cr;e_V?XuBP0DNqv!CFqI+c%(dS0JPyLo~p1|TKE@d3R>g%8`SHp zVNrk~90(DAlfkjee?^UQdVN`p`u`Wi$9DtxxEfxQ>0nIHCZ4SFan$N!u&7oKgFv;y zU5TMER!WaV`sC^3y2BXu?S6+w@FV-`nX}nbNa(sCee^sF5FT!sZuo6>fTWk^s5UA? zf#@xN+hP`H-lj5nUz|)GG!0`|t{*l#{vn3z)fp=NH-e-#~+u&*oBeYe444680p zL*w9d&@f`5xgOq4_RQsDHi}o6Wt3&3j^7t?mX8V{IZRYn0q4{l;?%-y8W=M^FKcF7Y=8)BL@oBWa~-SmKCP0{EJ^BGQ=$11$^__sTvPg#l+ zjJn4n-`cC@e_KgNCHHJ(vBQOQORBs36=l1?%zB$W8M=kOJO^0_C1A>n$Keqihm2cQ zfoKO63oSIsEbJ1Hcqctn*>%}hWLkX^p<1>VF5F@do+tHK|EytCSJ&0!T80?vu$VNY(#Hw4XYVq;JLrBy><*#ZB{~c*3GwTA}yHz-Ws=x_0y&wuc#{s@}*-JDR-wOeOKQvb0*jSmv!paQs#<;4_8NH#mGx?Dez*YQ6%K4El zATnVr2A&8*ORSaP+Y_kMX|yvlPz?@C5HIV~q1-1!>)_+or^jr-{lfm~8x(Zp&iUNj zRBxw><7P#cWJYhy4~Hy4DqbGXf+Y@gMdgPgf7&bCW(odsVYff%vXu#{g5D6(OX6)S5tfvRM@HRX&kc(crWKq=0i7;nosG~WVmD{=D zhb)YvR>R-+tiuPrq~cXE_A83|UNEkxP%%KWj?!{vR(}hqzT~q#ryx9fK@XbbUh(%QF#FyHe}xr_ zrLg589?&4h*F_A~mR=yz`3byYPCLaweKWFZ*el*1(TczVk_#|`M#!4k+2P!(f7S4p zK_yq@f}(jqB+GTVfOBtw>vAn~U^_Agl3H!u5E~E38Fte!CWr$#C+i}Bfo_H?k#`kD zxr|FjRT#KK1Bq&n4HXiFL&KuYF~q+;qY6lD?o>YITX|;{SlW2JfyrNUa8>}$4FhKg z8x?o?3Wp+L6|ZWSFBwi%j5|d|f1v&x@BoNg6@4=}3eoT|iD)ANC(=(e`onepb;A(I!CR}T#~Y5E@<#Z^8ne+}ZgVi4C= zgSfT^0Zr*Kz>6^imW3nGPT<84eFC$l*Pf;_vj+S6XEd+X)Fbec_M1fgOd@v|OnitraPu9t5$)al{uB6DH87AL}G)RPOVRM zi4rn|icg)u@l!da+M?|Uf2SYEJEYx7AIK^)q9eQZ(XeEjd z&QMa|*0hW{*~kVrthIL55!XYwWWWmz&_eBOx9kOAWEN}3JC%c(aPV0&wK%y`UA*P! zLXOwU0u1;;u}8&DCc*@Ci_=y=UO666P|>?|W|p2(8nGbs7s?2|f3r~}EN?&VdH*4f zZpeU!>f2u-zZk*YftjbY&9#y~Jq*+7D8vs%x$q+Zf+xy??f>szo(Q&Y@QShiqU=uS z^vqmTxyFS7CV{G3def%hv4I!#4oXR4%C`0q zp3)w3Ho!R=f16)1*^Ku_D`ox$spY#lR(_YMsi{%Zj9QFl(9buC50lFsM>%N@Qk^3B z4d4Z3${PlPFc7IuTz+dkB@5solAX7!_zK)D61?`5PvI~G^2h^qGAEt!shQGpUgh84 zmrB@)E$1V1VJVj@rMH}OTsh^E#blUFz11^x*VU6ae`(|s9%7NX8x{2sg=}gbI+nKv zPJ4>w89s1_iTI<1&vZ^OJ~C^N`9vBEsE~tfz7B3}O7On|Ka*U_p#B1w7LW#ZvT!U< ziuY!PEZ9@(oi3B?w=E^G4|5r~?I%Obk=sr*2N>UY`hV0td4C$ml3zuhB+3jlr|slr z(3qzSe?>Z7{54&YAU zj83X`W7DMKg}?9xKr6FAS=0Hok4JqHG(|Ovu@pGM0GS9)(7E1#B<=L_eM7WNQB=G> zNq2mvP0mab5}W%_EKZYd71e#(`dZkip4d0VfA=%3vG;h*`Oz2Kj{;N~<$Xgs>h3}Lodk-*K<FDJjW@wilp!(z=Le9xLm3pt$KTc1MzI^#;IqL#P ze+ET4ljYU8`8TswUsmgzvm(%Jb|Yl_Y-g>n2()NcDN z*6`73$)Ctmv(S45k!YB*FsIK|4v1;Qe@fuPy0ptDufmZHfCUN7PMZsA>;>3bBNZ5( zAvy*{v6z^f{8h+5e)#+aPGUU#FD!_xbP56;LA}uRsBl?Y`NA!B;`7UBKvJ2tW##tv zwt~uBmH8Cthc*CUd0ZnJIP`{!{}^TjA*lfGJU?Fys1WFolFSb54m)H=XkK61f88(H zotoEmN}ckddB2^7t0+LbQ)xOT@KggM+lNrKrnA$~Wz?Fb4i%t~L5yuzDjk6it!fz< z_a3Qcx}x8TAnlIVsdZ5-5TVnk=g+LHSzTV+PQ`0-jOpgj9<6M;x^ZE@rs`YjWIE&W z*)=ZcVpZuQ4L66@}kSZtW&()R6|*rK#M5qTF4`T|R>R zcE!L@0Tft%h7_X|DLST*)1mP0rJDt4*P98Jt*)r7NxN)?aH3}@I4qnAf1D2ArZc-y zk%KYYl{XvdC-bRMnaa0(YBUDkTmT<0?YQ=D@F4Uzh$4`8RdtGf@CpU#I)@istIE znyuZGd5Es;Vp;Gp?OaE=TR;(Iocfh+YFyraH$qxQj`-##k(P7of9mct@ro7aD81qw z<8soW0-$F+8;IO|?KrXlM%Nyvw!{K(tXg`74fE?{h`3bHqwATw($M&MVM1fX zwTSqP>fn(Crmu;HrSFCKK3v{R+ye&9puelI1~v7gMK zv57(~BJK>_BFYz0==HHEQz)0&xnw3m*sWrB+zy;x$uf55q3zFtC4pkUF`(;okpc-IQ> z3Y>Q-CfEdrH+Yi(&hl+5faZ;^>A+thSE=q&Wu0mF*^pJVR9Se@bzai8y`npH^c-~A zTlLp>=z(XHy!YSRGpD_DXNHe1IK^reZY(3 z6VLvj^);GK`vc&2F{$;QiiSUc?L^}^=5?fEv5Mw}fJkX%Q#vx`6;Hu2a%vU}Nv|=f z(O(O{oISDu$t^+l+03)-w%eqRi2eC5#s>hN(27+DBuwXoKEn@tN;=ct@7KlB|got z)7EI-iSp1S_|sU-oCiFoGV}O-xw|~~6|Fx7SvS@FIbmJOA(dj4yJhRaDj(4AJNiAM zf8SmDU15HI4 zv$;1*@5IVm+K3Fy>g)Nrc_%-oon5GHwYYwl>=aaR5=zv1&@N^7EhU(Xj--0nQG#w6 zchDYom`GYX>0Voqg^N_}dW(Mce{DDEEwVTfY^}v467$|#RB;AdK6lYt_32&cScsbd zoo4Ns=|aMB^Uw zOyRdTuExk!0=sn(M$n0U;8bW>D!jm3bOlH?noh3d3vMnaOBiM)&3yAZe|N_A*uESn z!c>luo4NI7N{>Qs+eD8_<(6w~CSHW|g%=2${;Sf=RJpOI^rn zXW3c_B@JM(XyWdAaSxcK>Wn{QJKXQW_V%vXUjFEY2~|H?T@Rf5R5Gx~MU_)ghlULA z0k9CT4a{v)gIGDxJA6_-It-POb?AXWlU@ z(d6ZZmwPc+(X;NFty<4rz;MdJ_!W;}z?0q@PKRq}B~;w}+%L7yN@q26K@6jG1u#O8 zviJ4AUpl*2KVA#miUWc37LyWznzSn_~QLy4(%N6$yMzlOe6|B5MC=A%fY|02-)hy`Y zP*i$}D`1TBuy|NZf8<0(%XbDBfvir|D$j+Q($Ybf!>bI)55P2~08*(|`A#QdFD81U zyiHf4w?uJySW~=I97O09cOlO*pZ}{Xy{qRW0}`+H)ka&14};NkFb*GXCgW8+xu(Bp z$nGH=k4HC2_%KCvEQ%SS6&L5nn%LBz&*!)JjLGzxIV0yw^< zR7bzv-nMbp8B%bxcrJNQ--4=t_*ox%e_e5BaG2XRP7QT6&Qz;a9~kY0eac8p4@L}RyM6!;AVJ-{HJ|mjFr=Zw zUr5zICw&v*9cLz+u)_>9ZaaY!(aZMh#GUHzIxVL89D~emMy#2Ppe;4jM?h4@U%(y$peJhMU-*cy~ zD<+(}zFoJ{tO1M@Xkgcfv5%dWp4i@ie-nB+e#}$NDQ|)=* zpnV4D7)BSkT`K3-bQVeay)!h}JHdyP@-E4DmN ziHiWHdoHQtT7cMMS}w<(Ay03tAT#?`@&mYECpRd$_{Zr94e~`+?sR)QmXd2J@uux< zof%arkf(Y|=<49ZDR&=;ER<(a_oD+sl!Aj~e>;s)_w3G#gAe;({``0-cXa!#CxT~v zr__E^8)2_=)#6+W)HKcS70hMr?h12XgNN;cogx^(=nOwd;K&7NsKQ=HE31xE;&n0=CQ13*= zLrnJ5^M=(dGpuH6SS5d9Boz&oyuz5Cy`)A-f6UGvBk=?yVLi!K4Vs9sQ%;+~rk!urJ(;{wVUOFcFSlT&|sIlpn?Y>6spn{6DoMWp+Pn%ck~%15Q)=6jM@ z>H@@t=Z?$Xr8>Tog$Rpu9ws-oHop*QO_WI87KGkqFDf{F1YW4GP1pr|shbikFW_$^ zlbedLS+5MO8XBl_XZP-T59&>Ge~d1vuYhT~Qj(>ScU4_B9viDKbIyR&>N^fm6fm~cF96E(h4(Vup^d67~|fs51TSd zGfRY~59J|riKCTum~jNx%?h}cOkRy(HmlfANcH8II*)ayT4Y?V)6QF?uC7zxt`IcQV_9@^q)MP4>5S7N~fhxv>aIW@cX z(~mXfkOhi%8%`@kdx>Z->ER)Z$Q(CopEPjP)pvU22uj*l414Gj1_*Y?B@7R2JA5~> zjqu%MdKkFj8fB>`Q@$f;fAYl8>1b{X#$8C`&WET_4!;dW2UK(@iVj85p(r}c7Htei zeZd@={GkscG0fQ73C(-P5UnSgDhI$m24&U7nC!?=YY+nCiF22xdSC!OJn&Exg`p8` z#HUaxr~#Su9*aOL1->%CIqxpu>Hc>U?utZSYd(p%qA&ySI%T!%e?rM?v3<4MW*M7BWafW+k>WC!3tm_PMm8 zb*?1|&J9TdGM!YV{R{SXGWBj-0yo8Ojgl>YOj7V$iV>5BjRlP7o8yi~|ESnRtFjhE zQ0uj6^5@>Ls^j_$f1%7ZFBG|#UeKbz$_v*F7E%K!rO@DWi|EU8P+c;f1A;4uG97-K z1Cy4@DxiS`OHlxZS4!I+qTo=^Jn61=D> z65cFeM-&i0QotJn{*45Gq<}YO0dHgr!s(6960!|*$A*os!o!ZDF2=5S?8+(euIKMr z$VO|dQOZ#3f3gz6tOz_Y#v(n$wXAhm3d;c>JfrK))aT}$N3wwo+UKxzVTOg_* ziOy|_+@a156l;Z4ID|ZIN${^6WQ0f0bI;e?n4j6kf6lANXy_veDT{M|p5D#O#78$Z z0E9g6o=!_>o|H1;DV({ zU^R0JaSv=lw#p;y}Qe+hFE;!=>YXXKZ8Dn>an53!*y@Is%@`B5!KPOV0s|LQwlxV;_jc#Z9C2&4bg z9aI3gq6?jYZJ8}5|5#>^k`YYK;9$kdp{@yoqWL$kg(I#-72@}ktu$_Z(=_tDI%)OQ zjf(6;DT7f!>|+MiM}O*%$06NTiHU#pIJG|Ve>W!2TxaEhadQn}8jnqrg8bB0Zw+@M zZa07Lg@|jVQI&rkLh|xb-12bS8^_-iSvx6 zi)QCqZx|fk*mlESq-^^owEc2t+`5!)kKx36*=K0p!bZO^KaKk^)CPrpk0(ATwiTrt ze;=5QkMfO=9&dc~WaH7Ty?-5#joEt5Xq)9N2x+Sd&=g)sn@xapH%IyvEa))|Y3LF& zI)>;gjK195;)q@29N&;0u`5g;ZAwQkHIP2sls<-I)ip{!Zz5uAlJ4wF+1c5Ii%kim zO$kGlfHwT{belX*x5@wQwnsNfx&4k}e+xFc>LWYd3$-7Gv(JY#-h0E zr`dER9>S;?u?bR`c0UT4+g>(DYJ1{K_n?|kk;s`Gg*Y_nJ%}uqn`xh7G`fv5D9qIs z&y;xg%0D;pO#jW15g(L=lszC|yZ~7+DAL4ba6hUn}^Lt1Jph&N6@vX=kptc zniy&{w2QF1gST$5;Y3iKY-M^O!+$|PSE;?RKe+t&aFjWz@!cR-Eg*g@YZI&5#D%p9 zy%-twW%$T@K&Ilns4o>Ms7&7wZwA8L!h25>0!U9XHPiDD4hwUt;b(ph}oHweo zE%BdYF%3fg@LVew^+6a=ZDbRGNBN)PzJ#rfBuVtI$hG^Re+s39pu1;wB+C9U*xjCK z+r2h@cxl$7TLn5$l>`!?{p~M~ysJuJchBz3*G82Yd1ppOM8?sFliEZTMFAZ7c-iZp zN*|#Z!Xe`vatAb6j`=I?W0d3f)8k$*!CBXgRs=Y)=;O$&@q1R*f!0_tU*5$uF^157Z>4%bLOLeH={O#bDUb?#&LwJn zSodbzRQl4*$b)XHnzCTpx_qLL95i1xEheW$dIMuQf9u%H#;dVMjCiB9UwB7; zk6}=r(jhYia(wdaJ0tTISa7x|q#K5sp{e5#^ZKUGA1J9w14J6SD5ZRUkKbB|L7Y-9 z0Q*Sh)=fvM!SyOA2bT?7ouC4G>sffwnTC9YfBuC|j)8{}2R^MA?c~tLvu;ii7Ao?4 zSO6#j`mEX8UcO5#`YB(@3hPl=9xg~KY(?!#Ov)Pu_f0!NpZx_hYFUm2hv-rc8E~@a zFJr)Ig$V2iR?{wlICwR| zf8}e3Fyvdr0V%quovEb*R=SBPm-o3^>m`dp_$^PfBhjbxwB&;g$~I8a(PV-DPivXoRirs?PY3~ z2T6*0b38H7YjjY5zko78{@5iq@`U>YtM({cvRKI!2=vAA!r8nkz?wHPsLnOACB185e*-xMy$NhFHv73VchIPuqe{Mv%?+U7<6qZJ{I^ zgcw4UT_7(c_m_Puy$DQ0K{N2X99(>DpV65sG)o%zz{jeX5FYtcRMjO55vOs{Y>SBz zD;o3?s#h{L0y2Fj-j8fI+BY1yf4#D3=?9=dio8t@FkjyjXAo3M@bX2 z+hTx6H=yTW+UEmed1?ZugTwKx(;kz|)NkD8ne`ZpIcKaAQ7bbgMSx;U&lzt#r3Rd= zw4W`2V-9K2r{;p@hudkZT9txh(g2s6P~)kqi=CZk6WTkl<+9MvjnpQgf2$(A6gdFa zQ}q_y>D0uj!rQB266x|TtL;Nd!ZLTR{dsbDahfDuzmXj%R?4zn8@GI*@PGa%JZLl; z`$NTFGrDaL;0QPQa@fvVLXKx2~v5F;(g%YEFoHCj_Zdm?#fXIz8E&iXZU{$<{%hvj$f6_XNuyhHPp#61S}@aK8|P*BJZZ$(fQUUaD;z5~<#xlUj>(VF_IBOB6xB`cX+19%G^0agG?vk7ozNWF~|KZ`}@cD@5%@> z1En@4mMrBz7*QyIf45``8(LX#B15?f(9&cR>Y; z1*65{y1Bo9dwW~I{iZ%khx=zA_7QCV!>f}Tl&R@5P{}@2e$c4*7Ckn*#I^#l3w@ks zaY0>&NJanq9Hsq%ZlmCsAS6rH zl>^XbF|a%#0RQ}GpT_xo*Vv0|I4ssGDL?skk(`HL5(^Kj zG5U>Fe-*v3KfC7Rq0z1>09 zPuH`oU(9ZYC9gr90xnSmli4!s_b^(p5_3%7V$vxjMXfDm5JP%p-a-Znu6a3qeQmtmSpitUf+54dyM9s>5MUmbW3F2%sUg~O4**p(Qv}DBntG7R$efmuN z$?m(p&3=%7 zwnlMyeLlaa!avmm{&RQ{?SIq4RKQo9E`J>2!@}kYZVjuyLl)+Uj000=Iaze_B{~C7 ze5HT%6+U4Zd=ZaHYrAjV8!u=agUUSR3gh`*S>_~Lx0F}4DTN~MD{01XZ{3PgsZW#C?x(G1 zc+hBw3jK5V-FKqWsDBd$2J+=Be+5Fth9@ZVj|Y#|O|0Z_AO>l_f10*$wS5ekkr<^$ zE8i~m!~0)eefWIx^M{Y`KQsfrjn$Vtw1N2W{_Obd&HHy64n0?8qjr)4@cVaX$8X+Y zB|jd2{MeNEu-4U2al&7`{L7>aEv}vVb3DWXak`yhjp(RTv(qFtR9+$x@L)T0p2ee{=VMjX?9cVi~7( zmVA*5$NFdFT&Pj=+j>jLiiH!*F=xmzyE2B%QI#?ezFO;OiM~-u=jen&`}V>Jn@%#A zMBQ|Ow$WtPO9qK8xLcxw&24v~o}$9nWtiO_r}cY^O}ybp=0*73tm23@f^H?Z0Cw`vz6pWGb5ap0ky%+e{2Md3KY{i=5b zCNp?y^bTBJf1h~s2o>G%cFf}2I*GRb(O>WEgbS%CkrU!a5;ba?UHXmZMgVK{#yqV* z&W6D8VEx+B#|<#ig$uAvJHb~8xIuredC`9EMDX>Y&cqFziCgDPymg*3Zc8o#lf30F zDBQyvYlkXC?d%?!I21l(cpn)ONYa#+jc~ zch&T*480SSlkm;5-X#`1|s5EMQdX91anr^JaM)>BdItp zQVJ#*x&YO&*xJbr3+=WK1PF!?vRdggQBFPLpzYm}1kKZXqqp&+lf?n7{*`_CvabAA z))x`1g8zg5d@AqH`cLc+1L+`S+m~P>iL)o~hWstCv42$w`5Iu3Aa@NYEmzNv7-9z% z&LvMiNCf$L3jHABU*+A1J3RbLI{ZsG{EYPB=2oI-6j5Oy%^4G=NQ%gN{RBl%(yI^!g`Aj=R zrzSGJmb-PIR~tMj(-6)%dce)dHSA-v-~70UdUlUEG%W+8v4B_ zFWgtERb>Kx&#bAa2GSQom$0R;1PWxG*U`=!;Fvtzgl99XS`?P$D9x5(j{jPdD=}7Y zG&y+vdQ({DqH_@l*gjsas8WH4`W3ifSe9M3&$1vQnU( z%4%$#NR`I7l|W?Yjf>i?2;e71>Z{%0Ph(uVjt^R^I6GfsFu`LCDM{faRSiEvv6U=- zC(CY5;uEbKiD>o&uhzGf2K@g=`hPcYBu+~kr_pMhM6D&+qOpu{DVMn9aH#Aj9SB6> zORU~9L%6Mmi`s3pe;8Q?1UJ<%t=*`^Cs~VPpc(5PpwA_VNj#$6I!(eQ$;v2n6l2V~ zS14w|2b

9x{6bX|3!oXNn^7%74=3*;rzG@lQm}8P>+`{!1X%w+=w>Lw~Ldh~LbT z%HLAAJ~BV_8;0DnzCU?_$!VB`D3Pg=#HMykq|RYfrPNi8B|VT#^vYp`ECv>NnTJpF zz^z;JD4@g$&+broZ1?ct;g;u35}1II_}AWY{|4)@yYB*j(!iexSd#&F6o4Y&zu!bXCsg=Y4}Uj!+uO1bd*vTn_Zw&3Nj|5<9M}b>s?m|Qg9>K$3g6I* z*^7I_CPJ`_X5pO!m3km8-5T$6q=W+z-qw~;HDkh9GAS(7%F{3fqB|uaOYM?c99F>j zF3P2VQrNdBkh--Tj#JCU$_QYdxo6J`7~7ql@LBrsU~_CYD0O}U4}VM@T>2ffHA3`; zTjHa~!~&h1FE324VX~H*$?~f8bV#JYqbknL<;h@~P z`EUf(9ioHUA#(N<+-b&d#mng7;V!S;u5*pR-?AvalON>V?tlKyXW&|=Or_mPTk=z5 ze{xV_B6^C!npfs3QAM5~@JgQM`Onj0R`V2_w>ifW`x2jRKHU^NNNt3{R+hejkOqWH zahqdDo!MbP0J3mqNg#jZe|59VjJzx%2I>Nu~^P^r|5%n zw^i=#NWr}^@>LvAhVnnfu*O>udr&_aCF5R^t0KwJ6+5OX0yVg>=+4f&q$if~D_yxqRCW-V6J-YA_Yd>9>%}vW z0pF!N-|l3y@p91*lnB%rddgp{VZiDJ8zdX0SGRAyb{xvuc1JjTbWj@7uQYMK5S2CIv_)vPp16RIFWTfOv z677`Kv9qOdDI09M|MMlM12Y;nP_idJ{uAN$$QqU8prc5_SPMNi# zAGfegl@Bye`6gdik%g`6$i2kOz_K8FlA&4aGAyYHgN7=yri&b0q4#PG;D}F?x>%q+ zS~JLb_oApPkW55Msj6Gq_zDWxk9mK7{oCi$pFa>I+WfB3 z5PyT!NwFi7j_3kaA9o)f?l&?Fh22Gg5k*XZ`iF;}XmbiFg5oy^ZE#(2PLl~Lncb6S zFuAB`c5q)xDPJUD2%M~Ttm8OE^p@MylJ4!9GkK zM@O%RNZ%>zWv|vwJW9$5U#42*5 zbW!})X;dwK(Nqr9%WkJ|A~$~k1)$4o#5=_veAgu7#K!1c6 zL)jZ`WCe2{h6x3Ct}EA^_^saRoox&ws#YJh^D~`nWwR^xGKOPM%o{ zaW4&Ar=(~jtz5}dNYLc{aPBY@RDZ1AZC@t~dQMaYFDSHxa!FuZqF+b%!|)n94Lgt6 zb8XQo<1=q*W74MsE=6j2VXn`ShH1%KT{P6>L+ zn<1V^&uOxaGstv@+>%DS4kI85{XB)leh?gEpZW~AtTyU}1n1oQ%6m+?z`ayxV=xS_ zu=4`Q1~~wkvT>#YIlXS0TrXg5FD0PN$7x4*KQIvV182?sTwK!#=AJNa=0BV=MLUNH zHjf6gcz)iv*c2=g1wESCL4S|@sv>t|6s)5;aB>-aQ}%*|-fZ+r;{y{SifGg25H^vS zjbYfWPXJe;A0q%$h}lQTy<&vypx!S+yd2M*ZcPWn<}s_a{N3%SI>9)4Ip<8>qSzEU zIMMY3Q*@)K)h+WOmMgCuh~-Ks2V%JrI)=gk!{+n~C>3u`?0clIB7ed&<{uIS0AG9qx z+6T;R+INBOrbCx4dhC}O>b$2@xiK~+{MSx@%rB~=h9MvYK0YX|cFYcmGmSxW}& zMqT?xp5fcsVgxvx+zPmzeE*riu1FumukklO=2k4dD1!O0gz_DF1SYGt*KK?*tt^zz#@jY5 z!m46~+CfAfvtXZAfG4yq@}xw)p@iuTrQCd=w3-hDjenp?Tp<1aB!9DZazo5?oGcm{ zq?j=^4-Un3yVpbQ(uU~dTwfeC4#mND-w1Sk(Ww9RyC{%_%YhIEXF>VCK-WH;g7eZ0 zILKZN=P?l0Y;rg(o=f|;a+1NFlh^F8qyChQkznb+6}iaqNq;qbbzr#$-&ogqjZdS(aYu6f6Er~N`;i6SJlbn8_PPG?k#%Hd?#Cy^)LB&bs<*BgI3hto=DH*OM1b?wRD(iMry zY=7`iTfiBOb&bbP;(MZPV%39^;wmw^!WTf>)@Y_Wyv=%18K`=5; ze&=zG0&r3{k9uL2#0m@VoJ>6Zk}pV}?#Wu60U4tC6JFRK&ES9v1Q(Xu zSsrtNZIwa=-bPfRRRe>y;M%k>!(l|4+!hMJ6u2c5banay$N-7Yf@&8SpF{LV7(^HX z(>_qBU!?Fm9T`$MdJzOb`7m`untw&?$ma#zMXU`Hp zSObfy@|7E}kwNt;)JPv@?s-5>S+gS&^>iD~Eo0h;hq-Oay0eoUQ9T|hD_s-FP32`; zVFBlM1Q@M0<=?ugz$vt>kf{%ZKz{>EH;wjfVi~}q=f-5S@n&Z@wDn5n{`Q9yOH!3! zOP$$l+;2~N**O#6Pgv=N>w zR=q753nwib1$!HmQqN{yH-8hiO~%#9zUg$NOZvUtR#e4bV)~x%vwW|e=fI>uJ!tBj za*q^1+IsKcKN|bwT=J(kjAz{C4 zA9685?e&!6=F$3kw&+inS>Jfr43&S)FxT$>A>NaP`P>`0o6{L|^n=Yi>snhs=)zsum?N+RtigKyl z@Qe8!f}GY@)%?`$t)WiHTNmXWM_m2{%cJ+0g1G`9sNl}8KxVFG4Vmmgc@4QPcr`4y z)UbcJwGPNuwIt;;L4Q!Cb3sjT9rG=-p?Xp>A68FZ#;kU{r6<{AJz4w-qgnmII`}?f z{7joGWrMH%;^>EUANjq+ z*BPJy(I6mqxA4lG+uf-z#`TqOQ&K;rlTU$C7cE6ZyRLxoGJj-AjGNP5VUFyua`+o2 zwKU50Jb%S;Q@O6Mb6sEOy6&eysf)r6CW!gv_RV!Y$#*@i%~AW&kO8K{Yb&6UVUV4- zM~UC1@KON%wRhNBE0S!T7bYq1MNANuNfQsS4xezc1{PU$4%88am@u?)&Y>{_bSi@H2<_c@r2k4sZ4PdS8{~Jhk zu9Z1EeAT{fV1jLhu0{n^@>26FV)qinz=BbhZDeWfeFv8m)Vg_Dc1FBM;l%LI_WOtZUhdgu z6u>B@&QJqx83{tT7)!4^GJI)8o3^iN*;r$A9VnW;iFq`w3%DgD5j zq))DESfd?aFUuT5eZ|Qp@bC7 zQ-7gkDG_$9)&@<(CHgHUH=1*GN?YWBES~Etfn92NE|!$L4W^5%03cy-jf$B7A;Sz| zcjG0S*uaI09-KBC;WWc5xNq;o1ZSk4aw<#|0F(Qp*CBZDz_F|jVTjm(( z&l)K%FEi!L6fGajE`72aQ4WPqXoQI3uHHLNVcaA~L}A zHx~j2q28sJv<%A(g{gK$L2e@a=cB|@az;;cI==0=X?J?bbFq|j0sNYmn{qBqMt{dI z+u^c28y&xFhs)A*D8FX&&|Vm{qnd|_{**$5M*0rs@gJwoPbpz_n7rU$F^$Vlj6jvADRR7D~47&9?1(!%KEkxP5PU#ct$^ExpVR zmn_=8H@sdqa{H<$%KGX#B%|lX)ql|fepL^Kj)?Jv4#(N%NKKP?L|5e&X&8MD+dgYi%lB_9o{o( zOl~TacPY>5<`Pb-d~HF8oA?g+44)<#`ZHG$XKE(1jqhF4tI+YOq8_mB#D5x_5pa;m z<}lMEJI0YEr~;ClACtZZZ0;GX$xXDg13!E8)Ah)}5YJ-+g1-x3R&k8kD~5yb=P~*+ zU&Zv%TE;hglitOR);i{@YE*f&PhTtgTA>rZo7&ypZEH?N*R}N?SFr*{3#AYH;av^3 z+Y(6QyS){5fZDoWRO17BCVz?J!{}b>Z>nttljp3SeT3$AC~xFIoA$o zQmj3)Aw#w4C2z6EiszZ--6HLQK4cn3#o_cndKx3o%Je%bk479n*5h zYq?`u?szSCOv@dw<&J5&BU@%BKd%@`WfK|hry+tHvi+^UJ7B2Vj@zSgUO-2rI zt^hkujXA)o0d#82HC8ffPbuEj6iRKhHNRNscdiR~!C;>XK1619rnJj!i3_Hlry7HlI zk$W51JJ-&rTz~Hjx&zJi5?BsWQ8Wafu=QPdAfi`Sz{omU0waOoP@Oc+wUs|IMfS*0 zab&j@pj;|oY6n$R@zd6KK`LSYyjr{1uP^%90?3ciD=NOiZc|N^}?(yHaNa%s59BU|NI#<~&}|#I<3K9dVPYl8 zD(x}Q-Mw{13k_9(B?eLbu#HMoAB40nL7F)z)PId1iUG5HLkwVkPF4z{aUo3^D!8?TTj$`|L4~Zuc`C4>*pV&QP<0=xJUz$(8W8r3m4d(ovY|tC z+JDxuJp94?p~PJ!y#dW82a&*YYw*_!^`h5y${JJP zSX(fM2xF(fPA3Dt#q8rR-xsNiAK?^L0DrHo4&q=}c5m0hvB_OjL{Yjxhc_>OK6~}~-SOL3A7kieWqnXt9ah$d zt~nTMv>T(Zz%ubtwc$0d{p&cWiRrU0n^qq$7HQI10)YXU#T{YkXQ(k{Ae?6`LfCl}l@b#u+A!m4)rqUm@SO_v~x zuNuTy@qk>*7&MC1=`w>mrOv-#X@5*aO58p&LigQGvvV-jcNkhf4&

Qrw25E#Tzt}L->O9a4J@xoHa1=~jWobs`VSiqO+u(Kf zCHjG?{jH24a+lpCsc>CZ9iP6c4t#*dTb%1~_OLbVc#z+4gS|s<%VEl+w-Xxe%X5~; zt=$#uno7!cxA;#@8Re?KPsg~rm2#X5XEYojc9FQWQ-FQTI?He2T_C-2rqbDM%LmG-n(>9zrP&K8wUA5iF!U4hbeVX_P0KQR-*_J`4i&T&vjknIwI8jguK?FI9{Qv=fK`> zoGC51E{Yob*IfyW@6XbNy`T6PUuA6NEKK>QApM1eEk^s6N3m^qy?-0!&r+9H7wGdw z!#h-6xu%>~fbF`4)f&TCyVZ|jMm0e@gL@>`K|LNE31(KSEhR<7y&3vZVGpL-WE zZc`ho@Q`%9L!yA$^MA#^hH~m!lv8gD<@9PiPOh{3L6Yf@(M}TVDd(uqpvA`sJ*C9` zM~_k8K1S&Z66)#75LKMKrsTDkEDxP^Ij)eVDq^86m^Hy{C8~PciKoD2-{3$OYxWh^?Ax|&PobOS87n26R+V)9ClODosY2>$fZnLkD^6ciPs0N0X&_3w zOw(mZ9TdtbQh%pkO6m|4lREt^q>gMd>;d`KM_R`njgOQ29!^%p`(KTcACsxFEc64Z z$D$753~mbtW(sibOOeZ#&XRyNO7sfq17;>_Mcb!wf>^M^~aAZs%8fI@B8^ zepr22hsu|~SI=X*f5rYtV4k||MR-oQ9+BFGsvg@a@_$X9u9SU2s^U)r>XBKlg=@Oj zpeqF`mG{#%2W!epCHd(>0+Yl=mB5c)>bw)4xml>B%ycfPHZ#=-+Ch{<;MrWmro}idKh0 z)@}cCDu2)^UU4qMwX45&LDiF7F+p_-J;p!Er<=&cKLUz6n_U-e=AP6#ryyCD(4M92 zoUZ9dsn3iubnE3nff2nzm7%j6t1gnoQ>v~>NzvV^))I_rdin$HcHwcMx5_V~cyKr7 zh#th><#f;P5n`|k(mU0#cChCN<&p4SJ30DRz<(^FlB#YOD1GgvuQ{Ei|0;`ZG$2_D z{Z%@D{`sr}p1ggENrS#}9BN&w zXf?q!LSDX&Za9m^9kqsWI~+1`F^E~rOe(L1+c50C=;qzx!Kj+Z0uAYLX3H_ghLpbK zrhjFP&nFgo4zVD6)ccoF3gmX&_Up%_1L`D?i=I+d#v{ao0(%MpaV=p>xHVkvUflDf z-OOVfF6}Xz0rI=23GAedT$V)?E7wjcL`PCJ+m3PImU29%ZN+T)suZ|aM}eqf5T9RY zeT9D9P{N99J3w-)f7EOBF~la?dJn zxr~z4Ny($-KLh_-^_NJg`&wziMy4+7HBxAmHM=!(4Tq%ht3UM!BXL>s(pWZJvww;M zTE&qLMFVR$z_lBl4`2)X>|2YH*IOAj(`q;pg~Q)yWqmEa z)^DN%gRciRz8=NHB5j$zO4gS1qT?mCSAgt?Ib=Uns0n%B9Ii)s<~CHXFZiCNXOz@e zCZp?QtT(zn)ffA27#7?O09t%CTz{f^T@okeYLJNPa_gOteAS&`F=N~caASSwLV$v? z3I9Yv*f{Q})GPi8sVzhA#p9ZE?<1+ctJ;LWVa>GbANc(#o@~8RMq4Rk?qkzNhLXW8 zmI31M#`ZOH1;_BR2$^0TUAC_9K#q&9nXA%k=Bo6X!9C{OGUNZ#TSi8(xPNMm3vZc8 z*~Cm>VkS5-SI#Xnxqyn~Epr8vbCthk#$~t6*x@Y4Uv}p>y~E2!pS*v~U1O>*ylN)E zD$`Xnaj%*yz;IXkszIz!c-2fwubP=EVqG;8Q94+&l4DxQsan4=tlt>dZ+brFo94>7 zX()M3$z?ZVQ8VNM2 zC^yR~e4WUz*N}Gxc^`QaI*@q=nf&=*arnCSL$pW#R>O9uHh+f?`a}6Y#|QiWRcq7_ zzr%k2eAI~Ue~ud)%exu%|7RN3PjUSB=>9gY-4ehrF-*o@_(Sz|RJ*k+{Rd~vtL;uy zz2&y$cGYgy4#RovAL57FFUkPg%7L2xAzrJjPw}#LgUx?BYV7R%M1h(=RpUeDrcTR) zKRxGs7{jNUm4Cls|605^`pG!dJK@v5+E=s%8udowAd0xzH};+V8=Risj$XEYQ^#fz z-&B9w`?UX3nxWiO!{4e05v9C2|Lr0^|3&-*LiB#c%LKpm*FHt|;x^_gsZusvTaK(i5-rFOQanL>_ff zPWMcAANRh`YiMGy?_3R)%~-g&X}#}1@tTL$S$A5%n5u& zcix2zzfJMC<}b1)Fc%oH2~FVXN4S69uH7Bi{_EoWzvYj;eO9Y~rc3I_bn?$)zv1x+ zG3p96hfYZ_WUA$1*Ss%SQLG$*jeKbH>T;s;@;Iex1-{j$0(b?fMnT`!IJtXFN9tFZ zXMgjD2b|m?(-0Pn%>)vt8XL@$9ZB?t#r8|>%o?WzLJf%CdCE;jFQ2=J4?f{@%df zB{uRhM(qMT3VtlVwB~luyb4cMmN>`CX^?x3JQN6NOs#8{(tMN`obo;NMdFqHZq(h9nmKVA# zK~quV7JXjo79Cw>*zV2ICpuo|@XsOs^9}yZv1q;>$`pK~H@pgS1S3R9by2-DXL~nJ4Y*n1B5pnB_Pi-(^87b$_(Zo@Fv# z1Uq9daKxTI$q_rudul7IJtb}eQH){058p-}hHu_cvvOY{ZH8t=zKo+z!>*{Xx`a+8 zrHP=j!I%qWfqCZfaJ#Ivtpe8IuZ^XsXVE}&JLZ6wtJlrj)L6<(D%|{5FpF&gSnSiI z?chr~dtKB`6+**GYuQZ~$bXatsOjnX$3xs4}Zieo|{d&f=wC&zzJ7=j&)wBSCzS(fmEc`mrwxxs&q#Vz!cX~GSkK>T^qN5k+|GGJ~PSy%I zT0-Co9$Da94L?EnNf|uAtaB3@-M@@6zTM_De);0KN-eH6e}DbrxQQvP6Ue-+PVCGd zf)}?Y(1&|&G4SQu@K^u2Gp|7Hi1$a^bc%uQ8(?;G2{qQaV?yJu(*Ba=B zO!>!0#p|@T;IM01Z7Ka{HAeso$>e7XKJKF0a??`IMCWx%ug&QyG5$m6buJAVP_IFg z_mD$A$&_b9|KTMS z#a)bA`EdaSAch#lFZ!cT9OYuLQL%t);EKYM=?w;;D-1t{E+-0IjHo-*gf{h}02}FA zE<~!4qH(zHB4HTiY?Y^3H57}bFxwVN)kuvu5U}3eK7W#~?}3WFO%wFYLP(}aW;GU< zDC)hmp4p+QEFM2RIPb+KOFtEp{}hvsZ@|<8g4NojO8#|e3}lR7m_c~?m@MhilO_2) z#MG#4XNzSAqtQ!#!Xy5tssjKe{qcrV-}<7I&{d^vvUVD6rWRRCcf!=>W-d#)nM>@a z>Dwi8Gk=%J&0HckbBWx{C2}*D#LeVKq84TbNUmscW=B`8YIWwU&+NhsndDPp< zdv6{*zaC@xG#rlcJ|KTf4-fR)_7)XMP9w=a!U1EaQ4#m(e0&jK+4Jd)lmm=jVt`R= ztd|$0Nr-K$SZ0=I5lZ$PTW?Xt=vzvB%n-n>u79IRssQvr=#kbaFb!tMHhn5PdYp>C zd=eFZDG#dOfb8{U3CV7}QR#lS_=KMaKxmf}&Oq;Oqn-a$B@Q5ny?6Xc?j8S%Nq`By z+tWzVnV3vuqFUcdR~B{sRMwO6b0Pm35dVqvL?tlXXCNqav`({mPis?`EVjKKNPO8& z)_*)zLk(B&!}(d8>+(u(*(H~ zXL_1wX55IjdXoF1bL{wyb5E_AjjcmMvdq$0n;15rY;%z>H{4p4WSTA7(=O63`f*FD z5XGHvDEA+Rc8ps1JMQ5sLj2aROIk@%Kk{3ZuqmIu_aG<9 zp2CpULJ<`_iVXD$fv(}CLjUc>dWE)DAq5T4_H3V**F7jN_n}SNjPz^NNM7NeO@E-h zHv>coVU8%Gi`jUR*Y%lu8X7wW+D>5s;5Z9B%%Y<$P1p&^;ho^ zIXtgzx0l;4mX`H3JMO9~5_D5wQ;&>Z32$_%^fO7F1>>*rgj<2wRlFbj>Kql#tGH@i zIq7f#@~z7B=T$+hv4XUC3aOG`f$kMSOg5T1kqnE)oG2FN@<}YrC1M&Aw8-aFfrMN1 zC#8$)P;aA)C)$jd1L2cgbboCn)mR;dk%hRNbMa#2(Oxr3@jH*kF8s;e4vu`Y; z-DNUluV!(rAk!-4R>!6IzT!?_TK%tjFOT#j`Gzdpzri45# zQPLSS&9Ukk<$B|kYk&6ZxSUCsBW77rRtHSv$m1t4%W%?Bc=qB_bItndZyredw#!F3 zWnG41zbNXRu_I?;bbDbDMt;{ae9@WXKi6U^uEa=8#F$jU@D-wn{J@K}l^!ix)oL2u zPuwdry=YCGqol6gOVoy&m;f=7xYQ{~v#c=ESw0yb%&vj01b-ZU6}R!v6u#y_2f`Qp z8OPyO?V7A1mT@?$P3fnR0>xv;v}xJWEJYk%SI5$jLh%-HIIS+F5rrm?$nL`lzT;mI ztOAHpLq=Ar)C7#k6GrYfxhy-_SGDm`f^mSZs^jPMLt0LVxL{l)LTk)Z@sFZP*{Dc7>M%A zdBmWs?OwgG4M)|txF*hXTpYq~uej|fR=mxGk5(DBfSl3V0t2TVao?7>j^0F=s=P_E zq?3$^UZZ3V+K@|TfkT3=1p@dDjLFr6GhgToN1#i;hku8Vo%U=IE@-EIpY522J^u#d zL8`5;!0e(Yv*{oihF$3*NOn-6a{h{Sx|AuPUCnDwQEo+L-K95SpY!SF$ib>Gh6*a~ z=6jeAr2SqAV>~9(a^~j@T82#`bkUR!5Cx-&W>+ijVh5QK_{CbvTu*`Y@Vtu4F1LG^ z%goL>n|~?3A{)&lk5R-f=qO9swub#(7C(E|>(tbdu0joExdx=QP{8O2Q;Lrmp{_ zwX>s3+1ye0N!$_C-gWi2O1aj~R<1QmyUl`4jlo8J@`*D(LykUZ_BP&b@T#1@44>#k z<@phv>B?%HOs|@wv_J6uvZP)1w(SZ)UiuP z2>Q5%+tf$LnrtT-r+S-EZC4A`IACt&zJkkHvFAd~(gwTa1^YFd{z*}MyBKxF!cB!y zgVko>tC<}Gs>7&8R>klsx}2^Pim8A;Jn*_b z$aNdxUjzXKTu8g*afo*k5CQ=M z1XARh>odz1xnNoAkHon^TEm*@-0>E!KRM5voXNAFc2R&-egisf^ZfDo<{(%M#V3P_ zES`G{uf^fvUcN|Va~WkYMjGq2*I;9v@^~m^1cjC`dtQ}`{JM6n39?Q|9@p86ZGRD` z7?yI+n!sva<1RoDTgfJ45etq?LiVWE}c z2bIB!bJ$ldwmQE%J6#V8myw(GN&DJ)e^ef`?2$>>^B%paIuEHmyy`jB4R^iBYokxj zKWR^H-%O8frK0_5bItk1RPMSPQGd1Tu+#;h%6&J&KE=yx$v%nYl~Tj2!UZzY7)|QL zTL99oTfEShjtWWAee4e8n+so|0r#=q9G|*-dHmv@vCr$NV|T9(V62jWKFwbcC8MzS zHEZ_t(3Kc_=0Ut|mm})CHQ3o1pp&<5tlQz6rOP;blb;j7-_C@fFQ%tYNq?(oJQxcJ zMimzH5j`B0bgt)h?r{%+U+FKzqMlthf&SFwlumJa9A=qS6J$YO3$-V};89 zx8W354M1-UHgfu)`uWX)fjIoD4Pobe^B2Ip^grDhkv%p$TjtZc-uX4A?Tf2dMU&r& z?mKaZG-Kt-H4Sgb8NLZ*`0&sbZBC)ki1^LI8ux}T2;Z1nTNBCg@qdAtXpRK?`nS)g zKYutrd-MKXK}<(-dafq{$j^3p1joK3e(o{gN9=VD%6S6XcuxVFCmfFA*8y>F*4&pj zv{7c6^(UQeA{YrT_5pSAvjhkx@b>gV3S8RWI2<;0~zOR3zX z0Rtf!BFASi@5^3}>3<^6pDOG)vJ)XXtCx4F&=)E2jO{vdGq6|NGII>Sq-y7t=!l^h z(Bs1}ZnTC+eRj2o2?IzN9F5t3-&GtA_r8tx#?^2De_Ne69GzcXRNl#%Knie?L5YBcED&2`eb#Ldu^H4~LCSe!D0K zoADsOU6Ak0Z5PQli-F!QSFo#SyT~US-5=$eQ*{A0*5P;G)yCpl`#chDF%dKKkQFz? zG`>==Dwjvo)_-L+{uYKGU!7lGv?llm_DE|+KMpVW#vASIOz@u>{&O9+Ym?}x$G>Ls z*Mxq-o`hoGT*N>Y_uZ}4{j#kk^eCJDpyg5nLD%#GexyH|L7F#FO(Gl*xH<#>7WG^_VBQqSB9f>S3_$ z{+|c1Z|F7WTfijn`&Z_l4;uXWx;;t8>t=A4O#0d9cm3PXA7+#GG!VGiPW#=NBx?dr z`8aC#W`DO$WNhgBc$^F&la* zScbNja&y_j!YpAR0<*mG<0Cz5N>@p83IlgxWq$&%tNfrvRaM}M!Edvi@L?^c{`!^0 zb%D2*#6uTpn}0cZ(wZ8SQUWXd~Pn59l|{nsH}ghYzK#b-J8P)}Fl7JV3&J=1xc< zxqkv2ihIERu!c?bs3EdGaP+7s7)()D)y4+iY}j~1XYsd>CiFC$G#hW|Z2q=Th|Zx; z3zg^w>C;9lJfZsAK{0Z3=>!MiSecZN!#^yUbQ2XF$ar8>x5VgD2sTo$7`#}(J+;R_ z>h8t3>Q0J;!?7J_U6jO(>gGe{cCZ8O6n~M#sBS)#w3w#x{a^qn2mzdL2gc-P#`GeO zxa{5KGx!+zp-ftKo%SVFQU=jWZs=78$Q(FQC!=KC3)ur&>AP6$zKad($#mLJe>i*l zW30Cei!Njq-G(~LJQV$&zW9B*KTJgMJ0PUZuujj%b%i2hv&Z188eFe}mVyC(9DhiQ zk0^MX4>PXvnT9Ol&oWZYU?!CPqq3|MVo_?S1B!IQKB1{etFY1#nW;{@Yene!(! z!QjlwHXQH>=J?Wc{4YW&t_PWaIkqS<{7kI zYW%crf0b*Q5zXDp;RjL%)IQ9EBTPmYFWwe>L3e#^Kp*k%!ETVd?1SCkgG$iEYC>mj zUhGm?w5W+~B7x8Z+Q|B4aPz1_j)scPEh@&xNS3>GRZL92U(!7iFLv>})_>Cpu}$L zA5~>;Neu@V%|=9vforFaC))K}&o<6np^+>RoDo`ktGFG~lSV)5wy*oYO~y1uym~ks zH0g%1EXT!j2@NmvTr;iT{jI7^PPeS7~Oi(yVBeo`1eV?Hr(5BbX*w zreVP{O?dj`R0qHx1U(AA%8PKhH+b3UG|NgJw;awws**{ zM(nBqa0HM0eL1RbnI<8lv*G@|+#5%p$_fK$X9dMG&SEJBHQoz~VWrHQfS(`jUT`28c5N|;02MM(_VDnGBJHrxlQ4RC;J`Z= zuQ5b}gafUChf9m-bpXh8SN3dI87M%yT@dlDf*;Z=4W*+Kui1xThX8h^qN?MUU|?BW zvQ4EJ_?Dh9Uf2q*!KYhJ3jqdsSw&9y7Y}Wj>LStF*rE&Mw8jF4M_Ye#>`jSWHcY?( zjYcJ9s@(&OIFP+;aje8tz_VhHK;3#(3Q$Ctt>iT7BrGv1eS+WQUm7pry#~xMT0#o0(SCp2csS`UefmTt) zm7k4ixOIFPHeY|x;{dqL>)8}zz8gnnGD(`c%zA(U38Si&!Og@Vq=qL`P4-4-V++ux zRXKXr=4B1BW`6Cppz&$L0`HENQ?_0=O)lDtWp*;__2c-k(TMJ`o@z{xFjn}#{W^n6 zJJN@9oi1)XHt#^ChksR8@QT;7CLm{>0e*#3XX&{s!AU|k18pz3!FRk!r0 zAr<@B(yP_(0de)(*K2Y+313)?!EFEi`}Fs0kJMr zE3z|`{gBGh13(aa5EB0pf_*(p-{JYtow1F0+Z0gUWPm&VG#U?WQbGa4mm~yk&Tw*reJQ zj5IO(vJu%cA%*>q7L-o_PlU6qRpqgCn%g!V>T!bG`}zs_vVkGp8nymEvC%=kQvLw| DOQ8UD diff --git a/package.json b/package.json index aa130fb1..79bb90b6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "0.8.15", + "version": "0.8.16", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js",