From 395680d960619c04ccfa04f19c643f3ea6de4e4b Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 20 Apr 2013 12:04:59 -0400 Subject: [PATCH] Build distribution --- dist/all.js | 135 +++++++++++++++++++++------------------------ dist/all.min.js | 8 +-- dist/all.min.js.gz | Bin 47507 -> 47509 bytes 3 files changed, 67 insertions(+), 76 deletions(-) diff --git a/dist/all.js b/dist/all.js index d4e7dbed..a6bee584 100644 --- a/dist/all.js +++ b/dist/all.js @@ -8328,17 +8328,18 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @scope fab * @private * @method _shouldClearSelection */ - _shouldClearSelection: function (e) { - var target = this.findTarget(e), - activeGroup = this.getActiveGroup(); + _shouldClearSelection: function (e, target) { + var activeGroup = this.getActiveGroup(); + return ( !target || ( - target && - activeGroup && - !activeGroup.contains(target) && - activeGroup !== target && - !e.shiftKey - ) + target && + activeGroup && + !activeGroup.contains(target) && + activeGroup !== target && + !e.shiftKey) || ( + target && + !target.selectable) ); }, @@ -8775,9 +8776,8 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @scope fab break; } } - if (target && target.selectable) { - return target; - } + + return target; }, /** @@ -9233,7 +9233,7 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @scope fab var target = this.findTarget(e), corner; pointer = this.getPointer(e); - if (this._shouldClearSelection(e)) { + if (this._shouldClearSelection(e, target)) { this._groupSelector = { ex: pointer.x, ey: pointer.y, @@ -9241,7 +9241,7 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @scope fab left: 0 }; this.deactivateAllWithDispatch(); - target && this.setActiveObject(target, e); + target && target.selectable && this.setActiveObject(target, e); } else { // determine if it's a drag or rotate case @@ -9306,7 +9306,7 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @scope fab var groupSelector = this._groupSelector; // We initially clicked in an empty area, so we draw a box for multiple selection. - if (groupSelector !== null) { + if (groupSelector) { pointer = getPointer(e, this.upperCanvasEl); groupSelector.left = pointer.x - this._offset.left - groupSelector.ex; @@ -9324,7 +9324,7 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @scope fab // performance. target = this.findTarget(e); - if (!target) { + if (!target || target && !target.selectable) { // image/text was hovered-out from, we remove its borders for (var i = this._objects.length; i--; ) { if (this._objects[i] && !this._objects[i].active) { @@ -9343,85 +9343,66 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @scope fab pointer = getPointer(e, this.upperCanvasEl); var x = pointer.x, - y = pointer.y; + y = pointer.y, + reset = false, + transform = this._currentTransform; - this._currentTransform.target.isMoving = true; + target = transform.target; + target.isMoving = true; - var t = this._currentTransform, reset = false; - if ( - (t.action === 'scale' || t.action === 'scaleX' || t.action === 'scaleY') - && - ( - // Switch from a normal resize to center-based - (e.altKey && (t.originX !== 'center' || t.originY !== 'center')) - || - // Switch from center-based resize to normal one - (!e.altKey && t.originX === 'center' && t.originY === 'center') - ) - ) { + if ((transform.action === 'scale' || transform.action === 'scaleX' || transform.action === 'scaleY') && + // Switch from a normal resize to center-based + ((e.altKey && (transform.originX !== 'center' || transform.originY !== 'center')) || + // Switch from center-based resize to normal one + (!e.altKey && transform.originX === 'center' && transform.originY === 'center')) + ) { this._resetCurrentTransform(e); reset = true; } - if (this._currentTransform.action === 'rotate') { + if (transform.action === 'rotate') { this._rotateObject(x, y); - this.fire('object:rotating', { - target: this._currentTransform.target, - e: e - }); - this._currentTransform.target.fire('rotating'); + this.fire('object:rotating', { target: target, e: e }); + target.fire('rotating', { e: e }); } - else if (this._currentTransform.action === 'scale') { + else if (transform.action === 'scale') { // rotate object only if shift key is not pressed // and if it is not a group we are transforming - - if (e.shiftKey || this.uniScaleTransform) { - this._currentTransform.currentAction = 'scale'; + if ((e.shiftKey || this.uniScaleTransform) && !target.get('lockUniScaling')) { + transform.currentAction = 'scale'; this._scaleObject(x, y); } else { - if (!reset && t.currentAction === 'scale') { - // Switch from a normal resize to proportional + // Switch from a normal resize to proportional + if (!reset && transform.currentAction === 'scale') { this._resetCurrentTransform(e); } - this._currentTransform.currentAction = 'scaleEqually'; + transform.currentAction = 'scaleEqually'; this._scaleObject(x, y, 'equally'); } - this.fire('object:scaling', { - target: this._currentTransform.target, - e: e - }); - this._currentTransform.target.fire('scaling', { e: e }); + this.fire('object:scaling', { target: target, e: e }); + target.fire('scaling', { e: e }); } - else if (this._currentTransform.action === 'scaleX') { + else if (transform.action === 'scaleX') { this._scaleObject(x, y, 'x'); - this.fire('object:scaling', { - target: this._currentTransform.target, - e: e - }); - this._currentTransform.target.fire('scaling', { e: e }); + this.fire('object:scaling', { target: target, e: e}); + target.fire('scaling', { e: e }); } - else if (this._currentTransform.action === 'scaleY') { + else if (transform.action === 'scaleY') { this._scaleObject(x, y, 'y'); - this.fire('object:scaling', { - target: this._currentTransform.target, - e: e - }); - this._currentTransform.target.fire('scaling', { e: e }); + this.fire('object:scaling', { target: target, e: e}); + target.fire('scaling', { e: e }); } else { this._translateObject(x, y); - this.fire('object:moving', { - target: this._currentTransform.target, - e: e - }); - this._currentTransform.target.fire('moving', { e: e }); + this.fire('object:moving', { target: target, e: e}); + target.fire('moving', { e: e }); this._setCursor(this.moveCursor); } @@ -9606,7 +9587,11 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati ? JSON.parse(json) : json; - if (!serialized || (serialized && !serialized.objects)) return; + if (!serialized) return; + + if (!serialized.objects) { + serialized.objects = []; + } this.clear(); @@ -9761,6 +9746,10 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati backgroundPatternLoaded, backgroundImageLoaded, overlayImageLoaded; + + var cbIfLoaded = function () { + callback && backgroundImageLoaded && overlayImageLoaded && backgroundPatternLoaded && callback(); + }; if (serialized.backgroundImage) { this.setBackgroundImage(serialized.backgroundImage, function() { @@ -9772,7 +9761,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati backgroundImageLoaded = true; - callback && overlayImageLoaded && backgroundPatternLoaded && callback(); + cbIfLoaded(); }); } else { @@ -9788,7 +9777,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati _this.renderAll(); overlayImageLoaded = true; - callback && backgroundImageLoaded && backgroundPatternLoaded && callback(); + cbIfLoaded(); }); } else { @@ -9801,7 +9790,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati _this.renderAll(); backgroundPatternLoaded = true; - callback && overlayImageLoaded && backgroundImageLoaded && callback(); + cbIfLoaded(); }); } else { @@ -10392,7 +10381,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati "stroke-width: ", (this.strokeWidth ? this.strokeWidth : '0'), "; ", "stroke-dasharray: ", (this.strokeDashArray ? this.strokeDashArray.join(' ') : "; "), "fill: ", (this.fill ? (this.fill && this.fill.toLive ? 'url(#SVGID_' + this.fill.id + ')' : this.fill) : 'none'), "; ", - "opacity: ", (this.opacity ? this.opacity : '1'), ";", + "opacity: ", (typeof this.opacity !== 'undefined' ? this.opacity : '1'), ";", (this.visible ? '' : " visibility: hidden;") ].join(""); }, @@ -16591,8 +16580,10 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { * @method _initDimensions */ _initDimensions: function() { - var canvasEl = fabric.util.createCanvasElement(); - this._render(canvasEl.getContext('2d')); + if (!this._ctxForDimensions) { + this._ctxForDimensions = fabric.util.createCanvasElement().getContext('2d'); + } + this._render(this._ctxForDimensions); }, /** diff --git a/dist/all.min.js b/dist/all.min.js index 16ee4450..bb11fc5a 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,6 +1,6 @@ /* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.1.7"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.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(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_-1},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=t.complexity?t.complexity():0,e},0)},toGrayscale:function(){return this.forEachObject(function(e){e.toGrayscale()})}},function(){function n(e,t){var n=e.indexOf(t);return n!==-1&&e.splice(n,1),e}function r(e,t){return Math.floor(Math.random()*(t-e+1))+e}function s(e){return e*i}function o(e){return e/i}function u(e,t,n){var r=Math.sin(n),i=Math.cos(n);e.subtractEquals(t);var s=e.x*i-e.y*r,o=e.x*r+e.y*i;return(new fabric.Point(s,o)).addEquals(t)}function a(e,t){return parseFloat(Number(e).toFixed(t))}function f(){return!1}function l(e){e||(e={});var t=+(new Date),n=e.duration||500,r=t+n,i,s=e.onChange||function(){},o=e.abort||function(){return!1},u=e.easing||function(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t},a="startValue"in e?e.startValue:0,f="endValue"in e?e.endValue:100,l=e.byValue||f-a;e.onStart&&e.onStart(),function c(){i=+(new Date);var f=i>r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;return e.length>1?r=new fabric.PathGroup(e,t):r=e[0],typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}function w(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}function E(e,t){var n=[[e[0],e[2],e[4]],[e[1],e[3],e[5]],[0,0,1]],r=[[t[0],t[2],t[4]],[t[1],t[3],t[5]],[0,0,1]],i=[];for(var s=0;s<3;s++){i[s]=[];for(var o=0;o<3;o++){var u=0;for(var a=0;a<3;a++)u+=n[s][a]*r[a][o];i[s][o]=u}}return[i[0][0],i[1][0],i[0][1],i[1][1],i[0][2],i[1][2]]}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b,fabric.util.clipContext=w,fabric.util.multiplyTransformMatrices=E}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Number.POSITIVE_INFINITY&&r!==Number.NEGATIVE_INFINITY&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[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 t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){v.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),v.has(e,function(r){r?v.get(e,function(e){var t=g(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function g(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function y(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function b(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function w(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s=t.util.multiplyTransformMatrices,o={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function n(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function r(e,t){e[2]=t[0]}function i(e,t){e[1]=t[0]}function s(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var o=[1,0,0,1,0,0],u="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",a="(?:\\s+,?\\s*|,\\s*)",f="(?:(skewX)\\s*\\(\\s*("+u+")\\s*\\))",l="(?:(skewY)\\s*\\(\\s*("+u+")\\s*\\))",c="(?:(rotate)\\s*\\(\\s*("+u+")(?:"+a+"("+u+")"+a+"("+u+"))?\\s*\\))",h="(?:(scale)\\s*\\(\\s*("+u+")(?:"+a+"("+u+"))?\\s*\\))",p="(?:(translate)\\s*\\(\\s*("+u+")(?:"+a+"("+u+"))?\\s*\\))",d="(?:(matrix)\\s*\\(\\s*("+u+")"+a+"("+u+")"+a+"("+u+")"+a+"("+u+")"+a+"("+u+")"+a+"("+u+")"+"\\s*\\))",v="(?:"+d+"|"+p+"|"+h+"|"+c+"|"+f+"|"+l+")",m="(?:"+v+"(?:"+a+v+")*"+")",g="^\\s*(?:"+m+"?)\\s*$",y=new RegExp(g),b=new RegExp(v,"g");return function(u){var a=o.concat(),f=[];if(!u||u&&!y.test(u))return a;u.replace(b,function(t){var u=(new RegExp(v)).exec(t).filter(function(e){return e!==""&&e!=null}),l=u[1],c=u.slice(2).map(parseFloat);switch(l){case"translate":s(a,c);break;case"rotate":e(a,c);break;case"scale":n(a,c);break;case"skewX":r(a,c);break;case"skewY":i(a,c);break;case"matrix":a=c}f.push(a.concat()),a=o.concat()});var l=f[0];while(f.length>1)f.shift(),l=t.util.multiplyTransformMatrices(l,f[0]);return l}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,h=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},remove:function(e){return this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared")),fabric.Collection.remove.call(this,e)},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll&&this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll&&this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll&&this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay.visible&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this._objects[o].visible&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.set("active",!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){return this.set("fill",new t.Pattern(e))},setShadow:function(e){return this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object"){var e=[],t,n;for(t in arguments[0])e.push(t);for(var r=0,i=e.length;re.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return this;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return this;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath();var t=this.group&&this.group.type!=="group";t&&!this.transformMatrix?e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top):e.translate(this.left,this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var n=e.strokeStyle;e.strokeStyle=this.stroke||e.fillStyle,e.stroke(),e.strokeStyle=n},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,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(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,strokeDashArray:null,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height,u=this.group&&this.group.type!=="group";e.beginPath(),e.globalAlpha=u?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&u&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&u&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return"left"in e&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),"top"in e&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke;if(t.Group)return;var o={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,t.Collection,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this.forEachObject(function(e){e.set("active",!0),e.group=this},this),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),this.forEachObject(function(e){e.set("active",!0),e.group=this},this),this.remove(e),this._calcBounds(),this._updateObjectsCoords(),this},_onObjectAdded:function(e){e.group=this},_onObjectRemoved:function(e){delete e.group,e.set("active",!1)},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this._objects.length;this[e]=t;while(n--)this._objects[n].set(e,t)}else this[e]=t},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){if(!this.visible)return;e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=0,s=this._objects.length;ie.x&&i-ne.y},toSVG:function(){var e=[];for(var t=this._objects.length;t--;)e.push(this._objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in o){if(this[e])return this[e];for(var t=0,n=this._objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){fabric.util.loadImage(e,function(e){t(new fabric.Image(e,n))})},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.set("active",!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){var t=this.group&&this.group.type!=="group";t&&!this.transformMatrix?e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top):t&&this.transformMatrix&&e.translate(-this.group.width/2,-this.group.height/2),typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{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,stroke:this.stroke,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1 -,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){if(!this.visible)return;e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{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,stroke:this.stroke,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e&&typeof e=="string"?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e);r.port||(r.port=r.protocol.indexOf("https:")===0?443:80);var i=r.port===443?HTTPS:HTTP,s=i.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});s.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)}),s.end()}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),HTTPS=require("https"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),e.indexOf("http")!==0?request_fs(e,function(e){fabric.loadSVGFromString(e,t)}):request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this,e),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +[n],e),this._objects[n].drawBorders(e).drawControls(e),e.restore(),this.lastRenderedObjectWithControlsAboveOverlay=this._objects[n]}},toDataURL:function(e){e||(e={});var t=e.format||"png",n=e.quality||1,r=e.multiplier||1;return r!==1?this.__toDataURLWithMultiplier(t,n,r):this.__toDataURL(t,n)},__toDataURL:function(e,t){this.renderAll(!0);var n=this.upperCanvasEl||this.lowerCanvasEl,r=fabric.StaticCanvas.supports("toDataURLWithQuality")?n.toDataURL("image/"+e,t):n.toDataURL("image/"+e);return this.contextTop&&this.clearContext(this.contextTop),this.renderAll(),r},__toDataURLWithMultiplier:function(e,t,n){var r=this.getWidth(),i=this.getHeight(),s=r*n,o=i*n,u=this.getActiveObject(),a=this.getActiveGroup(),f=this.contextTop||this.contextContainer;this.setWidth(s).setHeight(o),f.scale(n,n),a?this._tempRemoveBordersControlsFromGroup(a):u&&this.deactivateAll&&this.deactivateAll(),this.width=r,this.height=i,this.renderAll(!0);var l=this.__toDataURL(e,t);return f.scale(1/n,1/n),this.setWidth(r).setHeight(i),a?this._restoreBordersControlsOnGroup(a):u&&this.setActiveObject&&this.setActiveObject(u),this.contextTop&&this.clearContext(this.contextTop),this.renderAll(),l},toDataURLWithMultiplier:function(e,t,n){return this.toDataURL({format:e,multiplier:t,quality:n})},_tempRemoveBordersControlsFromGroup:function(e){e.origHasControls=e.hasControls,e.origBorderColor=e.borderColor,e.hasControls=!0,e.borderColor="rgba(0,0,0,0)",e.forEachObject(function(e){e.origBorderColor=e.borderColor,e.borderColor="rgba(0,0,0,0)"})},_restoreBordersControlsOnGroup:function(e){e.hideControls=e.origHideControls,e.borderColor=e.origBorderColor,e.forEachObject(function(e){e.borderColor=e.origBorderColor,delete e.origBorderColor})},getCenter:function(){return{top:this.getHeight()/2,left:this.getWidth()/2}},centerObjectH:function(e){return e.set("left",this.getCenter().left),this.renderAll(),this},centerObjectV:function(e){return e.set("top",this.getCenter().top),this.renderAll(),this},centerObject:function(e){return this.centerObjectH(e).centerObjectV(e)},toDatalessJSON:function(e){return this.toDatalessObject(e)},toObject:function(e){return this._toObjectMethod("toObject",e)},toDatalessObject:function(e){return this._toObjectMethod("toDatalessObject",e)},_toObjectMethod:function(e,t){var n={objects:this._objects.map(function(n){var r;this.includeDefaultValues||(r=n.includeDefaultValues,n.includeDefaultValues=!1);var i=n[e](t);return this.includeDefaultValues||(n.includeDefaultValues=r),i},this),background:this.backgroundColor&&this.backgroundColor.toObject?this.backgroundColor.toObject():this.backgroundColor};return this.backgroundImage&&(n.backgroundImage=this.backgroundImage.src,n.backgroundImageOpacity=this.backgroundImageOpacity,n.backgroundImageStretch=this.backgroundImageStretch),this.overlayImage&&(n.overlayImage=this.overlayImage.src,n.overlayImageLeft=this.overlayImageLeft,n.overlayImageTop=this.overlayImageTop),fabric.util.populateWithProperties(this,n,t),n},toSVG:function(e){e||(e={});var t=[];e.suppressPreamble||t.push('',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},remove:function(e){return this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared")),fabric.Collection.remove.call(this,e)},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll&&this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll&&this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll&&this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay.visible&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this._objects[o].visible&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.set("active",!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){return this.set("fill",new t.Pattern(e))},setShadow:function(e){return this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object"){var e=[],t,n;for(t in arguments[0])e.push(t);for(var r=0,i=e.length;re.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return this;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return this;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath();var t=this.group&&this.group.type!=="group";t&&!this.transformMatrix?e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top):e.translate(this.left,this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var n=e.strokeStyle;e.strokeStyle=this.stroke||e.fillStyle,e.stroke(),e.strokeStyle=n},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,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(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,strokeDashArray:null,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height,u=this.group&&this.group.type!=="group";e.beginPath(),e.globalAlpha=u?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&u&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&u&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return"left"in e&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),"top"in e&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t +;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke;if(t.Group)return;var o={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,t.Collection,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this.forEachObject(function(e){e.set("active",!0),e.group=this},this),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),this.forEachObject(function(e){e.set("active",!0),e.group=this},this),this.remove(e),this._calcBounds(),this._updateObjectsCoords(),this},_onObjectAdded:function(e){e.group=this},_onObjectRemoved:function(e){delete e.group,e.set("active",!1)},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this._objects.length;this[e]=t;while(n--)this._objects[n].set(e,t)}else this[e]=t},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){if(!this.visible)return;e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=0,s=this._objects.length;ie.x&&i-ne.y},toSVG:function(){var e=[];for(var t=this._objects.length;t--;)e.push(this._objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in o){if(this[e])return this[e];for(var t=0,n=this._objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){fabric.util.loadImage(e,function(e){t(new fabric.Image(e,n))})},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.set("active",!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){var t=this.group&&this.group.type!=="group";t&&!this.transformMatrix?e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top):t&&this.transformMatrix&&e.translate(-this.group.width/2,-this.group.height/2),typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{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,stroke:this.stroke,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){if(!this.visible)return;e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{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,stroke:this.stroke,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e&&typeof e=="string"?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e);r.port||(r.port=r.protocol.indexOf("https:")===0?443:80);var i=r.port===443?HTTPS:HTTP,s=i.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});s.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)}),s.end()}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),HTTPS=require("https"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),e.indexOf("http")!==0?request_fs(e,function(e){fabric.loadSVGFromString(e,t)}):request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this,e),this.nodeCanvas.height=e,this},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 50a9dfbfaf55f018c495f9d963a278167bcba351..1be3bae5bc81355fc5c0adf521d907fd4d2649a0 100644 GIT binary patch delta 35866 zcmV(vKAEq|(e)5f-~ByIHj{0bR8Z37}mk+R(jD45qv zwz*E?v6OUtWwi$)K?xlSU<05nj>P%xx0bU42c%>tJ?}d`v52#;b?VfqdWv6OO!%#Z^3FM0dQliH-&nbj$WE9{d&lkK83tXMNcuSXBF?;SepOLVuYj zmOqrBG$TJhG8iolyGu!%QdHp-El#`NF*CX42UFns|GRPhx69E7j~yTz>_Eq^gL+NB+;eukN*Dz$T8ZR8Uh>K2vcx&nRL zx7LONtO*QxG}WU$TWs)s&_)p9E~5aHEvcm911pJJMjNQc(DpSi6wK!>$bUS6>GpG$ zerf~d8Ii18$tYd4(^GzQWUp|m)}A^l$mf9 zb=gF;`Ntw>|5c>X-a<*Sqhpf{S;|&W=R`Cfuej{VEmD=NL@8u|XzrUv6tezJBaAO> zGK+ca)_qRPs9kP=$Hqljz<++#F+#;sSO0?dHO`@Z<^pPC8mu*mxxDId0ywSpt> z|3wnoO4tkq>Sl>guaaLS`Toi5uC3r_q&n7V$~*CD_jEhs5Xd!A;HG7^L?HtCB`r&s#`kw2Px1K)gg;)MmI(^fYPqoq}hrap;& zn%lPcf}54K(BdaRnFVNwu?5GMKtgDAnYKOI)Nav^h!^Zw;mWc@u4#V_lG|3MR z_fsr8>f=wp-%q)O{>Un%+|n?+X_+gf53KJ&iAtB4+Ag}fL;I+O)Iexle8|Pv-7L1Y z&~D?(HGEbZ_tVAzBzJ11F_OBW`^_1d?`W#s*u~BPb$<-%^p4GS4Xk5uFYj%gX+IV= zny;*ATUm{avv!@>PF1bQwhv`ASL?@i?+NA$y2^Dgi%G)JVmgC{|Re|#|kZ@v?H;RzXe9~42@_lx%A#4tO08T;ve z+0TM~RmeewlV_S=AO9cG7po_wnMb2CfPCK5TYme}ulVKD#rt&W3}h z`=2#Gun=3Lai@&?gQv|=Igz76&bWp0PHY2@tDy=)gWCIk*2A3zm6$94hkF-j9tg6~ zUe?@EFYi~btjydO!Frz z(O;f$GTrRwZ31}&!#RPj?;nb8;$o_!*BH_-jj)^|tZQKkH<|bb|NSoi&sBm-*ZA?{ zs-~|xMXCLxlWCr3o|ta zOhv#kq6uHh#Pqe)Y3X|=zQ4L&7STtUl)kQXQu@A-{maT}v{v22uXCe!`29(iidb{d z*{@W=BH-94TLfK;AoSrGoyZLI^@C1L-!Em-0%ksqepQM2`?ZmrL!R3@)M*!X@qfyE zd_lQ=F)2>dGxHGu+0s&&tC_$DSy+S#>cH4i?}NWzD8Db31U!d-P~a2L<+NtNHzlO0 zti)j%NZgCEg*#&|cl7RZVLccCwT}(Rl8jJWeSVcgz;XHF#<=EqiACzfLQ5h|DD6|J z`{imO!YLWbVu~5Q!p)$ASx)!bK7V3Wdr>CxDL;yI4cBfJ$)56h0!L0eG!)~Zj4ySM zGW6ORZ;gj~SJ-nhbjqq9k{|pcm}C*0VEHCQ5r!07qpUv6eSUA?B1wR(i%aqTpZiHT zw~$>@dj&9ZKE5`f&44dqT{PGZV%9$Ek0=Ry062JG^$w)o9@_eZ85=L&uzw|2YU*2R zWlO0xQl3dq0wH-_CzX(!>&TdEe6_C%!7#V(RZ_Z7de4ous(i>>Z`pMNsZ_pYqr#xFwHULFg&Yzz{b+-h7*C;`ETW~I z!r_vz3uANsywH6 zKCHj&t`!qO#p<=kyo{PwZmA270w0Qmj~Ao^0-JMHF5de>JP1@rzR(MUo~NO9WsH7~ zF3_MIh}5feUXiL16Rx)rhbM@AuK5>iBGb@_zsQ0b{Yk?k%KZ%IV*4&i3Ems6?BC z3w|WHN|w&$A@=kJpFg^Y1@=*t@5_<{ROYzxPyfC-+Yg``7=QE_(L{u;HG+(2a#D8D zC?Nm)WB3oU=M46Ve@MP=0|aDEfB*qCf;a(2SrL^59LNe^j^^+OT7*TSU+wwEAkUV( zN7F>fkC4kbn=Z4~LJ+pN3ok=)H3DpEWkS++K-HqRz$#R-wWyeayY6jz0lcK|{r&y> zf!6~9!<427ZhvpHW|BX6h##*L*s)$O*O9pAR!T24vD(zgMDt^8{3xD<}&kiz%F{Wd-)d$JaN^a=q zZ(fN6ek-jeTXehqNQ6HPZv=K|R2%lQ12&(9lwMu@C_u8qg1uYf;Tdu%Krn#p#D-1i z-{0rBwrTH(ef1IblT0Kr1Gzwrj~q@NiE0YJxMtMn#hIwB=K|~mKWaq; zwiN0oEPrgOX%Ks1?jcz`ZWK|0Qq=)=rGpaT`5_?F&TP;#7!@^`xiMI_43gGsgZIn~ zt_fDs8=OlU0!uDx0@jl$=!D>zM}!+?&jd_*GZZT3m*#8qk|>UfuJsQE+-<#QjrE?X z^`3st5_hcPta}yH;mdz$8JYrHxs*K5fc+X0v451jm4FQ(+(2Z5lx{4H5?r$$P#}7O z(rjPdi%-4(hg=S#ht|Ct;O4~_I(3cqJYtN<>FU=M6nf)5e7c8A_8xj?d?Zp}xuN$c zfVho!CLCpWit5*-C3D*4Ir35H9X&XG`Re(}^HX5jLhtPC8I&Y_5*h_sdRd>WaZv~B zIe*;IFUT+0OZ4c33OkLUK}G0#vQf}@VB+$<>)0E5du#ePo5fxu*Bege?L7(~vCk&& zQP@>BdvyvQd3(ZR*0!|5V;LkCP5CL$>Pl#>pv%x7^PgZj!Z3nMjSPqc-+0g+t4*rU6JbPr%oPXqLSjvUgWa1~8cp#cgTT2<$TsvST$t=*! zL6`)@0*EdL4PFe&>bi$8;UR>9F)d`L~QbyeF(G+!rW+kcz~SQYj7%!9+yA z@r1`MLK2NWjXUWE<0tt;h7~Rw6nPEFgU3{@KT{61Ag}FVOYTubC&ntJhfERtiGLJWXuze3C$`|H|_N48L{8;Zg)Bg z3Ca)uJ%d}Fht3}Qy|c-C;R53Q;D0^2d_X78Dk7Kw+`aqcVHGLEcWZNJ-ZPgnGjD)M@>o_Fi@mh|r>{X3<9=YRC?f|SFr zMB0x%Pc$8V1^XUFUc`9kfCggBRnMDHtN$HHO>A5%F3=gN@%=IME<7zRl)FwruND%W z0`2(NZP|m>?d|H}!v|}=o2-<-kYv14EX=uPI%;`EGOsru;cAm!r&EaCF5!T47mimY z=~&Rc4_4Po2y6}m;ySfpNq;$oTL^D(Y6W;v06~U{>i;{S{nX}X}QR9kNT0P1e>F9WlWQH}L=NegPF2N^YAa)%=D0M*r zshr#eJrT4SMklQmR7q%)BN>WKd3}I}FSQiV|9^Hn&C2N_yUxd=VO&5!7S*5on8qre-o%6Tkwddat;NZRol`G@MMVxkR-t&62CBli=fS(r# zLI3X9F*ySkTW&UZ3rS$_a4x4zC|CMhp1YLmh!6-0bLl(~vR8q%{4F5rRC6mg~ez z{-)yP((z}ONI)y8#lwfF+I9?=z|21mVBL~hAy3QAWl}Yr(fDME z4GlAWIBdeI5r42j5kz>?c<76g&}waT89Lsfq6LSNRbi!r=UDB_<74W5v<&gK48#ks z=|8=F9bK6L0!(HdvKBdp61NG&@cX3vb+wGnb=2E*E?XobKOy+h7EiJh5g0KvWe1CD z$&TA^KaN)+w%y0Eh@DKi|!9*sb;V>En;(r;9#T#{7-ddej>JbAiobd>) z5R29i44Y_e53SxzRxt_=yM(S%IK{G8DU3<@akW_X*+2NCjOURKl(!fXk<0^$2EB*2 zKy5*+Q4Z`a*2s3IQTCQ70yn)~(5=xYxoh$E;@n386OC__hg5J>hSJ2-lrz;%JUi16 zpy8eL;D7IM-l(~$>2*guJQ*{H;YcVXa;bMc@@{YW*P;AX9(rurI#kh8|4-ShtFeb&5*vc%-+!Zy~ObJuefGJjM_DGwD*gB(c-zk6XMC1(uy{?PzP z8fQo~N`{WAPD{tT30#fGhVKV6SH3-$ezxE-k?pa@$UuYgZ#2}E7X3NDs4&SLD-=YhWUl7EDnkpuvKvpEZ9r!Z|DXKuuxrS1_TTl zEm;Z>#bcnU1aqi9#Pte}eKhTn!Pej^a|ZVPCj=)gTAUIfb)zn!dm%`3El6{&h_)or z%?!8#(rUC zz3QpSoNck3CS=k{OZc_5J$<855Q&INI`h;_$5)G?I^KgB#3Y$lGfQcW4LZ7yMIv0 zb(RU%A;G(OJusKQZ)zF^_=2J|Q(#E|Q|a(XS6W2N6eF914a`n!i&VgDc6eVC9qQNO z2YRm*Mu#>Xh+885iC@CZq9wUJFH4wO{8pzQBsgp&I5ZOkj{OoV*T5!;dH66VZNkvG z1+w_mJF*X_JuiHO4byq|vPTaJBaFj7;@4Vyt?BFfP{bWl zocLPf*Rw}wU7LlPX&;PV-puK>*_7$pXbLPD`Y7pRer@(=zBc*;ZMKvt##Ps@BEJhv zbG;*Eps@qIbW{_K9aG62!?+ZGL=WD3bb&Eh{m7Y-x2UT`-k=k2Y;y1sB7Zh?CXT!@ z)_w5ok#+zf+`qaOly`JsFQ;c-1Y!2vJ)>7x^?uj@+;HO8$gJUwp>Y%$vL9u;&?VBr zE|VrnuB2tU;fmdw$eu)U`Jn+sgGsWMk{7s-_7!SelD2MT4p2foOtVB_aRb53G^5rc z3b>k9u0yIERtT(*bvu4d@qfcjRN33f-G=!!rf!B#Db#yPRX8%Ootf4;Q#p#9jkgMR zM4Lslqe~TQXfw^VCes|b+!Zg>)Xz@mXBvFH_Dl3xW}HFl@MX58lI%*-U{VT`Cs}O* z@`l>>gsRa?a>Cmn*Txj?tTZ>bKtuK=5i&Y8Rl#iTW z)US8&E1Az>vX1F#J9;qcT2qay2su7LkBbD%x#ga~jnU^1H-*0OmueD)h!52|Bkr_^ez?|g0pk^uTf~`tg*9Iw}E7W?CTXJ!00O;=%e8Qc7HFc_L2p`2<#~pDd{6r zp11bu#RiGF1nl(6TUoen(JOVxE49kYc1a~*)MIUU*l_J zKvgdIy%v6|@trOypWmfcRcByiyFFxq;% z-miQ4KH{5PWiz5ntrB;&^5D?bO1Qah$hl2tQS65+lVt)waUFzq;5x*ej0Gjvy9!FK z9RWx~B~rGG5NIcTJu$3}jcr*G6F^N>Qs1JZ*fWmn(Joqd0cKz#YdqJOzLr4~R*2ULc}&?Ox)85;bVOS=G)jfY^E zSiwl$3k+_}wd`;O9Zpf_`cp8jO>Otl#2W(B8P(G9 z4ypW@$#eCzuaf6cK9;uEhmGWtE~=wQrl6XKZU*d% z+uPCMpCP|+ubc-*;#V3>hSA~Er_E72%|rZOsoIJV8jEC&j?r!Du;tK@M8$kAq=8i8 zI6ad-ZMALyob!XH^6l5`V}HS_E^2Ni6R-j%V0H9(yaFbmW=4>%XJmThSEsA9eSd^N zLq@!`EMP$OSBY`25Qd|A(Jxnp1|qQ2s@Bm5So=^C~He zBB%6Rex7_>i}Ephu|T0U7l+ZyRk>WGB0VN3)0wCoqpNHIs|NyJ4)K3pSf|NC)Q+h? z(FVZu+`DzUSQMW`0DlyqCuz>7i3{;Nr${lqj?+gMVnsQDzWI3|7i&W3Z*o1SiY(Mp zAK3^wY=sD2&rue_QKqM(vOf#@gh{Yxfk(3g_g=x<)dn>o=K!Cni)^u$cxM*RGQh%S z)0dL_X_FN+Q*7r5Eo5|uJ*BOu*F<^_?I%QbqJ-;+j3UC)5i4CRg?z^)huCc937kUEKP-=vQ+((sVUUoi_jls3 ziiH5#HQa{V*R~IwyJmsqv=G9pomp-gMzoO!6kP>{1)yL%^-537-so&v6`i?gv$iQVbevn zJSoU`V~7UjWwEH9pF{aSauxUX*a56@grjt(1AZN`>O9EKN_LFok%{KVrQQ(7UXuCof>0tjd9l{zOW=3*2Tw*E`nRh&(T0&()?2LxKnY?7~aGt>@ zAsm3h9SVtsSc^~kZA4XxviP)@SyxOVbXMI+15-gvI~tWLuENy$XcS_AwxsMgCr1-c z8-FuSG)Yt^2<~0gJ@|!+(JD0C+@du?T^d+v(y_;Q0b8*xlYp(@Tw2%LPDCSYseU`+ zMGJLfd)`uN)lK5&#h8{T`!>JdY?;XxOmLw5qM%R%= z(?iL=WuwiGbUZCYnHuG#P5EP5zk&;LUSXuLZ4F67qg}`Lyu$ibW>zsfw@ag-I%F#i zn+Tan+-d^t0Y;3sx^o>&N07nsO&Z7WV zf^^mR{LS-Zqo*xDFStqy5@xWOx(xeoG%S9Z}u_2_uXF^h|)RfCS z+>C|UD$B09NlHZvb~RLra6|)USv5_{nXy&{QEx}cU1Y^bbhWM+naLa--+$SD`-A}Y zTNK)vlR0!fx4eoXN>4tFI`+H@=@7u5qTc@lt-qp2Ig9`hQN>?1;Oks4d;lm48KM{2ivP>iz0E%p?hcdgP(gSl`JUcA~w!#Q|zhxcyi)sFII-=3Fd_^JGDY#}V%hP2sY!&S4-KL;Zc_~@EHlVbH&vqXJ(ejI zs=RwEX`n}ouV}BQ)_+KR*?QWtKFsyB<-yhN2R;6%m7~mYAkuKjt3dmt|6O9CXgM+u z1-01AIkhI&MrvmuPbc+3P|sd37mT4rJMy#J+g6Z}duxQxW>17ceRo&P0{;!+F_e7O zsO9cG6?cuK0`3eaC!KK%@MZa>gA~Ngy2y0nRZ=I2C$kMaAb&-wd6m?+x84$cpCgI_ zDw)H!zP%k0QmRmO&(ab?l*+>c^0-9Reo$3m`@UDnefH`SHB&KB4UG_&6kD?)4~Eux zWL=rWCbnbb>wOQ;|tJ}>#6)!zT)-g?0V^)qA>J;Lfb@X){_h}<#O)$+60Fq73P ztr4+DvL!DyjDN}HRiE?)WC-85eR@XR&k>Lu{#`XTui`fo_pU~8uX~V8DI@SJGCUVe zD4>`DDU|p*A>T_?u=HxlR}Zlz@xZY|A}^dN;aTC{s~kcaS}Is`;FOS7Aq?wQ!djel{K9r*psc zoanrk5wLjIi{{pgT-S4@Gn0PGY+qM=`)N3CB@u0GJxjZ9GOdT^b~-xrOqtEHSgsHu z7k|&XH)R1lW1XceYXG*iCa+>me493Ze0qkL0pJ{gxL0q=G`Tv*M@OMu`RHhJeYMzw zX5e!|?2QIP#1u*LS%P3V=#kCan-BoK^nS2ceZ1Iv^V5sh-@V-P`UeMpd;Id?;MK{i zJ!r|^XfQfB`057&r}r-FdKn!YeERfh@PFws(CUkWZ^~qOnN6z$NPB>3A>RR%HyRCQ z^~`(rh)^^IAPQ9Dg^!?lc@;a#Ivfs%n3w9JR1v|}yV8#S`q#f6P%Nc3x;tv(=nKHp ziTcGHS!CSsA5k6?P`{l?K#3Y$9A|TH#0Sp3#&6h@M*`zTM+>Bvy+=J)z8+S@3V%Af zWsk%UXm3xq^1A2kdB*p;@hu)ftuXP>sVl+3k1E76ialIqY56f_-ww01nm&6;Z7O1k8r zTV@1h9b)$&G;*g?24@ih`~tyO=zmv#?TJfCcgnoz3-}H5Z1 z_YOe$Z|tE9kw3WIYy{9$bSZ%&>zExSofH$W-7Us8xt<=U=1Io%efJQyi!=M&EYEQE zAvVeLYKhNR=-pvg>FgOZ@?g!TrPp@R(Rqq$h$so(DzkdQPNxW;AK5#vP_}-J&wz27ow@AR%aC|zFIga zlo|5bNkP7FU0Uk46tN{i9Dl5G#>r2cR~JETjjPNiJV$-+lLBttxf@YqS8d{jhUBvW&>#LaIo%=#@VxYIPUkAEoiFkEGy*b#N60&&+IHf z@W`x^lBpRc&GPQV&7jV_tmajrpVy4tAZ#`}$541{M2FR>{fe}E?ti{6N*vHF5_rAc zP=mo3*99MnY1WghOn4xS?#Gc^!rx;mudy zzd3pLfrMC(Zqz$@w0C+I?isf#2=T~B&D%V3+mYIs-j>E9c`<`P8gP_Ak!V$NGO1Ga zLD|p@qS0tZM1Lauq~K)`#vlpj#GWK@ek8zqB*1&%_Z+_GM-_PjF5+bW$$r(F?>|BO z55$P*!9Tqb|2aGh4jzXX8m~eQ7e5Z+2Ris#84b-z0*okF{JiAo?=Br;)?2ReWzrZK z%S*Y`TWb!S?RJ}z3Rgj?a1~^Zsu$USfVnm1)`n*8{(s>^ihrj9L`wZzLpNIlzf6`f|N0N$xZxg4TbW@5s9pDOh3dKhdQ{(`jO2$2BbEZx z<03cO8YVNb2x=sG*G}@z0xN777#L1&ud=*h-Y3G7YiU{WCe5eWV*83{E}gIoz~2}; zX^Q{B08KKEJO_pY+U{ zpMS2BSxMAW3m^Fm2SY19#A;pcC#%XnIKarEcKwPN}( zt$|wYn^o$U{Eul_GfvM*Au6y^hO%5FPJh?NS8{!A#jUNlHNW6C+7Pwg-_SBN!+(Hz z!f7ku&j`VyDm6O^%+6dpI!TV^#7YUAvdW&40OdUg(RL(xHljDPV+ zv^Ec-$z1o*js$+J`z0FMJ5r5gsu8CeOH}&r$rH3F#FHP81V2pJj!~FsNUzmVLI@r= z48YwUYFYe$?s>G_J^H(*zjN_D=kLJXua#`^O7v^h8y(38z+J`JO-Q4%^+Z=qSTt(W z>vo&yNmT(Y?;=}#0BOk}NxbQyq<G~k_wC|U$c(mvnrL3pQ&qDmcv*CtPJp_5`$lB?ls!}ohb_}_ohzxcn`_^)U2 zAg1ubL_-kdQWBw_Z&9JX6^VKvrImhdr(av?5w>*Parh?X6rB%*kKtZL=zleDzS}xLQ_Bh8`!mw@xFJOpVC9NsRBr6U9S%Mu7MW#6<8FY|uDUPt(;iGKoW;lJFf`)E zqxhLVvkl4vjLXMMawvLVW>Z`}hFx&t4z6<-(`f^B+MLV1$H&3cbaAG}5?35c8p!jz zy+Lx*=7N5sCWB^H;0srkWPcIr0lOz}E-*-DY_yO|^}E>C_LgnpJ&d^C=wC}9VX=?f zdvmjOu+pwQMlkDb)_ey$+<@mXn}0rh62)t~UD88l z`d{j-Z5WP*P!|59JT&RUkLQp~3+Wsz&3!9;#t^KImV+$e=K9&BV}^FI^*TC)pM|ja z9jTu`CuN4XFc4Hy2PC>mw+{mc(W$V7FE3a5uXnia8i{{%`V&e5bF3<9Ja}!RQTNIG zuOJ-lk#bTGBN+k<=zmAIp$Vv)9aZB@BgqB@fP$yW_TS~`O zjRzs$HV{+E*e+PuDdNe4r%oxBh4>q6ETb)JA8n%oZzRXUY=1D`;iL>fICgXS4ijXJ z!I4`)UYZyafHwla_p+@=1c84Oj&>&X1{x%CQr_W!8QFRJ&XO7x^xTOeF^w`}%p3Ox zuEyaScw(_(g{M%9dgFCZPF;7SjdQ9=#@`sHQ6bK8lNxE)X3ae2JDAX4y3^5RNMpkr zmUm#@<8s>GPJeKe)$vn3o4bHz=!vQI%A$}2`3+CLIK^qN4ommWEG-VSBn~tMra}JK zWIjua`78zViCU^w4__3swL=bNI&iYmf0iF7R99OhQ@F6`4x!rABg3s-4?Y94ah>no ztt(!`>k=&u(s~oL-s%91f%Lw`fFK=@Bcd*tiPaKLUw_X|>2(TwTdyX%c7p%fCb($U zsS~5#yn%wqf{QIkOFISuXB|P81h1!it#G#Ihzxgc5JTFBY1trlvlOvUtCNBpspeG^ zzmP*uidUQtC@?MMq)zffU?ceByb6n0x)}*qu_Sw85)Yorca_gVF4UplY3&Im-7XxhgBn z%UTxruN@*DXJw%H^ujqT5Ak9lrTAD%Q!RzB~9LIx*D!gWspS9tfLIuu)@~96uzEU7z=lU*-PBU!U;td!YQB*!qvlv zt3MthMm}25P-5P`FN-qA)<~r+TE@ZT!4UQ|tmS6Ywsy@nVMf)+YrG=h(_owf?!XU)gs_9`Lnwh!f-uYscDGt?IRx+p6cxxy37*EXAP*MPg@1=zH%2#| zrR16|#miufRAJ{P4lD9DPX3aw7T)bG|3b&s;#6T@%2&0DJC||qR2(KJb^)z8D9+>M zveM)7%OLw6kpNgQ-7odLm4K##b#3@+%@m)cDqNiE+?u;-ZDR?SItxn+c8NpSIJ6h*&D$E6m=O zLD(@9o8|}(gAJ}Ek_^koZnWXYaX^dcwtIDZ4Y&6mkII+?W5Bx?(_isD1aCaQu(NuD zr%(G`8<^=14r;5IcSbSH^=~ib9qmor*pALL_^wtN8nljmH-F$c#yx}suhNaf3p`xP zpo^#()e3*dY8C}BwdV1eKvFf-C&iCMY@}a01wz3ADCd*BeW@7v5S4!F;&lP_aJu$G zWMCelIxanPbV>{t6e~_&ZYa7mE<*cszW&VnlKB| zDtp(gY^^GLr++G2o0Yw@DtpJ3jinZvp!HMv^Bs{TtRzKTn#CGwc>pu?V8u%UF4u!~ z50#{rv9vecFPoRuUZsw!#(fuJmOyb}_V*9_m8pERf7lz17jY}c{^h|E+SjUs!YliF zy$GxjxJOR~%z8edPF-VnjFtEkOPQcK9#G!}bng1Vmw#{6s;R({0?*N`Du}4a^_C)G z7N$60Sf;RBHwsT;F`~(D3R~``G2$FWEk~{34(d>Oa4X>ny?7kh8t}G zZRoK2aEW~tDt22^EWLt`q|GO`t(VBwWds8U&BGvWU=i55;1=u(4m6gX&V*mxRX7h< zy$t^CXu$6Ly`n$jGU(T5m&0X!ZvI{dbLP(!@QniPH>qR(Ex4AG;` zqMc&JDOQ|9iDstpFuZhIB~Ono$GzS(xJepFm(w%4!z3EI(@z>E%QVb$I8SbGleW#V zif!Gw9zIMAVG5A=q{U`Sw4EeCCfx7oQ+ZYg!TduhS_ z>)$EsQf8R(J&O*d*qqxGUuw}8YwS^kbb=$)W|b2Xc2fTGGF!|X z=KRV^&*>n?l~i+W4tQXPYn--%fJ2MK@U60Y9IWI-w(Gjg&R2D+9O3X7kmlR&JkkLU zB{ZE}SWif?qZ~(X+mF<(?y9-5v^+4h+a*%y&9aYh$apmEUS!e*@oK-Z8GkC&ztuCT z>Xh2Yasvv`1oo$60zw&}qa3*ucdN*wjfRJEqspt~SE=CjQ?AeQMhnQkv$5Q^z^;e} zBJ9Jb2H=BiAI5Rh$IcN*!yDcBP|U7dtB6ur71qcAE5FN4h^A%{Mw_+l z3+;DF^~(hH(MOgbs(-On5SaxwC;O%@BQH<;63XZtJ}cvM0iU1LXAPgZ{=9-u{hL?)%Pgg>LjiuKHy<@@pfjA}k6n}|?2aWoU*j8c3s-5`t z=Kzas$@E#kVz882sA6c2?KDr_is(-tlqmtoh5ZQD*p`7w|f@0wP|{`e_C#t>z|g}XFC5) zX4+B8XU%k1YkxjxM1QlH{*1l2Z3TY8Ot-8(Q#gfEBuv6x0P>l3h*I!2%aBe#nGUeKAw+gtJO$FD=$0RxZzWj8YkG>YWetO15rCGyxH=(;HHX zkr)w5a@c&6-2P%YM&I*7-J%|l5(l(^)T-r&a_P|F-+$}VWd?WIvfmGENnd$p;ya8{ ztqEqq?6Y>TO3qrzz3R)$B)>>!eqf^pi%a2EG0WyzL!eIf*gQ5OR?65Bu18C-g)4o;rqzlk6%jR)(jX;HJC0P55-! zwF%@h5GrEiyU$3ZH;S>PTa1D*UyTtmb9#yFPdZ5l^nou(5wM7>x-L*fW5gJb4 z&Zg&Mi$o~pKU?d+n>x7M+{%liLx9pjM2PjN9e+c}0E9q$zns`zDT$%3P_}g#Vd0Ip z^vK=L0Ov+ylouUUh_VVid+vLmezZrEqo9ohzk11soJ!t zq<1~(>)FrlqE{{7uZsKy-P_69j1)ZxAj=$qruM2e22H(EiZq`88XA}7gAOHAN$8wj z*_^|m_iTS#N1a-+U1(=5C#40=dy*!@NM+qamKVcA6*PH~^PoHdffkNaAiP75b|%alLx56)rMuEzU+HG*VDR z5VZ$#;`^2@63t@M20EaX+NHfZ5HtClixvgTQ$p){Q%B$seK5y?voopo$VJ;ZcJAuF z5?aIVT0^B(9JoeO++Ml|QYYvd$6wUcwW@!<_I{^2-*wly{*CGsn?sxI}an zui{hvBGJ5OXd88x_EXpSv4gcYPZ?9GRZ+9Z7Ty|ctBa^x(CuY61qBMb?OH|%_$_`B zsKV)ZOb*AiNst1D2f=1+c*?xa3 z$OthBckH$uZ36~KZ1|y#p4k1K(1GW0^Yt$uUj6j;`N?-b{t!JK4#WBN%MQ<_giaB| znR~Mli2UYD4ygs>n>zYosMFiqoD7d4gd`03Ev}=|!La$Bl4n=QyWf!9o!n7Isi2jl zr5-|0I9RR%%TsDNTa`389BuR|lns9{Rwt=V8+Q1pu5R+#8KalUu9%Xm)WXn2m^1Yb zZV%kg|LX%sn)qAB4Ru&QZ`jyI>9-oSw@nvU|2xAaK%mSa8*Uw+V=SW8ON%qyY#l~f zxFo5vjUMt-kW`^U8@!VYt+tVP#TEp&QlKA7RIQ*5mmA zJp?Cca_pUQNB4fjkTY-6Aw2dAAt)XOk@&E58c<BZ0ANLQ?|n^Av0HqLZvsh!(sOh z3C%=8hr$RBB^?-}%OB;c-e;4UK)Cl=0iBVrlrIO$@%ojiynY$mdsY8GAUqUq;@*62lJtIl{06^05!X`?Wd*gGQ$ zx-$yru-<+_L`MAa4u41o+M|%T3CJ}i>C-W4#*7ZbHcA;{UkvYb-A&aSdL z8VpCFe)Pey5=MIX^D?QVouT*?fNe;LjB7={jb z(FZ;Uniq?DAWP9U($FGI=7o6l=ma8nAgga7L$_<^9oJQ}D4?@q38O6QRmS#MKL4_6 z5Yx7^4o=sug~L_<*r7xdj)DS3eLS01eVoatPPnO(sTt*3Or=$}!uV&oyJ{}F_AyN>XUZ>Y?v_rtaQRV#`HziL^c|y8U@L8uE$T3e#QKSyjTk44xt#s zz&S!054Y>2KZ>MAnSjsHvF|t*+h4RS%oMXM4#U9@KYjn<>$lHeq6qWDtM9(~?&KIw zc0LcOND>Ij1Ce_x6h7pkXav3!FnE8$LK5Zhs8o)ibR0yODhdTpSRS(3V4%EaaIkP< z4B^^A25%MhQ@N_0w1fOWXR(ehZmtfH#~6>M*e%9Kqmo9TtcHWFW6%g^aFXV!Xe3a9 z3b)UkdmIFb-)Drs!*J#vN{yjMGKzr4jhGI-Yy|V6SBhdnMD{|mo`HFkihX}2zpcZR zXG#Z{N2`pJpsuZRRwl4QU5pPeomRN(IHsiSaLIgdUj#)mKAMwk2dYV?V8vKanE2RO zLKPQB0DQJozhQyB73*jCFw30jvRJN=PT(y{ALlehA&VJtZ`&g4PMby52Wjj2@uKZ4 zfHRy5Iv?$Mp|Lj2bsu>-TKSH4Q7jEQN8)D)L z6psCX3y8QhA`!9#{LmD^rWdcXkLko)l?(q5$3K7b-K!764?IO@vz`}tnr_&=m74{t z5njKIO=De9CT2|Jjj#yOII&(Po)>w{)?^DR^)j2y(tPZlDX)ccz8rr*Pc1t~x$E7h z4_(%_Q2Yw zqWbo(_5N@qgdJWl^VOLRgZ9j$71TuLPxCYJ zx*_)kWR!)9y+CPGX(wADwX{n*PGtPerLx@YA!bHHT7Pmwg zV$$R=GsEm04FkQb;s?fIStC-TezY-aX=Hn6WP9hz#-JCXr2@@@vs+i#xb&re5PvWV zM+eF?lEEe!tPva-ht`n6gvPZH$JfQh#a7$~)2pnWwezA_q)F}>%zqj_sHKqKdJpS7 zaw?TXcnE8I_ey_JyeU;{S;_}wMJUP%=^h0C%$ zDsLsCPnGE9xja3@e;(sMPw=0oXFx|qQ))v;PJ_nLVI)#CPNtxZQfF|0TX;-5m|XC6 zW&(P}=}I$ha<-Ee0$+;{<^$4iB{WaVW&k!qg^_Z(InIB+dC}?X80nBKG{bnN4-Nwf z%YTQtF*MxNT}|o>pu7c@)L6g=pQbyyP~G!{N5YgYCuUB=3!6%cCqbhksR;ZaS8D!c z@=5TyDiwxFzS!qmo#Eq6x8K@FN-0`ge)WpiE&yYbM^%3BlmkF38a)K6Sm6fHN+4i} z8)@D-(!76D2jiA|J~t4KVXH;W1~e-hw%;p|Ks2ydV41H7Y)`*&PqxI#8>je!xrT+y z5{!-n^7-Op_HSlF9@j0amNTC==WW@^!;kxF#!S z+}`jKgI^-_ofY~HA4?UrzLC=8mc&`AhU(`ivwMFzzGcLy$Z4IyuIDa8A0|V_rIz*q za);N#96;`F7p8g1ChgL|&Uny5JPtIsS{7Bx9!uB)js`VTZ|#;4--e+Y=Z%M>7x+#B z%+p)KoSO-E#*IfLGm(5yk~cCF{3&OwCwchrG>dnp9NT_wKbH#Dns2TibiC~n+gQFy zwa$O1VpY?_Ulv4ytK)B6qzzNeE;N}Y*I5-;so%{EN>e6@%uH1flZe46hLcuV-6#Jp zK37`KH0va0$gqBu`j-W5AMDaDNWut4ZLgE`?`eqoYZ9?`I(0v1EZ69LdzX2A3 zxXA9SoRH|YP-$30P#@r4C`gQWln+pWQi5bC}>oOt9&ZvnS6yeTEXxXHMhJ;9IMe}$7@+;4qSDY_Zb*Oq zrSXwDxMuumc80rL2QcXA4Ih$G7P8;oN{+u0vN3fh|JV3ZZZO#T#Q+zxaX6vXAC0yU zRTJaZx%oO@14JQ?W4o1~&t+MH;(O33Eo;h}iwDL$DKF>|zXF~O7AoH)%s}G~DHi(a z8EQAs1d!z3ObzU_aO15esG(3*9%X;yveyghI6W;9-WN?UGYNzILF)6?p;;`thu7c0 zSmuFghb1x%2=9wTCuQSVovC?=$}vDx{wEz| za4KB?IQP8)**f8qxOnV>0BQ79Oca?YaJWtj=*?MV5Vo<091vPim$1Ep-L{w5?`cS zy%An3zwJ77rAJlMWWqPk8jgSY`5yUycI5BO&aDITFY006+O|TyvqqssF3!a zm>=&*fk8Wc>Y9g3*K-$gU~*o7JyiP)4s`Q#;v2J8#o4Y|<1~Mc)lT8Y#1-(pbK*Fa zYsphY5cvWDfqfFjdd%)Tt4h%%3;Xue4yx68jsBm>#Jg%|MMt&b?$L1Cv(33!$4cOY z($QFlJFs%gTF?S6VWJ7+t-(};0U{0>+*2&15sRG^&qwA!7|Z@kNUAZubY0LlWl+{ zf6ou)AzE5K|K6u(+oMXiiz?v|IxO3cU*LwgfDKB2aF04ul$-*cDuk6Q#W|O8PGuC% z6kNtRm9dhe@ty1hv|9U!c~dOb7X|r&p$+1nqODF5R%fC4Lc1a<+=?8vngw~A&>kFz zc8Zc7*P2bglM#U%0qv75fh2#9dv<66xgGte-e4>A$9Wkz zYWP2Bnacr!OwZE6HCpFgAJzB+@P5h52AcoHn1Co)DH73v+NK?A*7L?zc`Ue2dl za$cbWJe+^ZR*TlH7Oh(?YKB0rGnjODi_mvgM~gCb?qZ9oexbaV{I~J}`4Ek*MTNkZxDvG+0dzw#2BVJV z{W?b(NJzET?Q$C5Tt`4g`$f2hzw7>L6JBE2R9+6vcI?j~)l^>ete9jIE-~Mwym(q& z+D{TuA`Uv}WUb;EyZoo^YC+4cKxH(cC2DBo6S)vZ&ZcAmT<;;fnpG|M8I3qzhE6 z4$QUo;R6>GCt)Jdy+*?KsZp3)9>aeK3#{8555tA+1_n|s;#~L(g>{15GQtPW@P{>m z6!|QcvG7YrW85{g9%HTvwh4~^%OvII* zh^tc9eBQ44T-SWwsQFyieBP+}T-SWwsQFyid~S@kqtm>vdMmySILzP0$kB-Olg?!3 zG|_0?t;k|)k>^$`?^b_gZ%2_MCFC>b>jGXFg$}y{17kv5=tc)lIf8NP#KU}Ns&{y= za%@0&TQ4uIi@N1e{(t_*@B78UVbBK_1NeEfslCC|km6Ua_;-IYzUbw^c36Fc&{ZS! zU7#&QnmnnpMUiZ%1bXnK-MhhAGfR-frb+k8uBr!%BkHgER$w0j;j~BKtP~&B5*i<= zW8n{xALUW!ubx>!*RqcKT`^?PFkKW?s%qk4_mvKL)0~2Lh%z4T+9GNoI`)Xc-@rCG zaBUNM#OoWf5qy6PuVjceJ0S)+7SaP@ggCdp-$^lm*qK(+X;;*{@G{P=@1^zq3tZp* zyk7@a*vD4bJGgEeO@<4!?ozlmo>MKu=!vH{fESTYDE)+6u+TyI=EKLU1>eWMPjX<9 zOG_O^=^kskV(wPkFikYx+zG!O9co!78IU%}$M%=~vcG=-Dp2(=;ny@gM+i(p4yElc zZa~nY)AgDDf}FjJ{<2s0J}a-TwRhF~2&LSs-rh{sd(Yh4uChKAeQ?-ce%@fnoL|}@ zDChF?2J-GX#YnWNtThM*b;DkD(J^zk_2&nN*!igHBzw)|cOPfV0L&@)`Hg_OP+6Wd zXn*JN?uMc_AT#s&VM`j|+f&E&fS~pX% zUJL&b{;!kah#nsYw5R-{H3mt+eYPxm(FV|9JS;FAHVxIk$@=4g!YGp-i5CLkcat}X zBpL*eHjc`1r(rM>Cv}P%Y+B=}&3D)cjXDs8lXZzCe=%7X$3K75mZ6=V*>7~6cGl#s zlFUr3C@7TGi^*@hNa7vgH0*idqw7)ZJqjCrc;xM^8{umaetpAA!!q1_mKJvNTsG`q)%qvvwN*t# zm<-A3^Vx8->kubq`ptKI+jku3d~m%3L2BVB%|IkqLlqYM@I77Q|&7?}u4l2ZTMeWM(PFLKZLN-ki z5t^cmB-8o@RB2>VC7vmyOVjJv8+v=wHT`)MJ}MOv;m+NGxM-5lNTU%mTr|kR284Bk ze-Uuq1=%XZieO2Gw3ReJpn#;D`oh*DYixE}^YEaTm0mGRDF6%#I_?R}f`8QM2$8>Rb)jg5pMI}dz1W0-oh zPnqd8thv3C!9nq#zC;d{fA4elh*~;Mf1j3Ran*4Sxf{zqoHD-(g8H&7KGCu8Rav5E z+>dCdxCbY~f0h5Wm&nqPqzaJX*oi8RYKey1%g z6aQ;A@trx_uNI4JS+%#h2;arqiez`$<#PH^SF< zx^aIlQ|#o4<qKqJ1A){K*uT7)N zyUsCL_HQoDDNTb31~ub9*i4eE$Mi3K?v(3vpLqC26x^V4L;**)b?9N#4!-tnhYyqH zX;%`_*GHYxC&yjRKZeD(LAU%}LLMXQ+v~S$nf^K!n|Y0xf3A{Se@0OaxUbk1h!AR1 zxbB?NL5%eMO!_3i+FNCo*Yd%k6adqucubcEWVu!;uBG(@kZuvTn_VYXK(e>Q000wY zKP6hXdgha6av{%IkdIY1GmE z(9^0|-G<6u9cIS;f2ZtKeG&4{RWd6Hn`Bjrw1~1!|H36i{I&B!NWu3hckW&hiW|IgI^18d;0i&c-I>Fk(~-PCe{U|$p+>D{)#EAoC$ zJBZZP;lF9@CzDLfYLxLh2zu52;rP>K2KSix(Ufys##ytuf2Vb?cQ&5);>&RUYzjMg z5zqV6AY4sy2-{!v{l)$YkFBW0?*zXSI_T2V(ZhP;@yZckbnxTMN7RY1eij#mF%4Jt z&FGRfvpx88|Y|;>hSdgSdY7-XmmWGoa;aVh9SGV8yb+mOcqZ6ZfH-o_c+pcHGhS2LN-l6)VeQWvRYp5Bn zmN8!1?s=Kxmv$M&hbRP#Cw3Vw&ePvlEQ2hX<5hNVe{DPB`YrDaRAtA7A+z1Z?jh&5 zRfz6te=x4%(ywf3HEBELel~Go8)iWSEM#R$vA2)|D4K=Rswcbd0dEBw>AyslWjjA) zJ|3|h7A}P<8L@+tm&xwJ%`ZjTPUR}{7b?`NG!s91e~`01+*7EqO;8w1yQ3(&{$i3_?tThsB9uK9ew>^#dQ8~^D6V}X}pBWDxe*y?={8>!!Jsv;wxg@q;AR5UhgWU4% z)8V%{22}aovZMA<(8O#OhXPxd>c_+8TcYeBdlzz@BVE1KQ(D247I7&jvN|fp6-;D# zTESAVMNlCHt{Y+}ThB*Uh*)B7KksmJLZ8mfq3TpFO2umGs0TgIV|o9|GpNHauYyd` zf1Y_2REqY<+d9C2&N|O8e9PK>d_k(ao?ejj?uVBkTj}p|YMJI%R1cy^`*r9chgtDY zWGag|lc6jAx%LDFVP+F9=C`*aOOES?d+X?{p4b8=c12G> zG@ZrKYFxl{W~T)mx}|yOQs5c`w;s9(aR-O1j~)xm16B^ouDhHpLmszZc&sY1f1)^D zwDvOjmI4}&P5^-MK>t$nm^@4^V)8LHjnT_gcnN?0bQUh-l|KzH2~1-iF2aJ&Dm9X` zcsQONE#*kgU=*pIk8xr;6IhV$p6mLQiy9sf;9XH{WRpD+~ACjhM>x6a8tzM z{$zM1fCW{;+{h(`zsD>Ko$vcXfAivC^p{}(eNgBQmq9qw=nj{`IM*mnxdN5IuZ)-F z$9T5yFZyY)KX}?(?)%ezjX%RH3>P2$rAiWB#2@!R9{Blw9`vsEuMYfdA4hK2$OChWdU&j7P|2WvEe|!E9{cHG*|AxQDql1_I!Qs>KuLNcFYb;(XUmGp@ zH5enb%nIUP$Nkrw;CVcFy6+$NPJ;exQP__Zblv+Q=)LB;!tXUQ)uDgg|1mu7KM%qW zX6O$PdV-;^;t&1r$FHy*e+k)ryz0dQzvIn!(W_@79Gm&7uVc75Z^YcC*}_*d_3A)Q zH_p*uIE14q2){Lt;}@_@UmU#|zmV(mAMy9S7yGXc-h^MnFaJev6yVqR+tU|k@#*vM z$M7HF*R%?k;p}WM9vBp)Ri{!_)`8AFL?kQoV!aqA{C@4U$@;(7DR zGHnFGmE}?f+4r4g+yd>FepUzx2)*81!U@p0(LmtV>kQ|Ue^r`ynR)Xrlc4U_P7_Bd zgAk8- z^b#2^`r#j(Uj6st^5eAnXPum#{@wW4Ke))aS*i$mIYF6#E|*z0=1+(vGvD`l7$}_F zEok?j`r$=;e+~7`1oDwy7vZ?533WMq$$^WS)QqFgGS*KVirsjM3Wk)O$-L4^?Oz7~X~j3ez4^KK`H49Al#iQ~q% z&DCaV}h|>nN25g`~@4T{71?e-hPrtR8H(TqzLSmvlyeePp=} zvXMi{rXU@6C%c^sgbkNPdUZm%8+=>AqE^ZcX;li>kX6 z_cNrse?zh>N8e8$!1_cEn1JoPhY#iN?>*Opx2xFiTSN346gu^yB+hy@GT!sJf**f6 zBV>UZ8S@o|JUI&+4788&qcbWGo6=i`1$?aFZvubkPzkKn1d)Z!%3g90o^lVUB2kUA z5>Z8?0#`38*^9@r7f-P8Vsf~j^@|A6M_2H>f9kKIs#T3HxY;Mw7aow291s|LNAHfY z5uypA0aQI?qN+P9w)@!}KpLbG57Ob8S>Zq3y>2$up{{b5$@Zp&-g@{w#g zIU63HsdMu`|9MiM9pIUZgl~fA64;|4Dg|eS&JK8h7h-^?I`W?$0a94QkIYX2+|KGg ze*@AUPO}>)JVYZNqC?k=f7Z|^UPO<_ywbx{s)8z@`JmaLZG@Ysm(dLT`K$+N&!D^> z?=2!df418D{9fgXQmIT)WUIvg_9FWG|9O!mH`_v{f$gvkWxe~7(uEYfZ`oG#$e|J;Hw%ytIq#e}I_1f)p$RD6no?a*fZsq z9n#MSwP>AmE&jP~#pPY7EgSXzaAaPFd{4j~D{-nH^d1G#-pwAd(b3)`1)tG-e-!R9 zqpd<&WPbqesH%ncIj;9EJa6>duCs_?t8zg82oVKO-1v>%3^NMQ;6)T4*K$klsg&G z?RZET>W7p^M;ESl5HeWtJf#ZPe|i;p_9*m@u*diSGsBG8J)c~(7V@LezAV8&g$)%; zFYvf{dKkdXK80;B_WB;Q<=~kI4LZ1Z=Gl)mcX+wb(+U?cb>DU_4bly^AJV0oxVbv2 zqZK`=-{i(^sXD{U+@M-y)6^dYupu%SO63Cfz<)mr`Ue-G_wS=W{NWFMe=iWv9S85L z+wc~G4v-x^%?H!Vq#@SkI<`to1S;!R1m$jW3UuvSR^epe|({w1J^rpW0Uf9#1BT~drr?n>(!RjoLAzC^ewW8c}x=D z$;@8`(ahMtNq=+(yF(`a855Tx@kdPj(VZB@*sTF1kAtw=(D-MP_o%X!77*qUh9IXo zDSIEy$Zx$#8DWT!>d}aNM;_uv!(hylI1dnHh{kV@ZWL6a0uzNge^D(HiPvgjHH4zA zFo8cc=APo$CH$#TVlW3D_A0*YC+I!^?ZFbniX*t~2$)#-$)Ma3rte=dcz1+l^p^^} z|3XN3mf?kz>0E^u_&CUtzdO8AaYB5eLb8qOXCiCsQE|3KsgnZB)grye1EbMI$LpeU z#58w22fCXWjNARne+RP={)OUxYrCoyJ;_;zSlT?i2&+GZBP+|RI?1P4x$@yEAMYx^ zpfqIlg4-5;16jzD(%g>iyIvl8iFadsw#|JJl4-N6-5J#dhm7uTqLkI~C9YViE5 zH1(TbEh@(qsPi7tZar`;9x&U$$L?a1ABB(ZrkaF|?=!D?S!vOEasD$Er)z+=4^aA4 zZPxj&*IK5Q&bzHgcU$Bi_B?&F^};=3BxIO*uQk@?e;o!DIWAKCr4?__pqXxv!Y){A zhR}fEH1orLNjG=CG*qx1XDeW7o!Fjf&&R!HjK`$51}8#|9n#tW>qn^<1~W65<{`IKSFIwPU&_f-IZXkxmV3WsSr@+aA%**5LST3d>G5G>i_U#{5%NgVs zD^_zT4yYPraz%7+|T;Hz~RZksMr=BA-!X3Rro&dM$Z=H5${vNGHEg}wW2n$AtpjPgBu z@}UsEj-StF>8yc2ZC0rgzNHH7q(TrYa)izHk6`^_k_%|Y%rIHLp(_(mN(q|)Kj*M^ zzfP{Qh5Gs%Tda#O^i!dJBWFdF7S5b+e^oNP1H4M7MX4w?hA@*Zzn(9$3yL~VroUd0 zu#q{F2g5D~JXH?#9DT9)>?VoDKmr4AGTn;e0{f=eZjzpgLL~a^*`lo%hTK`ET-+)e;MkW>Skb?V{>R0PCP`RDeO6 znl&^kXt@nmhiYyF(YY$0X;5{aAoqfXPIhKGn%z&0tfs=Lj1bjSao-VX|VkKSJqy1cA68Zi)buDZXXQD z_xAa>rJ4tEt0JkEXw+n-qPhr{xRZso9vZhZ5o))qE!kwO?5pgZGF`0GQ_AaE{u%ebEoC=rjQvnZ-@$~3&-0Mw) zo1}3pOwYo^93OSgEb)*}l#5*P2%`c{muIMVSv!K)!3OOfQ#N!=h3TWPb;M^FGH*mI z9x`ei8o(Oy+%kGxgz9<{f9Jh9TMo%vN?i386oRshyiT&5{nl0M1(-I8!M zAGj6qwWVo2eA4b|`@tSd#ON~9lyVb~S15Q%;J{3;Y4B;ZU*VCpfBJBgk86H}X?8&u z_&}O{!5vL*mTe5?#4c)hCiQQ02+fsHDT0bv=CeiKLuSIvdZqaSh;%Nud^(VfqDoyF zT)vFV@!rm|A(ji3z_PJntEe}r*7-CBp8B_w6?Hn~9&f?Fmfr(%U>w|tFY9@TqPFAX znklV@SQZYZUvMeFf5|Y*HUSQ5x@&JpyG*n(P`q90tDihlxOs9j$Yf?#IHTv;g?cT5 zYgi48BoSHpAt|(sQxW2g1Fh}8<`A+Y)irgVj48*{;nqsqyf}-*(q`Rkwmi%5jFMt0 zYebtTnHmByk2gdQBVnEp3P?0*l<+&~I4b(O3vjT!ABf)_f6)8L_~JLwuiU1WXl@0E za-wA2EOo?tzN%SDQ6DM^mS;b?J*dCr*{uzz=k(ZUG)HPHb}Km=zEk^-sZ(lDI?m(; zTIz^faDH}(0;+NvIq1Xy!kauPM|^;oP;7do_KF|dAq+m_Y<_e^{;kN3a9`Her9YoQMAH8Gj|!pJ?eSS zjt;0B&peaEfTnN3wNaGGmLk}qKWV`2XbZOsL3)ZgtEEQ$-?Bg6DP z%nOtcUGHFr>D9aT$pjc5__kI+6mQcWe|(^R*2v?H-rV9?9Cs$QuGO{Q>McqGh@rD8 z*^RpTnTS6IuV?G#HoNFT-P8CpBDq6RcS|pVv1=gx?9?+Fg`!57`H4f^z<8`B;jv~x zbI3kR=$<_^55KH zdEqlkHf1*0Tx5E#yYHQJ#nt0L-DkGzxiT}fCwN;~W;*{y4V_);;2hX}T3tcAm)0SV zno6$lfl{dJ6ypiOol5A1f|+(m+S3*XPpWGWNVOuP>LVL3B~JSELWQCke?*fe5l2?~ zW*}ZVNa&oz!*Ozyk@XLL&*6K1RE_8GUBt=$ll`hU-+vOWVnVX&!9Tqb|2aGh4jzYu zH?#^lT>LnMA7gyYFd9lX4!YU@$MKIpv^O~q4Brdk*QRUi^%y%D1=|>8YyOToWKER6 zU1s&pSu~P%J0-MP*cy(3f9kSW%+O1X{C#`-STJ(4j14OwR{p%bJsfU+?^R;AP3lC* zCZM(Y)2Ds3tCxsY{8XmiE%?by*^}W5*|Zlw36i+PS209yo5K1a{I)5qk1%IG7&UqsRL*3n2h6enI*gCf)f1;ry?xclTpNj$NM-Dy}{GJ?(+=v2BXnF4?UqY$3U=$ zLpf7L@99v^5fJdFe@}n6>7nuY%-Ny5+a~AmPP23PFP$DdZCz7D8)X%X{gK4x-1x=* z;PGD{_g4FZKmX~ky<~qd`paK~gVEse(~+DqO7rBenC4G^`4gr2(_b*n;qbAXN=$S3 z=R-{M^zjo)^B6es!@=mu?>oVVUoyjo9aH>*tVZ*+s&-AYe@=PVgZW&Sof;qH`1fCP z{OU@#Bd-f$+lw=?66CK#{Pm?Lq;5sjXjS)&>(Tz)vrw1NeH8vsWYtcVj1t{-&T}d; z<-h;JnWp-}s)6;ZrkSyRVVbMhA3SAs!ZOKc#T8s__cLO-dvPUrZutvmzxvYIrtgceqit@_Zpv{x4e(CgWY2s%G032hKV0 z#2Fse`+n6gf`c!f{x0@->uszx?4P?TTxE4Hk`q*M-mxe!&0QD46czPhQt2wy;3# zW1m=*MDihX$!sjX_#OC<`kI%cwMJ1Hma?e{YP{H+;#MwY z(8$2He$;`G7Uoy~mw}M1?$B@5oZ=d|` zXN{8mR!Sgj=(~r^ZLDC?tzgluda>QwKue0Nang#tDdH6giW69GDC#R%(1+Y9xoSY> zl$f)_3YBd%cI$NY3;2ff4qv5X0ne*SG3)Vcu94Cgt|!9PYO~C?h2<7=Orch(evxK{EQRbX3l|blhfnfgEYQt7-6SvcbZf=OF)2(7e|UKh zs}g^7yF~!&nTijx3zbD+f8e+74t#JQ)Q`Wh`i|EyBNe5+XobRB_#vT3I#kZbdD-sp zOU=j=Yeqcw{OOtV0zC9pTJ8M+3-oPql|U~V)8u)kA*}dfLs(&-re_gijaeKG9?NNj z2y+@oEdyFn?u&LXp;MB=1Jh)le-t$$yh3d6^~D__53neyD(-+oBE=6As@`P|X{Tv9 zx&JV&ufHxzokC*Mw;~!dYIA1Z9O z)JHqv?C+@HUQ0yThKBs)PHOLj*wC%>UKh(Ck}yau_|hFUILi$}p~UfWe+7eK>6Z#^ zUA27UIDRm++`9jqB^;%2esu(u$2xF!m}6uqoaRcbYgl=$FtT*14Mz!#ZlS#@z>g4N zYI3<(#64On(=AN<1>Ov+tE;tGxUd?z$@1!Ang?)W1l*-u>3Mhq7XTQlNUG0C>cxJh19p(nKaE ztnqIWM^>ASr=DLji#ce)O#Vkcyr(((Hf&6IkC?8Xa39R87e0#(!>Gb!$hp zRWjZ7Do7B8aX@Mt=s<)*VJ#=`^8?EjrBe980%-0?LCzjoGmTVgRf$B4PpmmJ;?=@K z;z*~jq+4dhKUP(p&DS0yX-iWSO~>pU2nvU@l$PE^cjn+Q(jTD$8CJt{Us%0X{}6!A z-ScB%rK93HZGQ9)?TEb3Sbw=Jie!^Cl`xwOWAQ>QV>6<;Uxu#5Y2|j=R+t;6jX>Q5 zbrZUcYJI(ymPc43!f`4j3=xT@=F+o`SjI+;%r4(tHmE6bmHSPC#!Ac?qrq02V8gxB z+o-Lj{aN7oTTQ06T3Rs?tWxsy?j?)mWpbX@+0+wpyb&6-J*6J&L4W%izF;9N60s6+ z60MEAMck&xPRv_#5OrC63b<6G)4^4mRI4&Qp^b$;c6fgpXk8<^;Wb>V-|$VXnZH!| zt7kcZAXf^%F*oLr&qSBSj^2Qh?KpT}_5A+i{j3-GlW2JzOq>DM=l(%x48AyWafzqb z>9kc5i8~}pb{%?NFn>0v93KpH%%KU0b&UL?CFA6Kax@GYDc+eW4(${#7OT>Xe$3JK z$#i;i4#^@jkC1v>O$&?p{FkWFIt+Z*2z<9WbDocZ5*Qm|1Sk?%0_>TP%o`JDc6L4UtpkL(VOZRayq|1?MCoGBw=acy#6ZFT^AQdtaIZ4aeYLYwVuFz+^> z);JxTj6Ns$O-zIBHa9xeu?`&93CrNQ(RxSnU5f^5f>nX!#`{vPrfaZz)jgM4n1x&8 zgNVKMDY(!_ZlCB%2MGbC25JGFo z7#C{0BKftK!7SX^>Q1$-?$ndVKMWo)KF92??AcWgvwKOH^{V|+PgQBmQ$G(^ zA=){ZVvFW&tk&Q*V~3z%kU{^if1LXy*D0}ZFL>4;J$#t?HZ=;j=EjVD^hCP4xO5jl zqNHs_5Pz7rS^rQlr43%SE&e;L2U+zx`!!vxe<)^>@pi~hSe((7x*_}cn;{L5o#=VX zYp+?rBd4_RQB$I0IM0!?R)=`WVY<|5Ke#MY@xs=XVwQc>7Qs0hL&JK1d6_NvC}7Fn zHy=J;Em%nVeUc{^X&Kv=S};d>T7G--{cBAKBYzRf0(>P<(CiI~6fUyRdtZ9Qc;e`) zfs7r)D$^{|8tBF`8qwt!u@dyBpNUG+!ru4|ePew-E+vhj8aEB>X^qP^A>ap zzmrVS_Q&L6Kqf?XJ zy^Mz8X@|2ew|g!zw-;{-bxh)#h29Yc?|ETkM@;B-r$48U_`UbYYY}Yk(R-lG^mb>C z)8rB5Bs~a|%oEi@KomO%?lPIhLTOR4?SD+XpGB@uHoA(AxAWOMbMgqk`!f{~o6lQ1 zohsv=UK&hqW*OWVVG*Jmv&=8?=c52;q|mb*DjJSU>7}l&V6678$s}Ul|W@AQR(VsqdXWGIidE=mWOO@MyYEq$4TfVIe~od44b zdlX0&DbsJ>>S#V*;SHrcUGYMm_{m)s@#<_MDziiRef2N^;$1mba>7ev<$qkQ-Wo{l zZ0&Wf)RjFnQM$jl+iGLSwA&UK_TOG$uqc9P0gFqK6$j_wqA&(N_C1!0OYESROWxZu z*2datjZw$)X%w_|H8s+@7uQDWn@J)cRiSYjM}-g>*j;bE>gRE)z^hVNjyzA^gwZtF zc~cs|X(drYbC?0r$7RP|et&R#OP|m21;j^S-4Pt3P$`~%Dc!&xNpxKZG1KBfC{vPu z2@XfcmBrhOb4u`tP#PP~dK%)6O1amOuY!blh9s#A8UjbkiLcMjt+Wz~*on(T1O8|q zu;dC-d)FN7PXhn+@9z)J_5=StaSiVW|EPikbhrt;PS5-I$4bw}>3_&7Bvgx{)iy8u}D z+9~gvd-!NCP;_bs7K?kFg0WlM(a$FiZAU*RxRp{m-fgv<9;tIgz>$X}V`AJ8yOH7Y zN0AdOZu-rFDU=SO3x6vLIw_WZ(5Ih5egx47o3;rpg|6q*XKp;V%YpnEVz!8L^If*2y?;k>S807&%p&ibuTDH$ z;gvh!k+K(|kbjj=3&cJm_`m@q@>2BUZHz_E2z4BZn$SjUO;YJPsaMs@Vupm`a7eZ- zJ%kO1|BWjy6Csnl(0-tXz#LgQ7%!Z)!B;PT{NabUUw!@4@mH@Twhx0e84=MQ9Bp|j zXJ-ya^K7p!_J6#d9-AH<;XNK2g$IZQp{%v45G8PfcL7|`!KOLYALf<$8mw>z=asO# z;Fb0^O=ib6{3NB842QIIjSxQL_RzmsSUN`+1?VtPD30faDg|cSz!a@G(^uB3AHRQt z3$u&~MM^dP`f4#NuJA=qr3ewAN+np83+NuMJROFsR(}K@+o3oVES8H~IE*1f9CzR| zj!jzt1%cH9%Hm~e0$jHM3Cqws&+?>PBOW?oaiZcJ`F=z6u$%IGAbajvuIKk&=ZK{PBFfBC;RVZK-0|mYk zn*v?;il5@_3+=Oy)x3-rNtngsX_+mJlM)tuh;xj$BRq4t;}~jo{k)j1VP-xi3;wCH zJbWmB`E6vjPVBu7{I>z2`O1{qommU@4o@2sZGRi#sVw9?5)Tu-R!uTBoxd(hd>8l} zL_oE@xm{eIpWfd7X*fh+YWPDw)<}GV2w*~6Puh?vbUdL-kHw!@T+CZ%#T3^pnNvGfwpKD@)q=mo3N{x~mWlIdgn;*VmQt!ZEAnsGw z(`n4%2Y0LDKi+)Rsw3S|iOz${%Iqt#%r1@v2NiFxSK?@n@0QHfEVDM-ooutg0yRc-2t{Y82|qO6X}ha Gq5=ScMrMNm delta 35842 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
HSH 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