From 902287434db297a870a808fce1e23e447f4b93c0 Mon Sep 17 00:00:00 2001 From: stebanos Date: Fri, 1 Mar 2019 00:41:09 +0100 Subject: [PATCH] Version 0.1.15 --- dist/g.js | 193 +++++++++++++++++++++++++++++++++++++------------- dist/g.min.js | 119 ++++++++++++++++--------------- package.json | 2 +- 3 files changed, 206 insertions(+), 108 deletions(-) diff --git a/dist/g.js b/dist/g.js index bc5a276..b502737 100644 --- a/dist/g.js +++ b/dist/g.js @@ -1,5 +1,5 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.g = f()}})(function(){var define,module,exports;return (function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o -1 && value % 1 == 0 && value < length); + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); } /** `Object#toString` result references. */ @@ -755,6 +758,14 @@ var freeProcess = moduleExports$1 && freeGlobal.process; /** Used to access faster Node.js helpers. */ var nodeUtil = (function() { try { + // Use `util.types` for Node.js 10+. + var types = freeModule$1 && freeModule$1.require && freeModule$1.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. return freeProcess && freeProcess.binding && freeProcess.binding('util'); } catch (e) {} }()); @@ -970,6 +981,7 @@ function _eachOfLimit(limit) { var nextElem = iterator(obj); var done = false; var running = 0; + var looping = false; function iterateeCallback(err, value) { running -= 1; @@ -981,12 +993,13 @@ function _eachOfLimit(limit) { done = true; return callback(null); } - else { + else if (!looping) { replenish(); } } function replenish () { + looping = true; while (running < limit && !done) { var elem = nextElem(); if (elem === null) { @@ -999,6 +1012,7 @@ function _eachOfLimit(limit) { running += 1; iteratee(elem.value, elem.key, onlyOnce(iterateeCallback)); } + looping = false; } replenish(); @@ -3819,7 +3833,7 @@ function memoize(fn, hasher) { /** * Calls `callback` on a later loop around the event loop. In Node.js this just - * calls `process.nextTicl`. In the browser it will use `setImmediate` if + * calls `process.nextTick`. In the browser it will use `setImmediate` if * available, otherwise `setTimeout(callback, 0)`, which means other higher * priority events may precede the execution of `callback`. * @@ -5596,8 +5610,8 @@ Object.defineProperty(exports, '__esModule', { value: true }); }))); -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"_process":8}],2:[function(require,module,exports){ +}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("timers").setImmediate) +},{"_process":8,"timers":10}],2:[function(require,module,exports){ /** * lodash (Custom Build) * Build: `lodash modularize exports="npm" -o ./` @@ -12893,6 +12907,85 @@ function BlurStack() module.exports = blur; },{}],10:[function(require,module,exports){ +(function (setImmediate,clearImmediate){ +var nextTick = require('process/browser.js').nextTick; +var apply = Function.prototype.apply; +var slice = Array.prototype.slice; +var immediateIds = {}; +var nextImmediateId = 0; + +// DOM APIs, for completeness + +exports.setTimeout = function() { + return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout); +}; +exports.setInterval = function() { + return new Timeout(apply.call(setInterval, window, arguments), clearInterval); +}; +exports.clearTimeout = +exports.clearInterval = function(timeout) { timeout.close(); }; + +function Timeout(id, clearFn) { + this._id = id; + this._clearFn = clearFn; +} +Timeout.prototype.unref = Timeout.prototype.ref = function() {}; +Timeout.prototype.close = function() { + this._clearFn.call(window, this._id); +}; + +// Does not start the time, just sets up the members needed. +exports.enroll = function(item, msecs) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = msecs; +}; + +exports.unenroll = function(item) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = -1; +}; + +exports._unrefActive = exports.active = function(item) { + clearTimeout(item._idleTimeoutId); + + var msecs = item._idleTimeout; + if (msecs >= 0) { + item._idleTimeoutId = setTimeout(function onTimeout() { + if (item._onTimeout) + item._onTimeout(); + }, msecs); + } +}; + +// That's not how node.js implements it but the exposed api is the same. +exports.setImmediate = typeof setImmediate === "function" ? setImmediate : function(fn) { + var id = nextImmediateId++; + var args = arguments.length < 2 ? false : slice.call(arguments, 1); + + immediateIds[id] = true; + + nextTick(function onNextTick() { + if (immediateIds[id]) { + // fn.call() is faster so we optimize for the common use-case + // @see http://jsperf.com/call-apply-segu + if (args) { + fn.apply(null, args); + } else { + fn.call(null); + } + // Prevent ids from leaking + exports.clearImmediate(id); + } + }); + + return id; +}; + +exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function(id) { + delete immediateIds[id]; +}; +}).call(this,require("timers").setImmediate,require("timers").clearImmediate) +},{"process/browser.js":8,"timers":10}],11:[function(require,module,exports){ function DOMParser(options){ this.options = options ||{locator:{}}; @@ -13145,7 +13238,7 @@ function appendElement (hander,node) { exports.DOMParser = DOMParser; //} -},{"./dom":11,"./sax":12}],11:[function(require,module,exports){ +},{"./dom":12,"./sax":13}],12:[function(require,module,exports){ /* * DOM Level 2 * Object DOMException @@ -14391,7 +14484,7 @@ try{ exports.XMLSerializer = XMLSerializer; //} -},{}],12:[function(require,module,exports){ +},{}],13:[function(require,module,exports){ //[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] //[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] //[5] Name ::= NameStartChar (NameChar)* @@ -15026,7 +15119,7 @@ function split(source,start){ exports.XMLReader = XMLReader; -},{}],13:[function(require,module,exports){ +},{}],14:[function(require,module,exports){ 'use strict'; var isEmpty = require('lodash.isempty'); @@ -15179,7 +15272,7 @@ g.mix = function (a, b, t) { module.exports = g; -},{"./libraries/data":14,"./libraries/easing":16,"./libraries/graphics":17,"./libraries/image":18,"./libraries/img/img":22,"./libraries/list":25,"./libraries/math":26,"./libraries/string":27,"./libraries/vg/vg":49,"lodash.flatten":3,"lodash.isempty":5}],14:[function(require,module,exports){ +},{"./libraries/data":15,"./libraries/easing":17,"./libraries/graphics":18,"./libraries/image":19,"./libraries/img/img":23,"./libraries/list":26,"./libraries/math":27,"./libraries/string":28,"./libraries/vg/vg":50,"lodash.flatten":3,"lodash.isempty":5}],15:[function(require,module,exports){ 'use strict'; var values = require('lodash.values'); @@ -15370,7 +15463,7 @@ g.ticks = function (min, max, n) { module.exports = g; -},{"./list":25,"lodash.groupby":4,"lodash.values":7}],15:[function(require,module,exports){ +},{"./list":26,"lodash.groupby":4,"lodash.values":7}],16:[function(require,module,exports){ /* jshint eqeqeq:false */ 'use strict'; @@ -15510,7 +15603,7 @@ objEquiv = function (a, b) { }; module.exports = deepEqual; -},{}],16:[function(require,module,exports){ +},{}],17:[function(require,module,exports){ 'use strict'; // Easing functions in javascript ported from jQuery Easing Plugin: @@ -15714,7 +15807,7 @@ g.easing = function (f) { module.exports = g; -},{}],17:[function(require,module,exports){ +},{}],18:[function(require,module,exports){ 'use strict'; var vg = require('./vg/vg'); @@ -16248,7 +16341,7 @@ g.invert = function (shape) { module.exports = g; -},{"./img/img":22,"./math":26,"./vg/vg":49}],18:[function(require,module,exports){ +},{"./img/img":23,"./math":27,"./vg/vg":50}],19:[function(require,module,exports){ 'use strict'; var vg = require('./vg/vg'); @@ -16504,7 +16597,7 @@ g.twirl = function (image, position, radius, angle) { module.exports = g; -},{"./img/img":22,"./vg/vg":49}],19:[function(require,module,exports){ +},{"./img/img":23,"./vg/vg":50}],20:[function(require,module,exports){ 'use strict'; var async = require('async'); @@ -16731,7 +16824,7 @@ AsyncRenderer.renderBW = function (iCanvas, callback) { module.exports = AsyncRenderer; -},{"./canvasrenderer":21,"./process":23,"async":1}],20:[function(require,module,exports){ +},{"./canvasrenderer":22,"./process":24,"async":1}],21:[function(require,module,exports){ 'use strict'; var blend, process; @@ -17648,7 +17741,7 @@ blend = (function () { module.exports = blend; -},{}],21:[function(require,module,exports){ +},{}],22:[function(require,module,exports){ 'use strict'; var blend = require('./blend'); @@ -18105,7 +18198,7 @@ CanvasRenderer.renderBW = function (iCanvas) { module.exports = CanvasRenderer; -},{"./blend":20,"./process":23,"./util":24}],22:[function(require,module,exports){ +},{"./blend":21,"./process":24,"./util":25}],23:[function(require,module,exports){ 'use strict'; var util = require('./util'); @@ -19015,7 +19108,7 @@ img.merge = merge; module.exports = img; -},{"./asyncrenderer":19,"./canvasrenderer":21,"./util":24,"async":1}],23:[function(require,module,exports){ +},{"./asyncrenderer":20,"./canvasrenderer":22,"./util":25,"async":1}],24:[function(require,module,exports){ /*! * Image processing based on Pixastic library: * @@ -20432,7 +20525,7 @@ var process = { module.exports = process; -},{"./util":24,"stackblur":9}],24:[function(require,module,exports){ +},{"./util":25,"stackblur":9}],25:[function(require,module,exports){ 'use strict'; // UTILITIES. @@ -20552,7 +20645,7 @@ module.exports = { transform: transform }; -},{}],25:[function(require,module,exports){ +},{}],26:[function(require,module,exports){ 'use strict'; var deepEqual = require('./deepequal'); @@ -20822,7 +20915,7 @@ g.zipMap = function (keys, vals) { module.exports = g; -},{"./deepequal":15,"./util":28}],26:[function(require,module,exports){ +},{"./deepequal":16,"./util":29}],27:[function(require,module,exports){ 'use strict'; var reduce = require('lodash.reduce'); @@ -21254,7 +21347,7 @@ g.xor = function (bool1, bool2) { module.exports = g; -},{"./util":28,"./vg/vg":49,"lodash.reduce":6}],27:[function(require,module,exports){ +},{"./util":29,"./vg/vg":50,"lodash.reduce":6}],28:[function(require,module,exports){ 'use strict'; var g = {}; @@ -21417,7 +21510,7 @@ g.toWords = function (s) { module.exports = g; -},{}],28:[function(require,module,exports){ +},{}],29:[function(require,module,exports){ 'use strict'; var randomGenerator = function (seed) { @@ -21444,7 +21537,7 @@ var randomGenerator = function (seed) { }; exports.randomGenerator = randomGenerator; -},{}],29:[function(require,module,exports){ +},{}],30:[function(require,module,exports){ // Draw objects to the canvas 'use strict'; @@ -21580,7 +21673,7 @@ vg.toSVG = function (o, options) { module.exports = vg; -},{"../objects/color":32}],30:[function(require,module,exports){ +},{"../objects/color":33}],31:[function(require,module,exports){ // Object creation / manipulation commands 'use strict'; @@ -22493,7 +22586,7 @@ vg.compound = function (shape1, shape2, method) { module.exports = vg; -},{"../../../../third_party/clipper":50,"../objects/color":32,"../objects/group":33,"../objects/path":35,"../objects/point":36,"../objects/rect":37,"../objects/transform":39,"../objects/transformable":40,"../util/bezier":42,"../util/geo":44,"../util/math":46,"../util/random":47,"lodash.flatten":3}],31:[function(require,module,exports){ +},{"../../../../third_party/clipper":51,"../objects/color":33,"../objects/group":34,"../objects/path":36,"../objects/point":37,"../objects/rect":38,"../objects/transform":40,"../objects/transformable":41,"../util/bezier":43,"../util/geo":45,"../util/math":47,"../util/random":48,"lodash.flatten":3}],32:[function(require,module,exports){ // Basic shapes 'use strict'; @@ -22820,7 +22913,7 @@ vg.demoEllipse = function () { module.exports = vg; -},{"../objects/color":32,"../objects/path":35,"../objects/point":36,"../objects/text":38,"../util/geo":44}],32:[function(require,module,exports){ +},{"../objects/color":33,"../objects/path":36,"../objects/point":37,"../objects/text":39,"../util/geo":45}],33:[function(require,module,exports){ // Color object 'use strict'; @@ -23150,7 +23243,7 @@ Color.hsl = function (hue, saturation, lightness, alpha, range) { module.exports = Color; -},{"../util/color":43,"../util/js":45,"../util/math":46}],33:[function(require,module,exports){ +},{"../util/color":44,"../util/js":46,"../util/math":47}],34:[function(require,module,exports){ // Shape group object 'use strict'; @@ -23299,7 +23392,7 @@ Group.prototype.draw = function (ctx) { module.exports = Group; -},{"../objects/color":32,"../objects/path":35,"../objects/rect":37}],34:[function(require,module,exports){ +},{"../objects/color":33,"../objects/path":36,"../objects/rect":38}],35:[function(require,module,exports){ // 3-dimensional matrix 'use strict'; @@ -23483,7 +23576,7 @@ Matrix4.prototype.translate = function (tx, ty, tz) { }; module.exports = Matrix4; -},{"../objects/vec3":41}],35:[function(require,module,exports){ +},{"../objects/vec3":42}],36:[function(require,module,exports){ // Bézier path object 'use strict'; @@ -24071,7 +24164,7 @@ Path.combine = function () { module.exports = Path; -},{"../objects/color":32,"../objects/rect":37,"../util/bezier":42,"../util/geo":44,"../util/math":46,"lodash.flatten":3}],36:[function(require,module,exports){ +},{"../objects/color":33,"../objects/rect":38,"../util/bezier":43,"../util/geo":45,"../util/math":47,"lodash.flatten":3}],37:[function(require,module,exports){ // 2-dimensional point object. 'use strict'; @@ -24174,7 +24267,7 @@ Point.prototype.toString = function () { }; module.exports = Point; -},{}],37:[function(require,module,exports){ +},{}],38:[function(require,module,exports){ // Rectangle object 'use strict'; @@ -24271,7 +24364,7 @@ Rect.prototype.centerPoint = function () { }; module.exports = Rect; -},{"../objects/point":36}],38:[function(require,module,exports){ +},{"../objects/point":37}],39:[function(require,module,exports){ // Text object // Internally the object is called "GText" to avoid conflicts with the DOM Text object. @@ -24463,7 +24556,7 @@ GText.prototype.toSVG = function () { module.exports = GText; -},{"../objects/color":32,"../objects/rect":37,"../objects/transform":39}],39:[function(require,module,exports){ +},{"../objects/color":33,"../objects/rect":38,"../objects/transform":40}],40:[function(require,module,exports){ // 2-dimensional transformation matrix 'use strict'; @@ -24670,7 +24763,7 @@ Transform.prototype.transformShape = function (shape) { module.exports = Transform; -},{"../objects/group":33,"../objects/path":35,"../objects/point":36,"../util/bezier":42,"../util/math":46}],40:[function(require,module,exports){ +},{"../objects/group":34,"../objects/path":36,"../objects/point":37,"../util/bezier":43,"../util/math":47}],41:[function(require,module,exports){ // Mixin for Path and Group 'use strict'; @@ -24723,7 +24816,7 @@ var Transformable = { module.exports = Transformable; -},{"../objects/point":36,"../objects/transform":39}],41:[function(require,module,exports){ +},{"../objects/point":37,"../objects/transform":40}],42:[function(require,module,exports){ //// VECTORS AND MATRICES /////////////////////////////////////////////// 'use strict'; @@ -24810,7 +24903,7 @@ Vec3.prototype.transform = function (matrix4) { }; module.exports = Vec3; -},{}],42:[function(require,module,exports){ +},{}],43:[function(require,module,exports){ // Bézier Math // Thanks to Prof. F. De Smedt at the Vrije Universiteit Brussel, 2006. @@ -25096,7 +25189,7 @@ bezier.extrema = function (x1, y1, x2, y2, x3, y3, x4, y4) { module.exports = bezier; -},{"../objects/point":36,"../objects/rect":37,"../util/math":46}],43:[function(require,module,exports){ +},{"../objects/point":37,"../objects/rect":38,"../util/math":47}],44:[function(require,module,exports){ // Color conversion functions 'use strict'; @@ -25420,7 +25513,7 @@ color.hsl2rgb = function (h, s, l) { module.exports = color; -},{}],44:[function(require,module,exports){ +},{}],45:[function(require,module,exports){ // Geometry 'use strict'; @@ -25480,7 +25573,7 @@ geo.pointInPolygon = function (points, x, y) { module.exports = geo; -},{"../objects/point":36,"../util/math":46}],45:[function(require,module,exports){ +},{"../objects/point":37,"../util/math":47}],46:[function(require,module,exports){ // Generic JavaScript utility methods 'use strict'; @@ -25505,7 +25598,7 @@ exports.defineGetter = function (cls, property, getterFn) { }); }; -},{}],46:[function(require,module,exports){ +},{}],47:[function(require,module,exports){ // Math Utility functions 'use strict'; @@ -25657,7 +25750,7 @@ math.noise = function (x, y, z) { module.exports = math; -},{}],47:[function(require,module,exports){ +},{}],48:[function(require,module,exports){ // Pseudo-random generator 'use strict'; @@ -25688,7 +25781,7 @@ function generator(seed) { exports.generator = generator; -},{}],48:[function(require,module,exports){ +},{}],49:[function(require,module,exports){ // SVG Parser // The SVG engine uses code from the following libraries: @@ -26446,7 +26539,7 @@ exports.parseString = function (s) { } }; -},{"../objects/color":32,"../objects/group":33,"../objects/path":35,"../objects/point":36,"../objects/transform":39,"xmldom":10}],49:[function(require,module,exports){ +},{"../objects/color":33,"../objects/group":34,"../objects/path":36,"../objects/point":37,"../objects/transform":40,"xmldom":11}],50:[function(require,module,exports){ // vg.js // JavaScript library for vector graphics // https://github.com/nodebox/vg.js @@ -26498,7 +26591,7 @@ importCommands(require('./commands/filters')); importCommands(require('./commands/shapes')); module.exports = vg; -},{"./commands/draw":29,"./commands/filters":30,"./commands/shapes":31,"./objects/color":32,"./objects/group":33,"./objects/matrix4":34,"./objects/path":35,"./objects/point":36,"./objects/rect":37,"./objects/text":38,"./objects/transform":39,"./objects/transformable":40,"./objects/vec3":41,"./util/bezier":42,"./util/color":43,"./util/geo":44,"./util/math":46,"./util/random":47,"./util/svg":48,"lodash.assignin":2}],50:[function(require,module,exports){ +},{"./commands/draw":30,"./commands/filters":31,"./commands/shapes":32,"./objects/color":33,"./objects/group":34,"./objects/matrix4":35,"./objects/path":36,"./objects/point":37,"./objects/rect":38,"./objects/text":39,"./objects/transform":40,"./objects/transformable":41,"./objects/vec3":42,"./util/bezier":43,"./util/color":44,"./util/geo":45,"./util/math":47,"./util/random":48,"./util/svg":49,"lodash.assignin":2}],51:[function(require,module,exports){ // rev 482 /******************************************************************************** * * @@ -33423,5 +33516,5 @@ module.exports = vg; }; })(); -},{}]},{},[13])(13) -}); \ No newline at end of file +},{}]},{},[14])(14) +}); diff --git a/dist/g.min.js b/dist/g.min.js index e6c97f7..2fb5794 100644 --- a/dist/g.min.js +++ b/dist/g.min.js @@ -1,9 +1,9 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.g = f()}})(function(){var define,module,exports;return (function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o-1&&n%1==0&&n<=M}function z(n){return null!=n&&U(n.length)&&!function(n){if(!u(n))return!1;var t=T(n);return t==F||t==I||t==B||t==_}(n)}var P={};function V(){}function q(n){return function(){if(null!==n){var t=n;n=null,t.apply(this,arguments)}}}var D="function"==typeof Symbol&&Symbol.iterator,R=function(n){return D&&n[D]&&n[D]()};function C(n){return null!=n&&"object"==typeof n}var $="[object Arguments]";function W(n){return C(n)&&T(n)==$}var N=Object.prototype,Q=N.hasOwnProperty,G=N.propertyIsEnumerable,H=W(function(){return arguments}())?W:function(n){return C(n)&&Q.call(n,"callee")&&!G.call(n,"callee")},J=Array.isArray;var K="object"==typeof n&&n&&!n.nodeType&&n,X=K&&"object"==typeof module&&module&&!module.nodeType&&module,Y=X&&X.exports===K?b.Buffer:void 0,Z=(Y?Y.isBuffer:void 0)||function(){return!1},nn=9007199254740991,tn=/^(?:0|[1-9]\d*)$/;function rn(n,t){return!!(t=null==t?nn:t)&&("number"==typeof n||tn.test(n))&&n>-1&&n%1==0&&n2&&(u=t(arguments,1)),r){var f={};Vn(i,function(n,t){f[t]=n}),f[n]=u,c=!0,a=Object.create(null),e(r,f)}else i[n]=u,Un(a[n]||[],function(n){n()}),v()});o++;var f=y(r[r.length-1]);r.length>1?f(i,u):f(u)}(n,r)})}function v(){if(0===f.length&&0===o)return e(null,i);for(;f.length&&o=0&&r.push(e)}),r}Vn(n,function(t,r){if(!J(t))return p(r,[t]),void l.push(r);var e=t.slice(0,t.length-1),u=e.length;if(0===u)return p(r,t),void l.push(r);s[r]=u,Un(e,function(i){if(!n[i])throw new Error("async.auto task `"+r+"` has a non-existent dependency `"+i+"` in "+e.join(", "));!function(n,t){var r=a[n];r||(r=a[n]=[]);r.push(t)}(i,function(){0===--u&&p(r,t)})})}),function(){var n,t=0;for(;l.length;)n=l.pop(),t++,Un(h(n),function(n){0==--s[n]&&l.push(n)});if(t!==u)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}(),v()};function Cn(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r=e?n:function(n,t,r){var e=-1,u=n.length;t<0&&(t=-t>u?0:u+t),(r=r>u?u:r)<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=Array(u);++e-1;);return r}(u,i),function(n,t){for(var r=n.length;r--&&Dn(t,n[r],0)>-1;);return r}(u,i)+1).join("")}var ft=/^(?:async\s+)?(function)?\s*[^\(]*\(\s*([^\)]*)\)/m,lt=/,/,st=/(=.+)?(\s*)$/,pt=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm;function vt(n,t){var r={};Vn(n,function(n,t){var e,u,i=h(n),o=!i&&1===n.length||i&&0===n.length;if(J(n))e=n.slice(0,-1),n=n[n.length-1],r[t]=e.concat(e.length>0?c:n);else if(o)r[t]=n;else{if(e=u=(u=(u=(u=(u=n).toString().replace(pt,"")).match(ft)[2].replace(" ",""))?u.split(lt):[]).map(function(n){return at(n.replace(st,""))}),0===n.length&&!i&&0===e.length)throw new Error("autoInject task functions require explicit parameters.");i||e.pop(),r[t]=e.concat(c)}function c(t,r){var u=Cn(e,function(n){return t[n]});u.push(r),y(n).apply(null,u)}}),Rn(r,t)}function ht(){this.head=this.tail=null,this.length=0}function yt(n,t){n.length=1,n.head=n.tail=t}function dt(n,t,r){if(null==t)t=1;else if(0===t)throw new Error("Concurrency must not be zero");var e=y(n),u=0,i=[],o=!1;function c(n,t,r){if(null!=r&&"function"!=typeof r)throw new Error("task callback must be a function");if(s.started=!0,J(n)||(n=[n]),0===n.length&&s.idle())return f(function(){s.drain()});for(var e=0,u=n.length;e0&&i.splice(c,1),o.callback.apply(o,arguments),null!=t&&s.error(t,o.data)}u<=s.concurrency-s.buffer&&s.unsaturated(),s.idle()&&s.drain(),s.process()}}var l=!1,s={_tasks:new ht,concurrency:t,payload:r,saturated:V,unsaturated:V,buffer:t/4,empty:V,drain:V,error:V,started:!1,paused:!1,push:function(n,t){c(n,!1,t)},kill:function(){s.drain=V,s._tasks.empty()},unshift:function(n,t){c(n,!0,t)},remove:function(n){s._tasks.remove(n)},process:function(){if(!l){for(l=!0;!s.paused&&u2&&(i=t(arguments,1)),u[r]=i,e(n)})},function(n){e(n,u)})}function vr(n,t){pr(xn,n,t)}function hr(n,t,r){pr(Sn(t),n,r)}var yr=function(n,t){var r=y(n);return dt(function(n,t){r(n[0],t)},t,1)},dr=function(n,t){var r=yr(n,t);return r.push=function(n,t,e){if(null==e&&(e=V),"function"!=typeof e)throw new Error("task callback must be a function");if(r.started=!0,J(n)||(n=[n]),0===n.length)return f(function(){r.drain()});t=t||0;for(var u=r._tasks.head;u&&t>=u.priority;)u=u.next;for(var i=0,o=n.length;ie?1:0}Tn(n,function(n,t){e(n,function(r,e){if(r)return t(r);t(null,{value:n,criteria:e})})},function(n,t){if(n)return r(n);r(null,Cn(t.sort(u),Ht("value")))})}function _r(n,t,r){var u=y(n);return e(function(e,i){var o,c=!1;e.push(function(){c||(i.apply(null,arguments),clearTimeout(o))}),o=setTimeout(function(){var t=n.name||"anonymous",e=new Error('Callback function "'+t+'" timed out.');e.code="ETIMEDOUT",r&&(e.info=r),c=!0,i(e)},t),u.apply(null,e)})}var Mr=Math.ceil,Ur=Math.max;function zr(n,t,r,e){var u=y(r);In(function(n,t,r,e){for(var u=-1,i=Ur(Mr((t-n)/(r||1)),0),o=Array(i);i--;)o[e?i:++u]=n,n+=r;return o}(0,n,1),t,u,e)}var Pr=Ln(zr,1/0),Vr=Ln(zr,1);function qr(n,t,r,e){arguments.length<=3&&(e=r,r=t,t=J(n)?[]:{}),e=q(e||V);var u=y(r);xn(n,function(n,r,e){u(t,n,r,e)},function(n){e(n,t)})}function Dr(n,r){var e,u=null;r=r||V,Ct(n,function(n,r){y(n)(function(n,i){e=arguments.length>2?t(arguments,1):i,u=n,r(!n)})},function(){r(u,e)})}function Rr(n){return function(){return(n.unmemoized||n).apply(null,arguments)}}function Cr(n,r,e){e=jn(e||V);var u=y(r);if(!n())return e(null);var i=function(r){if(r)return e(r);if(n())return u(i);var o=t(arguments,1);e.apply(null,[null].concat(o))};u(i)}function $r(n,t,r){Cr(function(){return!n.apply(this,arguments)},t,r)}var Wr=function(n,r){if(r=q(r||V),!J(n))return r(new Error("First argument to waterfall must be an array of functions"));if(!n.length)return r();var e=0;function u(t){var r=y(n[e++]);t.push(jn(i)),r.apply(null,t)}function i(i){if(i||e===n.length)return r.apply(null,arguments);u(t(arguments,1))}u([])},Nr={apply:r,applyEach:Bn,applyEachSeries:Mn,asyncify:l,auto:Rn,autoInject:vt,cargo:mt,compose:St,concat:Ot,concatLimit:Lt,concatSeries:wt,constant:xt,detect:Bt,detectLimit:Ft,detectSeries:It,dir:Mt,doDuring:Ut,doUntil:Pt,doWhilst:zt,during:Vt,each:Dt,eachLimit:Rt,eachOf:xn,eachOfLimit:kn,eachOfSeries:gt,eachSeries:Ct,ensureAsync:$t,every:Nt,everyLimit:Qt,everySeries:Gt,filter:Yt,filterLimit:Zt,filterSeries:nr,forever:tr,groupBy:er,groupByLimit:rr,groupBySeries:ur,log:ir,map:Tn,mapLimit:In,mapSeries:_n,mapValues:cr,mapValuesLimit:or,mapValuesSeries:ar,memoize:lr,nextTick:sr,parallel:vr,parallelLimit:hr,priorityQueue:dr,queue:yr,race:mr,reduce:bt,reduceRight:gr,reflect:br,reflectAll:jr,reject:kr,rejectLimit:Lr,rejectSeries:Or,retry:xr,retryable:Er,seq:jt,series:Ar,setImmediate:f,some:Tr,someLimit:Br,someSeries:Fr,sortBy:Ir,timeout:_r,times:Pr,timesLimit:zr,timesSeries:Vr,transform:qr,tryEach:Dr,unmemoize:Rr,until:$r,waterfall:Wr,whilst:Cr,all:Nt,allLimit:Qt,allSeries:Gt,any:Tr,anyLimit:Br,anySeries:Fr,find:Bt,findLimit:Ft,findSeries:It,forEach:Dt,forEachSeries:Ct,forEachLimit:Rt,forEachOf:xn,forEachOfSeries:gt,forEachOfLimit:kn,inject:bt,foldl:bt,foldr:gr,select:Yt,selectLimit:Zt,selectSeries:nr,wrapSync:l};n.default=Nr,n.apply=r,n.applyEach=Bn,n.applyEachSeries=Mn,n.asyncify=l,n.auto=Rn,n.autoInject=vt,n.cargo=mt,n.compose=St,n.concat=Ot,n.concatLimit=Lt,n.concatSeries=wt,n.constant=xt,n.detect=Bt,n.detectLimit=Ft,n.detectSeries=It,n.dir=Mt,n.doDuring=Ut,n.doUntil=Pt,n.doWhilst=zt,n.during=Vt,n.each=Dt,n.eachLimit=Rt,n.eachOf=xn,n.eachOfLimit=kn,n.eachOfSeries=gt,n.eachSeries=Ct,n.ensureAsync=$t,n.every=Nt,n.everyLimit=Qt,n.everySeries=Gt,n.filter=Yt,n.filterLimit=Zt,n.filterSeries=nr,n.forever=tr,n.groupBy=er,n.groupByLimit=rr,n.groupBySeries=ur,n.log=ir,n.map=Tn,n.mapLimit=In,n.mapSeries=_n,n.mapValues=cr,n.mapValuesLimit=or,n.mapValuesSeries=ar,n.memoize=lr,n.nextTick=sr,n.parallel=vr,n.parallelLimit=hr,n.priorityQueue=dr,n.queue=yr,n.race=mr,n.reduce=bt,n.reduceRight=gr,n.reflect=br,n.reflectAll=jr,n.reject=kr,n.rejectLimit=Lr,n.rejectSeries=Or,n.retry=xr,n.retryable=Er,n.seq=jt,n.series=Ar,n.setImmediate=f,n.some=Tr,n.someLimit=Br,n.someSeries=Fr,n.sortBy=Ir,n.timeout=_r,n.times=Pr,n.timesLimit=zr,n.timesSeries=Vr,n.transform=qr,n.tryEach=Dr,n.unmemoize=Rr,n.until=$r,n.waterfall=Wr,n.whilst=Cr,n.all=Nt,n.allLimit=Qt,n.allSeries=Gt,n.any=Tr,n.anyLimit=Br,n.anySeries=Fr,n.find=Bt,n.findLimit=Ft,n.findSeries=It,n.forEach=Dt,n.forEachSeries=Ct,n.forEachLimit=Rt,n.forEachOf=xn,n.forEachOfSeries=gt,n.forEachOfLimit=kn,n.inject=bt,n.foldl=bt,n.foldr=gr,n.select=Yt,n.selectLimit=Zt,n.selectSeries=nr,n.wrapSync=l,Object.defineProperty(n,"__esModule",{value:!0})}); +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.g = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i-1&&n%1==0&&n<=M}function q(n){return null!=n&&U(n.length)&&!function(n){if(!u(n))return!1;var t=T(n);return t==F||t==I||t==B||t==_}(n)}var z={};function P(){}function V(n){return function(){if(null!==n){var t=n;n=null,t.apply(this,arguments)}}}var D="function"==typeof Symbol&&Symbol.iterator,R=function(n){return D&&n[D]&&n[D]()};function C(n){return null!=n&&"object"==typeof n}var $="[object Arguments]";function W(n){return C(n)&&T(n)==$}var N=Object.prototype,Q=N.hasOwnProperty,G=N.propertyIsEnumerable,H=W(function(){return arguments}())?W:function(n){return C(n)&&Q.call(n,"callee")&&!G.call(n,"callee")},J=Array.isArray;var K="object"==typeof n&&n&&!n.nodeType&&n,X=K&&"object"==typeof module&&module&&!module.nodeType&&module,Y=X&&X.exports===K?b.Buffer:void 0,Z=(Y?Y.isBuffer:void 0)||function(){return!1},nn=9007199254740991,tn=/^(?:0|[1-9]\d*)$/;function rn(n,t){var r=typeof n;return!!(t=null==t?nn:t)&&("number"==r||"symbol"!=r&&tn.test(n))&&n>-1&&n%1==0&&n2&&(u=t(arguments,1)),r){var f={};Pn(i,function(n,t){f[t]=n}),f[n]=u,c=!0,a=Object.create(null),e(r,f)}else i[n]=u,Un(a[n]||[],function(n){n()}),v()});o++;var f=y(r[r.length-1]);r.length>1?f(i,u):f(u)}(n,r)})}function v(){if(0===f.length&&0===o)return e(null,i);for(;f.length&&o=0&&r.push(e)}),r}Pn(n,function(t,r){if(!J(t))return p(r,[t]),void l.push(r);var e=t.slice(0,t.length-1),u=e.length;if(0===u)return p(r,t),void l.push(r);s[r]=u,Un(e,function(i){if(!n[i])throw new Error("async.auto task `"+r+"` has a non-existent dependency `"+i+"` in "+e.join(", "));!function(n,t){var r=a[n];r||(r=a[n]=[]);r.push(t)}(i,function(){0===--u&&p(r,t)})})}),function(){var n,t=0;for(;l.length;)n=l.pop(),t++,Un(h(n),function(n){0==--s[n]&&l.push(n)});if(t!==u)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}(),v()};function Cn(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r=e?n:function(n,t,r){var e=-1,u=n.length;t<0&&(t=-t>u?0:u+t),(r=r>u?u:r)<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=Array(u);++e-1;);return r}(u,i),function(n,t){for(var r=n.length;r--&&Dn(t,n[r],0)>-1;);return r}(u,i)+1).join("")}var ft=/^(?:async\s+)?(function)?\s*[^\(]*\(\s*([^\)]*)\)/m,lt=/,/,st=/(=.+)?(\s*)$/,pt=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm;function vt(n,t){var r={};Pn(n,function(n,t){var e,u,i=h(n),o=!i&&1===n.length||i&&0===n.length;if(J(n))e=n.slice(0,-1),n=n[n.length-1],r[t]=e.concat(e.length>0?c:n);else if(o)r[t]=n;else{if(e=u=(u=(u=(u=(u=n).toString().replace(pt,"")).match(ft)[2].replace(" ",""))?u.split(lt):[]).map(function(n){return at(n.replace(st,""))}),0===n.length&&!i&&0===e.length)throw new Error("autoInject task functions require explicit parameters.");i||e.pop(),r[t]=e.concat(c)}function c(t,r){var u=Cn(e,function(n){return t[n]});u.push(r),y(n).apply(null,u)}}),Rn(r,t)}function ht(){this.head=this.tail=null,this.length=0}function yt(n,t){n.length=1,n.head=n.tail=t}function dt(n,t,r){if(null==t)t=1;else if(0===t)throw new Error("Concurrency must not be zero");var e=y(n),u=0,i=[],o=!1;function c(n,t,r){if(null!=r&&"function"!=typeof r)throw new Error("task callback must be a function");if(s.started=!0,J(n)||(n=[n]),0===n.length&&s.idle())return f(function(){s.drain()});for(var e=0,u=n.length;e0&&i.splice(c,1),o.callback.apply(o,arguments),null!=t&&s.error(t,o.data)}u<=s.concurrency-s.buffer&&s.unsaturated(),s.idle()&&s.drain(),s.process()}}var l=!1,s={_tasks:new ht,concurrency:t,payload:r,saturated:P,unsaturated:P,buffer:t/4,empty:P,drain:P,error:P,started:!1,paused:!1,push:function(n,t){c(n,!1,t)},kill:function(){s.drain=P,s._tasks.empty()},unshift:function(n,t){c(n,!0,t)},remove:function(n){s._tasks.remove(n)},process:function(){if(!l){for(l=!0;!s.paused&&u2&&(i=t(arguments,1)),u[r]=i,e(n)})},function(n){e(n,u)})}function vr(n,t){pr(xn,n,t)}function hr(n,t,r){pr(Sn(t),n,r)}var yr=function(n,t){var r=y(n);return dt(function(n,t){r(n[0],t)},t,1)},dr=function(n,t){var r=yr(n,t);return r.push=function(n,t,e){if(null==e&&(e=P),"function"!=typeof e)throw new Error("task callback must be a function");if(r.started=!0,J(n)||(n=[n]),0===n.length)return f(function(){r.drain()});t=t||0;for(var u=r._tasks.head;u&&t>=u.priority;)u=u.next;for(var i=0,o=n.length;ie?1:0}Tn(n,function(n,t){e(n,function(r,e){if(r)return t(r);t(null,{value:n,criteria:e})})},function(n,t){if(n)return r(n);r(null,Cn(t.sort(u),Ht("value")))})}function _r(n,t,r){var u=y(n);return e(function(e,i){var o,c=!1;e.push(function(){c||(i.apply(null,arguments),clearTimeout(o))}),o=setTimeout(function(){var t=n.name||"anonymous",e=new Error('Callback function "'+t+'" timed out.');e.code="ETIMEDOUT",r&&(e.info=r),c=!0,i(e)},t),u.apply(null,e)})}var Mr=Math.ceil,Ur=Math.max;function qr(n,t,r,e){var u=y(r);In(function(n,t,r,e){for(var u=-1,i=Ur(Mr((t-n)/(r||1)),0),o=Array(i);i--;)o[e?i:++u]=n,n+=r;return o}(0,n,1),t,u,e)}var zr=Ln(qr,1/0),Pr=Ln(qr,1);function Vr(n,t,r,e){arguments.length<=3&&(e=r,r=t,t=J(n)?[]:{}),e=V(e||P);var u=y(r);xn(n,function(n,r,e){u(t,n,r,e)},function(n){e(n,t)})}function Dr(n,r){var e,u=null;r=r||P,Ct(n,function(n,r){y(n)(function(n,i){e=arguments.length>2?t(arguments,1):i,u=n,r(!n)})},function(){r(u,e)})}function Rr(n){return function(){return(n.unmemoized||n).apply(null,arguments)}}function Cr(n,r,e){e=jn(e||P);var u=y(r);if(!n())return e(null);var i=function(r){if(r)return e(r);if(n())return u(i);var o=t(arguments,1);e.apply(null,[null].concat(o))};u(i)}function $r(n,t,r){Cr(function(){return!n.apply(this,arguments)},t,r)}var Wr=function(n,r){if(r=V(r||P),!J(n))return r(new Error("First argument to waterfall must be an array of functions"));if(!n.length)return r();var e=0;function u(t){var r=y(n[e++]);t.push(jn(i)),r.apply(null,t)}function i(i){if(i||e===n.length)return r.apply(null,arguments);u(t(arguments,1))}u([])},Nr={apply:r,applyEach:Bn,applyEachSeries:Mn,asyncify:l,auto:Rn,autoInject:vt,cargo:mt,compose:St,concat:Ot,concatLimit:Lt,concatSeries:wt,constant:xt,detect:Bt,detectLimit:Ft,detectSeries:It,dir:Mt,doDuring:Ut,doUntil:zt,doWhilst:qt,during:Pt,each:Dt,eachLimit:Rt,eachOf:xn,eachOfLimit:kn,eachOfSeries:gt,eachSeries:Ct,ensureAsync:$t,every:Nt,everyLimit:Qt,everySeries:Gt,filter:Yt,filterLimit:Zt,filterSeries:nr,forever:tr,groupBy:er,groupByLimit:rr,groupBySeries:ur,log:ir,map:Tn,mapLimit:In,mapSeries:_n,mapValues:cr,mapValuesLimit:or,mapValuesSeries:ar,memoize:lr,nextTick:sr,parallel:vr,parallelLimit:hr,priorityQueue:dr,queue:yr,race:mr,reduce:bt,reduceRight:gr,reflect:br,reflectAll:jr,reject:kr,rejectLimit:Lr,rejectSeries:Or,retry:xr,retryable:Er,seq:jt,series:Ar,setImmediate:f,some:Tr,someLimit:Br,someSeries:Fr,sortBy:Ir,timeout:_r,times:zr,timesLimit:qr,timesSeries:Pr,transform:Vr,tryEach:Dr,unmemoize:Rr,until:$r,waterfall:Wr,whilst:Cr,all:Nt,allLimit:Qt,allSeries:Gt,any:Tr,anyLimit:Br,anySeries:Fr,find:Bt,findLimit:Ft,findSeries:It,forEach:Dt,forEachSeries:Ct,forEachLimit:Rt,forEachOf:xn,forEachOfSeries:gt,forEachOfLimit:kn,inject:bt,foldl:bt,foldr:gr,select:Yt,selectLimit:Zt,selectSeries:nr,wrapSync:l};n.default=Nr,n.apply=r,n.applyEach=Bn,n.applyEachSeries=Mn,n.asyncify=l,n.auto=Rn,n.autoInject=vt,n.cargo=mt,n.compose=St,n.concat=Ot,n.concatLimit=Lt,n.concatSeries=wt,n.constant=xt,n.detect=Bt,n.detectLimit=Ft,n.detectSeries=It,n.dir=Mt,n.doDuring=Ut,n.doUntil=zt,n.doWhilst=qt,n.during=Pt,n.each=Dt,n.eachLimit=Rt,n.eachOf=xn,n.eachOfLimit=kn,n.eachOfSeries=gt,n.eachSeries=Ct,n.ensureAsync=$t,n.every=Nt,n.everyLimit=Qt,n.everySeries=Gt,n.filter=Yt,n.filterLimit=Zt,n.filterSeries=nr,n.forever=tr,n.groupBy=er,n.groupByLimit=rr,n.groupBySeries=ur,n.log=ir,n.map=Tn,n.mapLimit=In,n.mapSeries=_n,n.mapValues=cr,n.mapValuesLimit=or,n.mapValuesSeries=ar,n.memoize=lr,n.nextTick=sr,n.parallel=vr,n.parallelLimit=hr,n.priorityQueue=dr,n.queue=yr,n.race=mr,n.reduce=bt,n.reduceRight=gr,n.reflect=br,n.reflectAll=jr,n.reject=kr,n.rejectLimit=Lr,n.rejectSeries=Or,n.retry=xr,n.retryable=Er,n.seq=jt,n.series=Ar,n.setImmediate=f,n.some=Tr,n.someLimit=Br,n.someSeries=Fr,n.sortBy=Ir,n.timeout=_r,n.times=zr,n.timesLimit=qr,n.timesSeries=Pr,n.transform=Vr,n.tryEach=Dr,n.unmemoize=Rr,n.until=$r,n.waterfall=Wr,n.whilst=Cr,n.all=Nt,n.allLimit=Qt,n.allSeries=Gt,n.any=Tr,n.anyLimit=Br,n.anySeries=Fr,n.find=Bt,n.findLimit=Ft,n.findSeries=It,n.forEach=Dt,n.forEachSeries=Ct,n.forEachLimit=Rt,n.forEachOf=xn,n.forEachOfSeries=gt,n.forEachOfLimit=kn,n.inject=bt,n.foldl=bt,n.foldr=gr,n.select=Yt,n.selectLimit=Zt,n.selectSeries=nr,n.wrapSync=l,Object.defineProperty(n,"__esModule",{value:!0})}); -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"_process":8}],2:[function(require,module,exports){ +}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("timers").setImmediate) +},{"_process":8,"timers":10}],2:[function(require,module,exports){ var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",funcTag="[object Function]",genTag="[object GeneratorFunction]",reIsUint=/^(?:0|[1-9]\d*)$/;function apply(r,e,n){switch(n.length){case 0:return r.call(e);case 1:return r.call(e,n[0]);case 2:return r.call(e,n[0],n[1]);case 3:return r.call(e,n[0],n[1],n[2])}return r.apply(e,n)}function baseTimes(r,e){for(var n=-1,t=Array(r);++n1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=r.length>3&&"function"==typeof o?(i--,o):void 0,a&&isIterateeCall(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),e=Object(e);++t-1&&r%1==0&&r-1&&r%1==0&&r<=MAX_SAFE_INTEGER}function isObject(r){var e=typeof r;return!!r&&("object"==e||"function"==e)}function isObjectLike(r){return!!r&&"object"==typeof r}var assignIn=createAssigner(function(r,e){copyObject(e,keysIn(e),r)});function keysIn(r){return isArrayLike(r)?arrayLikeKeys(r,!0):baseKeysIn(r)}module.exports=assignIn; },{}],3:[function(require,module,exports){ @@ -36,127 +36,132 @@ var cachedSetTimeout,cachedClearTimeout,process=module.exports={};function defau var mul_table=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],shg_table=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function blur(r,t,a,n){if(!(isNaN(n)||n<1)){var e,l,b,f,g,o,u,x,i,s,h,c,v,_,k,m,B,S,w,N,d,p,j,q,y=(n|=0)+n+1,z=t-1,A=a-1,C=n+1,D=C*(C+1)/2,E=new BlurStack,F=E;for(b=1;b>K,0!=j?(j=255/j,r[o]=(x*J>>K)*j,r[o+1]=(i*J>>K)*j,r[o+2]=(s*J>>K)*j):r[o]=r[o+1]=r[o+2]=0,x-=c,i-=v,s-=_,h-=k,c-=H.r,v-=H.g,_-=H.b,k-=H.a,f=u+((f=e+n+1)>K,j>0?(j=255/j,r[f]=(x*J>>K)*j,r[f+1]=(i*J>>K)*j,r[f+2]=(s*J>>K)*j):r[f]=r[f+1]=r[f+2]=0,x-=c,i-=v,s-=_,h-=k,c-=H.r,v-=H.g,_-=H.b,k-=H.a,f=e+((f=l+C)=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},exports.setImmediate="function"==typeof setImmediate?setImmediate:function(e){var t=nextImmediateId++,i=!(arguments.length<2)&&slice.call(arguments,1);return immediateIds[t]=!0,nextTick(function(){immediateIds[t]&&(i?e.apply(null,i):e.call(null),exports.clearImmediate(t))}),t},exports.clearImmediate="function"==typeof clearImmediate?clearImmediate:function(e){delete immediateIds[e]}; + +}).call(this,require("timers").setImmediate,require("timers").clearImmediate) +},{"process/browser.js":8,"timers":10}],11:[function(require,module,exports){ function DOMParser(t){this.options=t||{locator:{}}}function buildErrorHandler(t,e,n){if(!t){if(e instanceof DOMHandler)return e;t=e}var r={},o=t instanceof Function;function i(e){var i=t[e];!i&&o&&(i=2==t.length?function(n){t(e,n)}:t),r[e]=i&&function(t){i("[xmldom "+e+"]\t"+t+_locator(n))}||function(){}}return n=n||{},i("warning"),i("error"),i("fatalError"),r}function DOMHandler(){this.cdata=!1}function position(t,e){e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber}function _locator(t){if(t)return"\n@"+(t.systemId||"")+"#[line:"+t.lineNumber+",col:"+t.columnNumber+"]"}function _toString(t,e,n){return"string"==typeof t?t.substr(e,n):t.length>=e+n||e?new java.lang.String(t,e,n)+"":t}function appendElement(t,e){t.currentElement?t.currentElement.appendChild(e):t.doc.appendChild(e)}DOMParser.prototype.parseFromString=function(t,e){var n=this.options,r=new XMLReader,o=n.domBuilder||new DOMHandler,i=n.errorHandler,a=n.locator,c=n.xmlns||{},l={lt:"<",gt:">",amp:"&",quot:'"',apos:"'"};return a&&o.setDocumentLocator(a),r.errorHandler=buildErrorHandler(i,o,a),r.domBuilder=n.domBuilder||o,/\/x?html?$/.test(e)&&(l.nbsp=" ",l.copy="©",c[""]="http://www.w3.org/1999/xhtml"),c.xml=c.xml||"http://www.w3.org/XML/1998/namespace",t?r.parse(t,c,l):r.errorHandler.error("invalid doc source"),o.doc},DOMHandler.prototype={startDocument:function(){this.doc=(new DOMImplementation).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(t,e,n,r){var o=this.doc,i=o.createElementNS(t,n||e),a=r.length;appendElement(this,i),this.currentElement=i,this.locator&&position(this.locator,i);for(var c=0;c=0))throw DOMException(NOT_FOUND_ERR,new Error(e.tagName+"@"+n));for(var i=t.length-1;o"==e&&">")||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";"}function _visitNode(e,t){if(t(e))return!0;if(e=e.firstChild)do{if(_visitNode(e,t))return!0}while(e=e.nextSibling)}function Document(){}function _onAddAttribute(e,t,n){e&&e._inc++,"http://www.w3.org/2000/xmlns/"==n.namespaceURI&&(t._nsMap[n.prefix?n.localName:""]=n.value)}function _onRemoveAttribute(e,t,n,o){e&&e._inc++,"http://www.w3.org/2000/xmlns/"==n.namespaceURI&&delete t._nsMap[n.prefix?n.localName:""]}function _onUpdateChild(e,t,n){if(e&&e._inc){e._inc++;var o=t.childNodes;if(n)o[o.length++]=n;else{for(var i=t.firstChild,r=0;i;)o[r++]=i,i=i.nextSibling;o.length=r}}}function _removeChild(e,t){var n=t.previousSibling,o=t.nextSibling;return n?n.nextSibling=o:e.firstChild=o,o?o.previousSibling=n:e.lastChild=n,_onUpdateChild(e.ownerDocument,e),t}function _insertBefore(e,t,n){var o=t.parentNode;if(o&&o.removeChild(t),t.nodeType===DOCUMENT_FRAGMENT_NODE){var i=t.firstChild;if(null==i)return t;var r=t.lastChild}else i=r=t;var a=n?n.previousSibling:e.lastChild;i.previousSibling=a,r.nextSibling=n,a?a.nextSibling=i:e.firstChild=i,null==n?e.lastChild=r:n.previousSibling=r;do{i.parentNode=e}while(i!==r&&(i=i.nextSibling));return _onUpdateChild(e.ownerDocument||e,e),t.nodeType==DOCUMENT_FRAGMENT_NODE&&(t.firstChild=t.lastChild=null),t}function _appendSingleChild(e,t){var n=t.parentNode;if(n){var o=e.lastChild;n.removeChild(t);o=e.lastChild}o=e.lastChild;return t.parentNode=e,t.previousSibling=o,t.nextSibling=null,o?o.nextSibling=t:e.firstChild=t,e.lastChild=t,_onUpdateChild(e.ownerDocument,e,t),t}function Element(){this._nsMap={}}function Attr(){}function CharacterData(){}function Text(){}function Comment(){}function CDATASection(){}function DocumentType(){}function Notation(){}function Entity(){}function EntityReference(){}function DocumentFragment(){}function ProcessingInstruction(){}function XMLSerializer(){}function nodeSerializeToString(e,t){var n=[],o=9==this.nodeType?this.documentElement:this,i=o.prefix,r=o.namespaceURI;if(r&&null==i&&null==(i=o.lookupPrefix(r)))var a=[{namespace:r,prefix:null}];return serializeToString(this,n,e,t,a),n.join("")}function needNamespaceDefine(e,t,n){var o=e.prefix||"",i=e.namespaceURI;if(!o&&!i)return!1;if("xml"===o&&"http://www.w3.org/XML/1998/namespace"===i||"http://www.w3.org/2000/xmlns/"==i)return!1;for(var r=n.length;r--;){var a=n[r];if(a.prefix==o)return a.namespace!=i}return!0}function serializeToString(e,t,n,o,i){if(o){if(!(e=o(e)))return;if("string"==typeof e)return void t.push(e)}switch(e.nodeType){case ELEMENT_NODE:i||(i=[]);i.length;var r=e.attributes,a=r.length,s=e.firstChild,u=e.tagName;n=htmlns===e.namespaceURI||n,t.push("<",u);for(var d=0;d"),n&&/^script$/i.test(u))for(;s;)s.data?t.push(s.data):serializeToString(s,t,n,o,i),s=s.nextSibling;else for(;s;)serializeToString(s,t,n,o,i),s=s.nextSibling;t.push("")}else t.push("/>");return;case DOCUMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(s=e.firstChild;s;)serializeToString(s,t,n,o,i),s=s.nextSibling;return;case ATTRIBUTE_NODE:return t.push(" ",e.name,'="',e.value.replace(/[<&"]/g,_xmlEncoder),'"');case TEXT_NODE:return t.push(e.data.replace(/[<&]/g,_xmlEncoder));case CDATA_SECTION_NODE:return t.push("");case COMMENT_NODE:return t.push("\x3c!--",e.data,"--\x3e");case DOCUMENT_TYPE_NODE:var E=e.publicId,m=e.systemId;if(t.push("');else if(m&&"."!=m)t.push(' SYSTEM "',m,'">');else{var h=e.internalSubset;h&&t.push(" [",h,"]"),t.push(">")}return;case PROCESSING_INSTRUCTION_NODE:return t.push("");case ENTITY_REFERENCE_NODE:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function importNode(e,t,n){var o;switch(t.nodeType){case ELEMENT_NODE:(o=t.cloneNode(!1)).ownerDocument=e;case DOCUMENT_FRAGMENT_NODE:break;case ATTRIBUTE_NODE:n=!0}if(o||(o=t.cloneNode(!1)),o.ownerDocument=e,o.parentNode=null,n)for(var i=t.firstChild;i;)o.appendChild(importNode(e,i,n)),i=i.nextSibling;return o}function cloneNode(e,t,n){var o=new t.constructor;for(var i in t){var r=t[i];"object"!=typeof r&&r!=o[i]&&(o[i]=r)}switch(t.childNodes&&(o.childNodes=new NodeList),o.ownerDocument=e,o.nodeType){case ELEMENT_NODE:var a=t.attributes,s=o.attributes=new NamedNodeMap,u=a.length;s._ownerElement=o;for(var d=0;d0},lookupPrefix:function(e){for(var t=this;t;){var n=t._nsMap;if(n)for(var o in n)if(n[o]==e)return o;t=t.nodeType==ATTRIBUTE_NODE?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var n=t._nsMap;if(n&&e in n)return n[e];t=t.nodeType==ATTRIBUTE_NODE?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return null==this.lookupPrefix(e)}},copy(NodeType,Node),copy(NodeType,Node.prototype),Document.prototype={nodeName:"#document",nodeType:DOCUMENT_NODE,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==DOCUMENT_FRAGMENT_NODE){for(var n=e.firstChild;n;){var o=n.nextSibling;this.insertBefore(n,t),n=o}return e}return null==this.documentElement&&e.nodeType==ELEMENT_NODE&&(this.documentElement=e),_insertBefore(this,e,t),e.ownerDocument=this,e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),_removeChild(this,e)},importNode:function(e,t){return importNode(this,e,t)},getElementById:function(e){var t=null;return _visitNode(this.documentElement,function(n){if(n.nodeType==ELEMENT_NODE&&n.getAttribute("id")==e)return t=n,!0}),t},createElement:function(e){var t=new Element;return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.childNodes=new NodeList,(t.attributes=new NamedNodeMap)._ownerElement=t,t},createDocumentFragment:function(){var e=new DocumentFragment;return e.ownerDocument=this,e.childNodes=new NodeList,e},createTextNode:function(e){var t=new Text;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new Comment;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new CDATASection;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new ProcessingInstruction;return n.ownerDocument=this,n.tagName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){var t=new Attr;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new EntityReference;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var n=new Element,o=t.split(":"),i=n.attributes=new NamedNodeMap;return n.childNodes=new NodeList,n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.namespaceURI=e,2==o.length?(n.prefix=o[0],n.localName=o[1]):n.localName=t,i._ownerElement=n,n},createAttributeNS:function(e,t){var n=new Attr,o=t.split(":");return n.ownerDocument=this,n.nodeName=t,n.name=t,n.namespaceURI=e,n.specified=!0,2==o.length?(n.prefix=o[0],n.localName=o[1]):n.localName=t,n}},_extends(Document,Node),Element.prototype={nodeType:ELEMENT_NODE,hasAttribute:function(e){return null!=this.getAttributeNode(e)},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=""+t,this.setAttributeNode(n)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===DOCUMENT_FRAGMENT_NODE?this.insertBefore(e,null):_appendSingleChild(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t)},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n&&n.value||""},setAttributeNS:function(e,t,n){var o=this.ownerDocument.createAttributeNS(e,t);o.value=o.nodeValue=""+n,this.setAttributeNode(o)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new LiveNodeList(this,function(t){var n=[];return _visitNode(t,function(o){o===t||o.nodeType!=ELEMENT_NODE||"*"!==e&&o.tagName!=e||n.push(o)}),n})},getElementsByTagNameNS:function(e,t){return new LiveNodeList(this,function(n){var o=[];return _visitNode(n,function(i){i===n||i.nodeType!==ELEMENT_NODE||"*"!==e&&i.namespaceURI!==e||"*"!==t&&i.localName!=t||o.push(i)}),o})}},Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName,Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS,_extends(Element,Node),Attr.prototype.nodeType=ATTRIBUTE_NODE,_extends(Attr,Node),CharacterData.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,n){n=this.data.substring(0,e)+n+this.data.substring(e+t),this.nodeValue=this.data=n,this.length=n.length}},_extends(CharacterData,Node),Text.prototype={nodeName:"#text",nodeType:TEXT_NODE,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var o=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(o,this.nextSibling),o}},_extends(Text,CharacterData),Comment.prototype={nodeName:"#comment",nodeType:COMMENT_NODE},_extends(Comment,CharacterData),CDATASection.prototype={nodeName:"#cdata-section",nodeType:CDATA_SECTION_NODE},_extends(CDATASection,CharacterData),DocumentType.prototype.nodeType=DOCUMENT_TYPE_NODE,_extends(DocumentType,Node),Notation.prototype.nodeType=NOTATION_NODE,_extends(Notation,Node),Entity.prototype.nodeType=ENTITY_NODE,_extends(Entity,Node),EntityReference.prototype.nodeType=ENTITY_REFERENCE_NODE,_extends(EntityReference,Node),DocumentFragment.prototype.nodeName="#document-fragment",DocumentFragment.prototype.nodeType=DOCUMENT_FRAGMENT_NODE,_extends(DocumentFragment,Node),ProcessingInstruction.prototype.nodeType=PROCESSING_INSTRUCTION_NODE,_extends(ProcessingInstruction,Node),XMLSerializer.prototype.serializeToString=function(e,t,n){return nodeSerializeToString.call(e,t,n)},Node.prototype.toString=nodeSerializeToString;try{if(Object.defineProperty){function getTextContent(e){switch(e.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:var t=[];for(e=e.firstChild;e;)7!==e.nodeType&&8!==e.nodeType&&t.push(getTextContent(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}}Object.defineProperty(LiveNodeList.prototype,"length",{get:function(){return _updateLiveList(this),this.$$length}}),Object.defineProperty(Node.prototype,"textContent",{get:function(){return getTextContent(this)},set:function(e){switch(this.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),__set__=function(e,t,n){e["$$"+t]=n}}}catch(e){}exports.DOMImplementation=DOMImplementation,exports.XMLSerializer=XMLSerializer; -},{}],12:[function(require,module,exports){ +},{}],13:[function(require,module,exports){ var nameStartChar=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,nameChar=new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),tagNamePattern=new RegExp("^"+nameStartChar.source+nameChar.source+"*(?::"+nameStartChar.source+nameChar.source+"*)?$"),S_TAG=0,S_ATTR=1,S_ATTR_SPACE=2,S_EQ=3,S_ATTR_NOQUOT_VALUE=4,S_ATTR_END=5,S_TAG_SPACE=6,S_TAG_CLOSE=7;function XMLReader(){}function parse(e,t,r,a,n){function s(e){var t=e.slice(1,-1);return t in r?r[t]:"#"===t.charAt(0)?function(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}(parseInt(t.substr(1).replace("x","0x"))):(n.error("entity not found:"+e),e)}function c(t){if(t>d){var r=e.substring(d,t).replace(/&#?\w+;/g,s);_&&i(d),a.characters(r,0,t-d),d=t}}function i(t,r){for(;t>=u&&(r=l.exec(e));)o=r.index,u=o+r[0].length,_.lineNumber++;_.columnNumber=t-o+1}for(var o=0,u=0,l=/.*(?:\r\n?|\n)|.*$/g,_=a.locator,m=[{currentNSMap:t}],f={},d=0;;){try{var p=e.indexOf("<",d);if(p<0){if(!e.substr(d).match(/^\s*$/)){var T=a.doc,S=T.createTextNode(e.substr(d));T.appendChild(S),a.currentElement=S}return}switch(p>d&&c(p),e.charAt(p+1)){case"/":var h=e.indexOf(">",p+3),A=e.substring(p+2,h),g=m.pop();h<0?(A=e.substring(p+2).replace(/[\s<].*/,""),n.error("end tag name: "+A+" is not complete:"+g.tagName),h=p+1+A.length):A.match(/\sd?d=h:c(Math.max(p,d)+1)}}function copyLocator(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function parseElementStartPart(e,t,r,a,n,s){for(var c,i=++t,o=S_TAG;;){var u=e.charAt(i);switch(u){case"=":if(o===S_ATTR)c=e.slice(t,i),o=S_EQ;else{if(o!==S_ATTR_SPACE)throw new Error("attribute equal must after attrName");o=S_EQ}break;case"'":case'"':if(o===S_EQ||o===S_ATTR){if(o===S_ATTR&&(s.warning('attribute value must after "="'),c=e.slice(t,i)),t=i+1,!((i=e.indexOf(u,t))>0))throw new Error("attribute value no end '"+u+"' match");l=e.slice(t,i).replace(/&#?\w+;/g,n),r.add(c,l,t-1),o=S_ATTR_END}else{if(o!=S_ATTR_NOQUOT_VALUE)throw new Error('attribute value must after "="');l=e.slice(t,i).replace(/&#?\w+;/g,n),r.add(c,l,t),s.warning('attribute "'+c+'" missed start quot('+u+")!!"),t=i+1,o=S_ATTR_END}break;case"/":switch(o){case S_TAG:r.setTagName(e.slice(t,i));case S_ATTR_END:case S_TAG_SPACE:case S_TAG_CLOSE:o=S_TAG_CLOSE,r.closed=!0;case S_ATTR_NOQUOT_VALUE:case S_ATTR:case S_ATTR_SPACE:break;default:throw new Error("attribute invalid close char('/')")}break;case"":return s.error("unexpected end of input"),o==S_TAG&&r.setTagName(e.slice(t,i)),i;case">":switch(o){case S_TAG:r.setTagName(e.slice(t,i));case S_ATTR_END:case S_TAG_SPACE:case S_TAG_CLOSE:break;case S_ATTR_NOQUOT_VALUE:case S_ATTR:"/"===(l=e.slice(t,i)).slice(-1)&&(r.closed=!0,l=l.slice(0,-1));case S_ATTR_SPACE:o===S_ATTR_SPACE&&(l=c),o==S_ATTR_NOQUOT_VALUE?(s.warning('attribute "'+l+'" missed quot(")!!'),r.add(c,l.replace(/&#?\w+;/g,n),t)):("http://www.w3.org/1999/xhtml"===a[""]&&l.match(/^(?:disabled|checked|selected)$/i)||s.warning('attribute "'+l+'" missed value!! "'+l+'" instead!!'),r.add(l,l,t));break;case S_EQ:throw new Error("attribute value missed!!")}return i;case"€":u=" ";default:if(u<=" ")switch(o){case S_TAG:r.setTagName(e.slice(t,i)),o=S_TAG_SPACE;break;case S_ATTR:c=e.slice(t,i),o=S_ATTR_SPACE;break;case S_ATTR_NOQUOT_VALUE:var l=e.slice(t,i).replace(/&#?\w+;/g,n);s.warning('attribute "'+l+'" missed quot(")!!'),r.add(c,l,t);case S_ATTR_END:o=S_TAG_SPACE}else switch(o){case S_ATTR_SPACE:r.tagName;"http://www.w3.org/1999/xhtml"===a[""]&&c.match(/^(?:disabled|checked|selected)$/i)||s.warning('attribute "'+c+'" missed value!! "'+c+'" instead2!!'),r.add(c,c,t),t=i,o=S_ATTR;break;case S_ATTR_END:s.warning('attribute space is required"'+c+'"!!');case S_TAG_SPACE:o=S_ATTR,t=i;break;case S_EQ:o=S_ATTR_NOQUOT_VALUE,t=i;break;case S_TAG_CLOSE:throw new Error("elements closed character '/' and '>' must be connected to")}}i++}}function appendElement(e,t,r){for(var a=e.tagName,n=null,s=e.length;s--;){var c=e[s],i=c.qName,o=c.value;if((m=i.indexOf(":"))>0)var u=c.prefix=i.slice(0,m),l=i.slice(m+1),_="xmlns"===u&&l;else l=i,u=null,_="xmlns"===i&&"";c.localName=l,!1!==_&&(null==n&&(n={},_copy(r,r={})),r[_]=n[_]=o,c.uri="http://www.w3.org/2000/xmlns/",t.startPrefixMapping(_,o))}for(s=e.length;s--;){(u=(c=e[s]).prefix)&&("xml"===u&&(c.uri="http://www.w3.org/XML/1998/namespace"),"xmlns"!==u&&(c.uri=r[u||""]))}var m;(m=a.indexOf(":"))>0?(u=e.prefix=a.slice(0,m),l=e.localName=a.slice(m+1)):(u=null,l=e.localName=a);var f=e.uri=r[u||""];if(t.startElement(f,l,a,e),!e.closed)return e.currentNSMap=r,e.localNSMap=n,!0;if(t.endElement(f,l,a),n)for(u in n)t.endPrefixMapping(u)}function parseHtmlSpecialContent(e,t,r,a,n){if(/^(?:script|textarea)$/i.test(r)){var s=e.indexOf("",t),c=e.substring(t+1,s);if(/[&<]/.test(c))return/^script$/i.test(r)?(n.characters(c,0,c.length),s):(c=c.replace(/&#?\w+;/g,a),n.characters(c,0,c.length),s)}return t+1}function fixSelfClosed(e,t,r,a){var n=a[r];return null==n&&((n=e.lastIndexOf(""))t?(r.comment(e,t+4,n-t-4),n+3):(a.error("Unclosed comment"),-1):-1;default:if("CDATA["==e.substr(t+3,6)){var n=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,n-t-9),r.endCDATA(),n+3}var s=split(e,t),c=s.length;if(c>1&&/!doctype/i.test(s[0][0])){var i=s[1][0],o=c>3&&/^public$/i.test(s[2][0])&&s[3][0],u=c>4&&s[4][0],l=s[c-1];return r.startDTD(i,o&&o.replace(/^(['"])(.*?)\1$/,"$2"),u&&u.replace(/^(['"])(.*?)\1$/,"$2")),r.endDTD(),l.index+l[0].length}}return-1}function parseInstruction(e,t,r){var a=e.indexOf("?>",t);if(a){var n=e.substring(t,a).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(n){n[0].length;return r.processingInstruction(n[1],n[2]),a+2}return-1}return-1}function ElementAttributes(e){}function _set_proto_(e,t){return e.__proto__=t,e}function split(e,t){var r,a=[],n=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(n.lastIndex=t,n.exec(e);r=n.exec(e);)if(a.push(r),r[1])return a}XMLReader.prototype={parse:function(e,t,r){var a=this.domBuilder;a.startDocument(),_copy(t,t={}),parse(e,t,r,a,this.errorHandler),a.endDocument()}},ElementAttributes.prototype={setTagName:function(e){if(!tagNamePattern.test(e))throw new Error("invalid tagName:"+e);this.tagName=e},add:function(e,t,r){if(!tagNamePattern.test(e))throw new Error("invalid attribute:"+e);this[this.length++]={qName:e,value:t,offset:r}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},_set_proto_({},_set_proto_.prototype)instanceof _set_proto_||(_set_proto_=function(e,t){function r(){}for(t in r.prototype=t,r=new r,e)r[t]=e[t];return r}),exports.XMLReader=XMLReader; -},{}],13:[function(require,module,exports){ +},{}],14:[function(require,module,exports){ "use strict";var isEmpty=require("lodash.isempty"),flatten=require("lodash.flatten"),vg=require("./libraries/vg/vg"),img=require("./libraries/img/img"),g={};function importCommands(r){for(var i in r)g[i]=r[i]}for(var k in vg)g[k]=vg[k];for(var k in delete g.delete,img)g[k]=img[k];function splitRow(r,i){var e,t,n=[],o="",m=!1;for(r=r.trim(),t=0;t0){var t=i[0];if(t&&(t.commands||t.shapes||t.fontFamily))return vg.merge(i);if(t instanceof img.Img)return img.merge(i)}}return null},g.mix=function(r,i,e){if(e=void 0!==e?e:.5,"number"==typeof r)return r*(1-e)+i*e;if(r instanceof g.Color&&i instanceof g.Color)return new g.Color(g.mix(r.r,i.r,e),g.mix(r.g,i.g,e),g.mix(r.b,i.b,e),g.mix(r.a,i.a,e));if("object"==typeof r){for(var t={},n=Object.keys(r),o=0,m=n.length;o"===e)for(o=0,u=r.length;on&&l.push(i);else if(">="===e)for(o=0,u=r.length;o=n&&l.push(i);else if("<"===e)for(o=0,u=r.length;o"===e)for(o=0,u=r.length;on&&l.push(i);else if(">="===e)for(o=0,u=r.length;o=n&&l.push(i);else if("<"===e)for(o=0,u=r.length;o=0;n--)if(i[n]!=r[n])return!1;for(n=i.length-1;n>=0;n--)if(u=i[n],!_deepEqual(e[u],t[u]))return!1;return!0},module.exports=deepEqual; +},{"./list":26,"lodash.groupby":4,"lodash.values":7}],16:[function(require,module,exports){ +"use strict";function isBuffer(){return!1}function isObject(e){return"object"==typeof e&&null!==e}function objectToString(e){return Object.prototype.toString.call(e)}function isRegExp(e){return isObject(e)&&"[object RegExp]"===objectToString(e)}function isDate(e){return isObject(e)&&"[object Date]"===objectToString(e)}function isNullOrUndefined(e){return null==e}var isArguments,_deepEqual,objEquiv,util={isObject:isObject,isRegExp:isRegExp,isDate:isDate,isNullOrUndefined:isNullOrUndefined,isBuffer:isBuffer},pSlice=Array.prototype.slice,deepEqual={};_deepEqual=function(e,t){if(e===t)return!0;if(util.isBuffer(e)&&util.isBuffer(t)){if(e.length!==t.length)return!1;for(var i=0;i=0;n--)if(i[n]!=r[n])return!1;for(n=i.length-1;n>=0;n--)if(u=i[n],!_deepEqual(e[u],t[u]))return!1;return!0},module.exports=deepEqual; -},{}],16:[function(require,module,exports){ +},{}],17:[function(require,module,exports){ "use strict";var g={easeInQuad:function(t,n,e,u){return e*(t/=u)*t+n},easeOutQuad:function(t,n,e,u){return-e*(t/=u)*(t-2)+n},easeInOutQuad:function(t,n,e,u){return(t/=u/2)<1?e/2*t*t+n:-e/2*(--t*(t-2)-1)+n},easeInCubic:function(t,n,e,u){return e*(t/=u)*t*t+n},easeOutCubic:function(t,n,e,u){return e*((t=t/u-1)*t*t+1)+n},easeInOutCubic:function(t,n,e,u){return(t/=u/2)<1?e/2*t*t*t+n:e/2*((t-=2)*t*t+2)+n},easeInQuart:function(t,n,e,u){return e*(t/=u)*t*t*t+n},easeOutQuart:function(t,n,e,u){return-e*((t=t/u-1)*t*t*t-1)+n},easeInOutQuart:function(t,n,e,u){return(t/=u/2)<1?e/2*t*t*t*t+n:-e/2*((t-=2)*t*t*t-2)+n},easeInQuint:function(t,n,e,u){return e*(t/=u)*t*t*t*t+n},easeOutQuint:function(t,n,e,u){return e*((t=t/u-1)*t*t*t*t+1)+n},easeInOutQuint:function(t,n,e,u){return(t/=u/2)<1?e/2*t*t*t*t*t+n:e/2*((t-=2)*t*t*t*t+2)+n},easeInSine:function(t,n,e,u){return-e*Math.cos(t/u*(Math.PI/2))+e+n},easeOutSine:function(t,n,e,u){return e*Math.sin(t/u*(Math.PI/2))+n},easeInOutSine:function(t,n,e,u){return-e/2*(Math.cos(Math.PI*t/u)-1)+n},easeInExpo:function(t,n,e,u){return 0===t?n:e*Math.pow(2,10*(t/u-1))+n},easeOutExpo:function(t,n,e,u){return t===u?n+e:e*(1-Math.pow(2,-10*t/u))+n},easeInOutExpo:function(t,n,e,u){return 0===t?n:t===u?n+e:(t/=u/2)<1?e/2*Math.pow(2,10*(t-1))+n:e/2*(2-Math.pow(2,-10*--t))+n},easeInCirc:function(t,n,e,u){return-e*(Math.sqrt(1-(t/=u)*t)-1)+n},easeOutCirc:function(t,n,e,u){return e*Math.sqrt(1-(t=t/u-1)*t)+n},easeInOutCirc:function(t,n,e,u){return(t/=u/2)<1?-e/2*(Math.sqrt(1-t*t)-1)+n:e/2*(Math.sqrt(1-(t-=2)*t)+1)+n},easeInElastic:function(t,n,e,u){var a=1.70158,r=0,i=e;return 0===t?n:1==(t/=u)?n+e:(r||(r=.3*u),i0&&void 0!==r[0].x&&void 0!==r[0].y?(p=!0,u=transformShape):r instanceof img.Img&&(u=transformImage),i=0;i0&&void 0!==r[0].x&&void 0!==r[0].y){var n=t===g.HORIZONTAL||t===g.BOTH?-1:1,e=t===g.VERTICAL||t===g.BOTH?-1:1;return vg.scale(r,new vg.Point(n,e),vg.centerPoint(r))}if(r instanceof img.Img){var o=r,a=o.toLayer(!1);return t!==g.HORIZONTAL&&t!==g.BOTH||a.flipHorizontal(),t!==g.VERTICAL&&t!==g.BOTH||a.flipVertical(),o.withCanvas(a.toCanvas())}},g.fit=function(r,t,n,e,o){if(r){o=void 0!==o&&o;var a,i,g,s=vg.bounds(r),f=s.x,u=s.y,v=s.width,l=s.height;return v=v>1e-12?v:0,l=l>1e-12?l:0,a=(a=new vg.Transform).translate(t.x,t.y),o?(i=v>0?n/v:1,g=l>0?e/l:1):(i=v>0?n/v:Number.MAX_VALUE,g=l>0?e/l:Number.MAX_VALUE,i=g=Math.min(i,g)),transform(r,a=(a=a.scale(i,g)).translate(-v/2-f,-l/2-u))}},g.fitTo=function(r,t,n){if(r){if(!t)return r;var e=vg.bounds(t),o=e.x,a=e.y,i=e.width,s=e.height;return g.fit(r,{x:o+i/2,y:a+s/2},i,s,n)}},g.hslAdjust=function(r,t,n,e,o){if(o||(o=0),r instanceof img.Img){var a=r,i=a.toLayer(!1);return i.addFilter("hslAdjust",{h:t,s:n,l:e,a:o}),a.withCanvas(i.toCanvas())}t=clamp(t,-1,1),n=clamp(n,-1,1),e=clamp(e,-1,1),o=clamp(o,-1,1);var g,s,f,u,v,l,h,c,m,d,p,y,T=1+n*(n<0?1:2),w=e<0?1+e:1-e,x=e<0?0:e;return t=6*t%6,function e(a){if(a instanceof vg.Group){for(var i=[],C=0;C(u=g)&&(u=s),f>u&&(u=f),s<(v=g)&&(v=s),f0&&l>0&&(m<=.5?((c=l/(u+v)*T)>1&&(c=1),r=m*(1+c)):((c=l/(2-u-v)*T)>1&&(c=1),r=m+c-m*c),(h=g===u?s===v?5+(u-f)/l+t:1-(u-s)/l+t:s===u?f===v?1+(u-g)/l+t:3-(u-f)/l+t:g===v?3+(u-s)/l+t:5-(u-g)/l+t)<0&&(h+=6),h>=6&&(h-=6),p=(r-(d=m+m-r))*(h-(y=h>>0)),0===y?(g=r,s=d+p,f=d):1===y?(g=r-p,s=r,f=d):2===y?(g=d,s=r,f=d+p):3===y?(g=d,s=r-p,f=r):4===y?(g=d+p,s=d,f=r):5===y&&(g=r,s=d,f=r-p))),s=s*w+x,f=f*w+x,(g=g*w+x)<0&&(g=0),s<0&&(s=0),f<0&&(f=0),g>1&&(g=1),s>1&&(s=1),f>1&&(f=1),new vg.Color(g,s,f,A.a+o)}(r)},g.rgbAdjust=function(r,t,n,e,o){return o||(o=0),t=clamp(t,-1,1),n=clamp(n,-1,1),e=clamp(e,-1,1),o=clamp(o,-1,1),function r(a){if(a instanceof img.Img){var i=a,g=i.toLayer(!1);return g.addFilter("rgbAdjust",{r:t,g:n,b:e,a:o}),i.withCanvas(g.toCanvas())}if(a instanceof vg.Group){for(var s=[],f=0;f0&&void 0!==r[0].x&&void 0!==r[0].y?(p=!0,u=transformShape):r instanceof img.Img&&(u=transformImage),i=0;i0&&void 0!==r[0].x&&void 0!==r[0].y){var n=t===g.HORIZONTAL||t===g.BOTH?-1:1,e=t===g.VERTICAL||t===g.BOTH?-1:1;return vg.scale(r,new vg.Point(n,e),vg.centerPoint(r))}if(r instanceof img.Img){var o=r,a=o.toLayer(!1);return t!==g.HORIZONTAL&&t!==g.BOTH||a.flipHorizontal(),t!==g.VERTICAL&&t!==g.BOTH||a.flipVertical(),o.withCanvas(a.toCanvas())}},g.fit=function(r,t,n,e,o){if(r){o=void 0!==o&&o;var a,i,g,s=vg.bounds(r),f=s.x,u=s.y,v=s.width,l=s.height;return v=v>1e-12?v:0,l=l>1e-12?l:0,a=(a=new vg.Transform).translate(t.x,t.y),o?(i=v>0?n/v:1,g=l>0?e/l:1):(i=v>0?n/v:Number.MAX_VALUE,g=l>0?e/l:Number.MAX_VALUE,i=g=Math.min(i,g)),transform(r,a=(a=a.scale(i,g)).translate(-v/2-f,-l/2-u))}},g.fitTo=function(r,t,n){if(r){if(!t)return r;var e=vg.bounds(t),o=e.x,a=e.y,i=e.width,s=e.height;return g.fit(r,{x:o+i/2,y:a+s/2},i,s,n)}},g.hslAdjust=function(r,t,n,e,o){if(o||(o=0),r instanceof img.Img){var a=r,i=a.toLayer(!1);return i.addFilter("hslAdjust",{h:t,s:n,l:e,a:o}),a.withCanvas(i.toCanvas())}t=clamp(t,-1,1),n=clamp(n,-1,1),e=clamp(e,-1,1),o=clamp(o,-1,1);var g,s,f,u,v,l,h,c,m,d,p,y,T=1+n*(n<0?1:2),w=e<0?1+e:1-e,x=e<0?0:e;return t=6*t%6,function e(a){if(a instanceof vg.Group){for(var i=[],C=0;C(u=g)&&(u=s),f>u&&(u=f),s<(v=g)&&(v=s),f0&&l>0&&(m<=.5?((c=l/(u+v)*T)>1&&(c=1),r=m*(1+c)):((c=l/(2-u-v)*T)>1&&(c=1),r=m+c-m*c),(h=g===u?s===v?5+(u-f)/l+t:1-(u-s)/l+t:s===u?f===v?1+(u-g)/l+t:3-(u-f)/l+t:g===v?3+(u-s)/l+t:5-(u-g)/l+t)<0&&(h+=6),h>=6&&(h-=6),p=(r-(d=m+m-r))*(h-(y=h>>0)),0===y?(g=r,s=d+p,f=d):1===y?(g=r-p,s=r,f=d):2===y?(g=d,s=r,f=d+p):3===y?(g=d,s=r-p,f=r):4===y?(g=d+p,s=d,f=r):5===y&&(g=r,s=d,f=r-p))),(g=g*w+x)<0&&(g=0),(s=s*w+x)<0&&(s=0),(f=f*w+x)<0&&(f=0),g>1&&(g=1),s>1&&(s=1),f>1&&(f=1),new vg.Color(g,s,f,A.a+o)}(r)},g.rgbAdjust=function(r,t,n,e,o){return o||(o=0),t=clamp(t,-1,1),n=clamp(n,-1,1),e=clamp(e,-1,1),o=clamp(o,-1,1),function r(a){if(a instanceof img.Img){var i=a,g=i.toLayer(!1);return g.addFilter("rgbAdjust",{r:t,g:n,b:e,a:o}),i.withCanvas(g.toCanvas())}if(a instanceof vg.Group){for(var s=[],f=0;f1?t:1;for(var e=a.canvas,r=e.width,n=e.height,i=e.getContext("2d").getImageData(0,0,e.width,e.height).data,o=4*e.width,d=[],s=0;s=t&&t>=e?60*(t-e)/(o=n-e):t>n&&n>=e?60*(t-n)/(o=t-e)+60:t>=e&&e>n?60*(e-n)/(o=t-n)+120:e>t&&t>n?60*(e-t)/(o=e-n)+180:e>n&&n>=t?60*(n-t)/(o=e-t)+240:60*(n-e)/(o=n-t)+300,r=b*n+x*t+k*e,[i%360,m(p(o,0),1),m(p(r,0),1)]}function M(n,t,e){var i,o,r,a;return(n%=360)>=0&&n<60?(i=(r=e-b*t-x*(a=t*n/60))+t,o=r+a):n>=60&&n<120?(r=(o=e+k*t+b*(a=t*(n-60)/60))-t,i=o-a):n>=120&&n<180?(o=(i=e-x*t-k*(a=t*(n-120)/60))+t,r=i+a):n>=180&&n<240?(i=(r=e+b*t+x*(a=t*(n-180)/60))-t,o=r-a):n>=240&&n<300?(r=(o=e-k*t-b*(a=t*(n-240)/60))+t,i=o+a):(o=(i=e+x*t+k*(a=t*(n-300)/60))-t,r=i-a),[i=255*m(p(i,0),1),o=255*m(p(o,0),1),r=255*m(p(r,0),1)]}r={"source-over":function(){g=a+u-u*d,v=l+f-f*d,y=c+s-s*d},multiply:function(){g=a*u+a*(1-h)+u*(1-d),v=l*f+l*(1-h)+f*(1-d),y=c*s+c*(1-h)+s*(1-d)},subtract:function(){g=p(u*d-a*h,0)+a*(1-h)+u*(1-d),v=p(f*d-l*h,0)+l*(1-h)+f*(1-d),y=p(s*d-c*h,0)+c*(1-h)+s*(1-d)},divide:function(){g=0===a?0:u/a*255,v=0===l?0:f/l*255,y=0===c?0:s/c*255},screen:function(){g=a+u-a*u,v=l+f-l*f,y=c+s-c*s},lighten:function(){g=p(a*h,u*d)+a*(1-h)+u*(1-d),v=p(l*h,f*d)+l*(1-h)+f*(1-d),y=p(c*h,s*d)+c*(1-h)+s*(1-d)},darken:function(){g=m(a*h,u*d)+a*(1-h)+u*(1-d),v=m(l*h,f*d)+l*(1-h)+f*(1-d),y=m(c*h,s*d)+c*(1-h)+s*(1-d)},"darker-color":function(){u*d*.3+f*d*.59+s*d*.11<=a*h*.3+l*h*.59+c*h*.11?(g=u*d,v=f*d,y=s*d):(g=a*h,v=l*h,y=c*h),g+=a*(1-h)+u*(1-d),v+=l*(1-h)+f*(1-d),y+=c*(1-h)+s*(1-d)},"lighter-color":function(){u*d*.3+f*d*.59+s*d*.11>a*h*.3+l*h*.59+c*h*.11?(g=u*d,v=f*d,y=s*d):(g=a*h,v=l*h,y=c*h),g+=a*(1-h)+u*(1-d),v+=l*(1-h)+f*(1-d),y+=c*(1-h)+s*(1-d)},add:function(){g=m(u+a,255),v=m(f+l,255),y=m(s+c,255)},"linear-burn":function(){v=f+l,y=s+c,g=(g=u+a)<255?0:g-255,v=v<255?0:v-255,y=y<255?0:y-255},difference:function(){g=a+u-2*m(a*h,u*d),v=l+f-2*m(l*h,f*d),y=c+s-2*m(c*h,s*d)},exclusion:function(){g=a*h+u*d-2*a*u+a*(1-h)+u*(1-d),v=l*h+f*d-2*l*f+l*(1-h)+f*(1-d),y=c*h+s*d-2*c*s+c*(1-h)+s*(1-d)},overlay:function(){g=2*u<=h?2*a*u+a*(1-h)+u*(1-d):a*(1+h)+u*(1+d)-2*u*a-h*d,v=2*f<=h?2*l*f+l*(1-h)+f*(1-d):l*(1+h)+f*(1+d)-2*f*l-h*d,y=2*s<=h?2*c*s+c*(1-h)+s*(1-d):c*(1+h)+s*(1+d)-2*s*c-h*d},"soft-light":function(){var n,t=Math.pow;if(0===h)return g=a,v=l,void(y=c);n=u/h,2*a<=d?g=u*(d+(2*a-d)*(1-n))+a*(1-h)+u*(1-d):2*a>d&&4*u<=h?g=h*(2*a-d)*(16*t(n,3)-12*t(n,2)-3*n)+a-a*h+u:2*a>d&&4*u>h&&(g=h*(2*a-d)*(t(n,.5)-n)+a-a*h+u),n=f/h,2*l<=d?v=f*(d+(2*l-d)*(1-n))+l*(1-h)+f*(1-d):2*l>d&&4*f<=h?v=h*(2*l-d)*(16*t(n,3)-12*t(n,2)-3*n)+l-l*h+f:2*l>d&&4*f>h&&(v=h*(2*l-d)*(t(n,.5)-n)+l-l*h+f),n=s/h,2*c<=d?y=s*(d+(2*c-d)*(1-n))+c*(1-h)+s*(1-d):2*c>d&&4*s<=h?y=h*(2*c-d)*(16*t(n,3)-12*t(n,2)-3*n)+c-c*h+s:2*c>d&&4*s>h&&(y=h*(2*c-d)*(t(n,.5)-n)+c-c*h+s)},"hard-light":function(){g=2*a<=d?2*a*u+a*(1-h)+u*(1-d):a*(1+h)+u*(1+d)-d*h-2*a*u,v=2*l<=d?2*l*f+l*(1-h)+f*(1-d):l*(1+h)+f*(1+d)-d*h-2*l*f,y=2*c<=d?2*c*s+c*(1-h)+s*(1-d):c*(1+h)+s*(1+d)-d*h-2*c*s},"color-dodge":function(){if(0===h)return g=a,v=l,void(y=c);a===d&&0===u?g=a*(1-h):a===d?g=d*h+a*(1-h)+u*(1-d):a0&&(g=d*h*(1-m(1,(1-u/h)*d/a))+a*(1-h)+u*(1-d)),0===l&&f===h?v=d*h+f*(1-d):0===l?v=f*(1-d):l>0&&(v=d*h*(1-m(1,(1-f/h)*d/l))+l*(1-h)+f*(1-d)),0===c&&s===h?y=d*h+s*(1-d):0===c?y=s*(1-d):c>0&&(y=d*h*(1-m(1,(1-s/h)*d/c))+c*(1-h)+s*(1-d))},"linear-light":function(){var n=2*a+u-256,t=2*l+f-256,e=2*c+s-256;g=n<0||a<128&&n<0?0:n>255?255:n,v=t<0||l<128&&t<0?0:t>255?255:t,y=e<0||c<128&&e<0?0:e>255?255:e},"vivid-light":function(){var n;g=a<128?a?(n=255-(255-u<<8)/(2*a))<0?0:n:0:(n=2*a-256)<255?(n=(u<<8)/(255-n))>255?255:n:n<0?0:n,v=l<128?l?(n=255-(255-f<<8)/(2*l))<0?0:n:0:(n=2*l-256)<255?(n=(f<<8)/(255-n))>255?255:n:n<0?0:n,y=c<128?c?(n=255-(255-s<<8)/(2*c))<0?0:n:0:(n=2*c-256)<255?(n=(s<<8)/(255-n))>255?255:n:n<0?0:n},"pin-light":function(){var n;g=a<128?u<(n=2*a)?u:n:u>(n=2*a-256)?u:n,v=l<128?f<(n=2*l)?f:n:f>(n=2*l-256)?f:n,y=c<128?s<(n=2*c)?s:n:s>(n=2*c-256)?s:n},"hard-mix":function(){var n;g=a<128?255-(255-u<<8)/(2*a)<128||0===a?0:255:(n=2*a-256)<255&&(u<<8)/(255-n)<128?0:255,v=l<128?255-(255-f<<8)/(2*l)<128||0===l?0:255:(n=2*l-256)<255&&(f<<8)/(255-n)<128?0:255,y=c<128?255-(255-s<<8)/(2*c)<128||0===c?0:255:(n=2*c-256)<255&&(s<<8)/(255-n)<128?0:255},hue:function(){var n=w(u,f,s),t=M(w(a,l,c)[0],n[1],n[2]);g=t[0],v=t[1],y=t[2]},saturation:function(){var n=w(u,f,s),t=w(a,l,c),e=M(n[0],t[1],n[2]);g=e[0],v=e[1],y=e[2]},luminosity:function(){var n=w(u,f,s),t=w(a,l,c),e=M(n[0],n[1],t[2]);g=e[0],v=e[1],y=e[2]},color:function(){var n=w(u,f,s),t=w(a,l,c),e=M(t[0],t[1],n[2]);g=e[0],v=e[1],y=e[2]}},function(){var b,x,k,w,M,_,O,A,B,C=o.data,N=0===o.opacity?0:o.opacity||1,j=r[o.type||"_svg_normal"],R=o.dx||0,S=o.dy||0,D=function(n,t){var e=n.x+n.width,i=n.y+n.height,o=t.x+t.width,r=t.y+t.height,a=p(n.x,t.x),l=p(n.y,t.y);return[a,l,p(m(e,o)-a,0),p(m(i,r)-l,0)]}({x:0,y:0,width:e,height:i},{x:R,y:S,width:o.width,height:o.height}),E=D[0],I=D[1],q=D[2],z=D[3];for(B=0===j.name.indexOf("_svg_")?function(){d=C[x+3]/255*N,h=n[b+3]/255,A=255/(O=d+h-d*h),a=C[x]/255*d,l=C[x+1]/255*d,c=C[x+2]/255*d,u=n[b]/255*h,f=n[b+1]/255*h,s=n[b+2]/255*h,j(),t[b]=g*A,t[b+1]=v*A,t[b+2]=y*A,t[b+3]=255*O}:function(){u=n[b],f=n[b+1],s=n[b+2],a=C[x],l=C[x+1],c=C[x+2],j(),t[b]=g,t[b+1]=v,t[b+2]=y,t[b+3]=n[b+3],(M=N*C[x+3]/255)<1&&(_=1-M,t[b]=n[b]*_+t[b]*M,t[b+1]=n[b+1]*_+t[b+1]*M,t[b+2]=n[b+2]*_+t[b+2]*M)},w=0;w=I&&k>=E&&k=t&&t>=e?60*(t-e)/(o=n-e):t>n&&n>=e?60*(t-n)/(o=t-e)+60:t>=e&&e>n?60*(e-n)/(o=t-n)+120:e>t&&t>n?60*(e-t)/(o=e-n)+180:e>n&&n>=t?60*(n-t)/(o=e-t)+240:60*(n-e)/(o=n-t)+300,r=b*n+x*t+k*e,[i%360,m(p(o,0),1),m(p(r,0),1)]}function M(n,t,e){var i,o,r,a;return(n%=360)>=0&&n<60?(i=(r=e-b*t-x*(a=t*n/60))+t,o=r+a):n>=60&&n<120?(r=(o=e+k*t+b*(a=t*(n-60)/60))-t,i=o-a):n>=120&&n<180?(o=(i=e-x*t-k*(a=t*(n-120)/60))+t,r=i+a):n>=180&&n<240?(i=(r=e+b*t+x*(a=t*(n-180)/60))-t,o=r-a):n>=240&&n<300?(r=(o=e-k*t-b*(a=t*(n-240)/60))+t,i=o+a):(o=(i=e+x*t+k*(a=t*(n-300)/60))-t,r=i-a),[i=255*m(p(i,0),1),o=255*m(p(o,0),1),r=255*m(p(r,0),1)]}r={"source-over":function(){g=a+u-u*d,v=l+f-f*d,y=c+s-s*d},multiply:function(){g=a*u+a*(1-h)+u*(1-d),v=l*f+l*(1-h)+f*(1-d),y=c*s+c*(1-h)+s*(1-d)},subtract:function(){g=p(u*d-a*h,0)+a*(1-h)+u*(1-d),v=p(f*d-l*h,0)+l*(1-h)+f*(1-d),y=p(s*d-c*h,0)+c*(1-h)+s*(1-d)},divide:function(){g=0===a?0:u/a*255,v=0===l?0:f/l*255,y=0===c?0:s/c*255},screen:function(){g=a+u-a*u,v=l+f-l*f,y=c+s-c*s},lighten:function(){g=p(a*h,u*d)+a*(1-h)+u*(1-d),v=p(l*h,f*d)+l*(1-h)+f*(1-d),y=p(c*h,s*d)+c*(1-h)+s*(1-d)},darken:function(){g=m(a*h,u*d)+a*(1-h)+u*(1-d),v=m(l*h,f*d)+l*(1-h)+f*(1-d),y=m(c*h,s*d)+c*(1-h)+s*(1-d)},"darker-color":function(){u*d*.3+f*d*.59+s*d*.11<=a*h*.3+l*h*.59+c*h*.11?(g=u*d,v=f*d,y=s*d):(g=a*h,v=l*h,y=c*h),g+=a*(1-h)+u*(1-d),v+=l*(1-h)+f*(1-d),y+=c*(1-h)+s*(1-d)},"lighter-color":function(){u*d*.3+f*d*.59+s*d*.11>a*h*.3+l*h*.59+c*h*.11?(g=u*d,v=f*d,y=s*d):(g=a*h,v=l*h,y=c*h),g+=a*(1-h)+u*(1-d),v+=l*(1-h)+f*(1-d),y+=c*(1-h)+s*(1-d)},add:function(){g=m(u+a,255),v=m(f+l,255),y=m(s+c,255)},"linear-burn":function(){g=(g=u+a)<255?0:g-255,v=(v=f+l)<255?0:v-255,y=(y=s+c)<255?0:y-255},difference:function(){g=a+u-2*m(a*h,u*d),v=l+f-2*m(l*h,f*d),y=c+s-2*m(c*h,s*d)},exclusion:function(){g=a*h+u*d-2*a*u+a*(1-h)+u*(1-d),v=l*h+f*d-2*l*f+l*(1-h)+f*(1-d),y=c*h+s*d-2*c*s+c*(1-h)+s*(1-d)},overlay:function(){g=2*u<=h?2*a*u+a*(1-h)+u*(1-d):a*(1+h)+u*(1+d)-2*u*a-h*d,v=2*f<=h?2*l*f+l*(1-h)+f*(1-d):l*(1+h)+f*(1+d)-2*f*l-h*d,y=2*s<=h?2*c*s+c*(1-h)+s*(1-d):c*(1+h)+s*(1+d)-2*s*c-h*d},"soft-light":function(){var n,t=Math.pow;if(0===h)return g=a,v=l,void(y=c);n=u/h,2*a<=d?g=u*(d+(2*a-d)*(1-n))+a*(1-h)+u*(1-d):2*a>d&&4*u<=h?g=h*(2*a-d)*(16*t(n,3)-12*t(n,2)-3*n)+a-a*h+u:2*a>d&&4*u>h&&(g=h*(2*a-d)*(t(n,.5)-n)+a-a*h+u),n=f/h,2*l<=d?v=f*(d+(2*l-d)*(1-n))+l*(1-h)+f*(1-d):2*l>d&&4*f<=h?v=h*(2*l-d)*(16*t(n,3)-12*t(n,2)-3*n)+l-l*h+f:2*l>d&&4*f>h&&(v=h*(2*l-d)*(t(n,.5)-n)+l-l*h+f),n=s/h,2*c<=d?y=s*(d+(2*c-d)*(1-n))+c*(1-h)+s*(1-d):2*c>d&&4*s<=h?y=h*(2*c-d)*(16*t(n,3)-12*t(n,2)-3*n)+c-c*h+s:2*c>d&&4*s>h&&(y=h*(2*c-d)*(t(n,.5)-n)+c-c*h+s)},"hard-light":function(){g=2*a<=d?2*a*u+a*(1-h)+u*(1-d):a*(1+h)+u*(1+d)-d*h-2*a*u,v=2*l<=d?2*l*f+l*(1-h)+f*(1-d):l*(1+h)+f*(1+d)-d*h-2*l*f,y=2*c<=d?2*c*s+c*(1-h)+s*(1-d):c*(1+h)+s*(1+d)-d*h-2*c*s},"color-dodge":function(){if(0===h)return g=a,v=l,void(y=c);a===d&&0===u?g=a*(1-h):a===d?g=d*h+a*(1-h)+u*(1-d):a0&&(g=d*h*(1-m(1,(1-u/h)*d/a))+a*(1-h)+u*(1-d)),0===l&&f===h?v=d*h+f*(1-d):0===l?v=f*(1-d):l>0&&(v=d*h*(1-m(1,(1-f/h)*d/l))+l*(1-h)+f*(1-d)),0===c&&s===h?y=d*h+s*(1-d):0===c?y=s*(1-d):c>0&&(y=d*h*(1-m(1,(1-s/h)*d/c))+c*(1-h)+s*(1-d))},"linear-light":function(){var n=2*a+u-256,t=2*l+f-256,e=2*c+s-256;g=n<0||a<128&&n<0?0:n>255?255:n,v=t<0||l<128&&t<0?0:t>255?255:t,y=e<0||c<128&&e<0?0:e>255?255:e},"vivid-light":function(){var n;g=a<128?a?(n=255-(255-u<<8)/(2*a))<0?0:n:0:(n=2*a-256)<255?(n=(u<<8)/(255-n))>255?255:n:n<0?0:n,v=l<128?l?(n=255-(255-f<<8)/(2*l))<0?0:n:0:(n=2*l-256)<255?(n=(f<<8)/(255-n))>255?255:n:n<0?0:n,y=c<128?c?(n=255-(255-s<<8)/(2*c))<0?0:n:0:(n=2*c-256)<255?(n=(s<<8)/(255-n))>255?255:n:n<0?0:n},"pin-light":function(){var n;g=a<128?u<(n=2*a)?u:n:u>(n=2*a-256)?u:n,v=l<128?f<(n=2*l)?f:n:f>(n=2*l-256)?f:n,y=c<128?s<(n=2*c)?s:n:s>(n=2*c-256)?s:n},"hard-mix":function(){var n;g=a<128?255-(255-u<<8)/(2*a)<128||0===a?0:255:(n=2*a-256)<255&&(u<<8)/(255-n)<128?0:255,v=l<128?255-(255-f<<8)/(2*l)<128||0===l?0:255:(n=2*l-256)<255&&(f<<8)/(255-n)<128?0:255,y=c<128?255-(255-s<<8)/(2*c)<128||0===c?0:255:(n=2*c-256)<255&&(s<<8)/(255-n)<128?0:255},hue:function(){var n=w(u,f,s),t=M(w(a,l,c)[0],n[1],n[2]);g=t[0],v=t[1],y=t[2]},saturation:function(){var n=w(u,f,s),t=w(a,l,c),e=M(n[0],t[1],n[2]);g=e[0],v=e[1],y=e[2]},luminosity:function(){var n=w(u,f,s),t=w(a,l,c),e=M(n[0],n[1],t[2]);g=e[0],v=e[1],y=e[2]},color:function(){var n=w(u,f,s),t=w(a,l,c),e=M(t[0],t[1],n[2]);g=e[0],v=e[1],y=e[2]}},function(){var b,x,k,w,M,_,O,A,B,C=o.data,N=0===o.opacity?0:o.opacity||1,j=r[o.type||"_svg_normal"],R=o.dx||0,S=o.dy||0,D=function(n,t){var e=n.x+n.width,i=n.y+n.height,o=t.x+t.width,r=t.y+t.height,a=p(n.x,t.x),l=p(n.y,t.y);return[a,l,p(m(e,o)-a,0),p(m(i,r)-l,0)]}({x:0,y:0,width:e,height:i},{x:R,y:S,width:o.width,height:o.height}),E=D[0],I=D[1],q=D[2],z=D[3];for(B=0===j.name.indexOf("_svg_")?function(){d=C[x+3]/255*N,h=n[b+3]/255,A=255/(O=d+h-d*h),a=C[x]/255*d,l=C[x+1]/255*d,c=C[x+2]/255*d,u=n[b]/255*h,f=n[b+1]/255*h,s=n[b+2]/255*h,j(),t[b]=g*A,t[b+1]=v*A,t[b+2]=y*A,t[b+3]=255*O}:function(){u=n[b],f=n[b+1],s=n[b+2],a=C[x],l=C[x+1],c=C[x+2],j(),t[b]=g,t[b+1]=v,t[b+2]=y,t[b+3]=n[b+3],(M=N*C[x+3]/255)<1&&(_=1-M,t[b]=n[b]*_+t[b]*M,t[b+1]=n[b+1]*_+t[b+1]*M,t[b+2]=n[b+2]*_+t[b+2]*M)},w=0;w=I&&k>=E&&ki&&(i=t.x),t.yd&&(d=t.y));return{x:r,y:n,width:i-r,height:d-n}}function rectIntersect(e,a){var t=e.x+e.width,r=e.y+e.height,n=a.x+a.width,i=a.y+a.height,d=Math.max(e.x,a.x),h=Math.max(e.y,a.y);return{x:d,y:h,width:Math.max(Math.min(t,n)-d,0),height:Math.max(Math.min(r,i)-h,0)}}function calcLayerRect(e,a){var t=transformRect(e,a);return t=rectIntersect(t,{x:0,y:0,width:e.width,height:e.height}),{x:Math.round(t.x),y:Math.round(t.y),width:Math.ceil(t.width),height:Math.ceil(t.height)}}function getTransformedLayerData(e,a,t){var r=document.createElement("canvas"),n=r.getContext("2d");return r.width=t.width,r.height=t.height,n.translate(-t.x,-t.y),transformLayer(n,e,a),n.drawImage(a.img,0,0),n.getImageData(0,0,t.width,t.height)}CanvasRenderer.toImage=function(e){var a=new Image;return a.width=e.width,a.height=e.height,a.src=e.toDataURL(),a},CanvasRenderer.load=function(e,a){return a.isFill()?CanvasRenderer.generateColor(e,a):a.isGradient()?CanvasRenderer.generateGradient(e,a):a.isHtmlCanvas()?CanvasRenderer.loadHtmlCanvas(a.data):a.isImage()?CanvasRenderer.loadImage(a.data):a.isImageCanvas()?CanvasRenderer.loadImageCanvas(a.data):void 0},CanvasRenderer.loadHtmlCanvas=function(e){return e},CanvasRenderer.loadImageCanvas=function(e){return e.render()},CanvasRenderer.loadImage=function(e){var a=document.createElement("canvas"),t=a.getContext("2d");return a.width=e.width,a.height=e.height,t.drawImage(e,0,0,a.width,a.height),a},CanvasRenderer.generateColor=function(e,a){var t=void 0!==a.width?a.width:e.width,r=void 0!==a.height?a.height:e.height,n=document.createElement("canvas"),i=n.getContext("2d");return n.width=t,n.height=r,i.fillStyle=a.data,i.fillRect(0,0,t,r),n},CanvasRenderer.generateGradient=function(e,a){var t,r,n,i,d,h=void 0!==a.width?a.width:e.width,o=void 0!==a.height?a.height:e.height,s=h/2,g=o/2,l=document.createElement("canvas"),m=l.getContext("2d"),v=a.data,c=v.type||"linear",u=v.rotation||0;return"radial"===c?t=m.createRadialGradient(s,g,0,s,g,Math.min(h,o)/2):(u<0&&(u+=360),0<=u&&u<45?(r=0,i=h,d=o-(n=o/2*(45-u)/45)):45<=u&&u<135?(n=0,i=h-(r=h*(u-45)/90),d=o):135<=u&&u<225?(r=h,i=0,d=o-(n=o*(u-135)/90)):225<=u&&u<315?(n=o,i=h-(r=h*(1-(u-225)/90)),d=0):315<=u&&(r=0,i=h,d=o-(n=o-o/2*(u-315)/45)),t=m.createLinearGradient(r,n,i,d)),t.addColorStop(v.spread||0,v.startColor),t.addColorStop(1,v.endColor),l.width=h,l.height=o,m.fillStyle=t,m.fillRect(0,0,h,o),l},CanvasRenderer.processImage=function(e,a){if(0===a.length)return e;for(var t,r,n=e.getContext("2d"),i=e.width,d=e.height,h=n.getImageData(0,0,i,d),o=createImageData(n,i,d),s=0;s0&&(r=h,h=o,o=r),t=a[s],process[t.name](h.data,o.data,i,d,t.options);return n.putImageData(o,0,0),e},CanvasRenderer.processMask=function(e,a){if(0===a.layers.length)return e;a.width=e.width,a.height=e.height;var t=CanvasRenderer.renderBW(a),r={name:"mask",options:{data:t.getContext("2d").getImageData(0,0,t.width,t.height).data,x:0,y:0,width:t.width,height:t.height}};return CanvasRenderer.processImage(e,[r])},CanvasRenderer.processLayer=function(e,a){var t=CanvasRenderer.load(e,a),r=CanvasRenderer.processMask(t,a.mask);return CanvasRenderer.processImage(r,a.filters)},CanvasRenderer.mergeManualBlend=function(e,a){return function(t){for(var r,n,i,d,h,o=t.getContext("2d"),s=e.width,g=e.height,l=o.getImageData(0,0,s,g),m=createImageData(o,s,g),v=0;v0&&h.height>0){if(v>0&&(i=l,l=m,m=i),d={data:getTransformedLayerData(e,r,h).data,width:h.width,height:h.height,opacity:r.opacity,dx:h.x,dy:h.y},void 0===blend[r.blendmode])throw new Error("No blend mode named '"+r.blendmode+"'");n=blend.realBlendMode(r.blendmode),blend[n](l.data,m.data,s,g,d)}return o.putImageData(m,0,0),t}},CanvasRenderer.singleLayerWithOpacity=function(e,a){var t=document.createElement("canvas"),r=t.getContext("2d");return t.width=e.width,t.height=e.height,r.save(),transformLayer(r,e,a),1!==a.opacity&&(r.globalAlpha=a.opacity),r.drawImage(a.img,0,0),r.restore(),t},CanvasRenderer.mergeNativeBlend=function(e,a){return function(t){for(var r,n=t.getContext("2d"),i=0;i=2)if(i=t,o=e,s="linear",h=0,l=0,3===arguments.length)"string"==typeof r?s=r:"number"==typeof r&&(h=r);else if(4===arguments.length)if("number"==typeof r)h=r,l=a;else if("linear"===r)h=a;else{if("radial"!==r)throw new Error("Wrong argument provided: "+r);s=r,l=a}else 5===arguments.length&&(s=r,h=a,l=n);if(!i&&0!==i)throw new Error("No startColor was given.");if(!o&&0!==o)throw new Error("No endColor was given.");try{y.startColor=toColor(i)}catch(t){throw new Error("startColor is not a valid color: "+i)}try{y.endColor=toColor(o)}catch(t){throw new Error("endColor is not a valid color: "+o)}if(void 0===s&&(s="linear"),"linear"!==s&&"radial"!==s)throw new Error("Unknown gradient type: "+s);if(y.type=s,void 0===l&&(l=0),"number"!=typeof l)throw new Error("Spread value is not a number: "+l);if("linear"===s){if(void 0===h&&(h=0),"number"!=typeof h)throw new Error("Rotation value is not a number: "+h);y.rotation=h}return y.spread=clamp(l,0,.99),y}function findType(t){if("string"==typeof t)return TYPE_PATH;if(t instanceof Image)return TYPE_IMAGE;if(t instanceof HTMLCanvasElement)return TYPE_HTML_CANVAS;if(t instanceof ImageCanvas)return TYPE_IMAGE_CANVAS;if(void 0!==t.r&&void 0!==t.g&&void 0!==t.b&&void 0!==t.a)return TYPE_FILL;if(void 0!==t.startColor&&void 0!==t.endColor)return TYPE_GRADIENT;throw new Error("Cannot establish type for data ",t)}(Layer=function(t,e){e||(e=findType(t)),this.data=t,this.type=e,e!==TYPE_HTML_CANVAS&&e!==TYPE_IMAGE_CANVAS&&e!==TYPE_IMAGE||(this.width=t.width,this.height=t.height),this.opacity=1,this.blendmode="source-over",this.transform=IDENTITY_TRANSFORM,this.flip_h=!1,this.flip_v=!1,this.mask=new ImageCanvas,this.filters=[]}).Transform=Layer.IDENTITY_TRANSFORM=IDENTITY_TRANSFORM,Layer.prototype.clone=function(){function t(t){var e,r,a={};if(a.name=t.name,void 0!==t.options){a.options={};for(var n=Object.keys(t.options),i=0;i1?t[1]:e}}function pointFromNumber(t){return{x:t,y:t}}function isValidArg(t){return void 0!==t&&null!==t}function convertArg(t){return Array.isArray(t)?pointFromArray(t):"number"==typeof t?pointFromNumber(t):isPoint(t)?t:void 0}Pixels.prototype.get=function(t){t*=4;var e=this.array;return[e[t+0],e[t+1],e[t+2],e[t+3]]},Pixels.prototype.set=function(t,e){t*=4;var r=this.array;r[t+0]=e[0],r[t+1]=e[1],r[t+2]=e[2],r[t+3]=e[3]},Pixels.prototype.toCanvas=function(){var t=document.createElement("canvas");return t.width=this.width,t.height=this.height,t.getContext("2d").putImageData(this._data,0,0),t},(ImageCanvas=function(t,e){t||(t=DEFAULT_WIDTH),e||(e=DEFAULT_HEIGHT),this.width=t,this.height=e,this.layers=[]}).prototype.clone=function(){for(var t=new ImageCanvas(this.width,this.height),e=0;ea&&(a=t.x),t.yn&&(n=t.y));return{x:e,y:r,width:a-e,height:n-r}},Img.prototype.colorize=function(t){var e=Layer.fromColor(t);e.width=this.originalWidth,e.height=this.originalHeight;var r=new Img(e.toCanvas());return r=r._transform(this.transform.matrix()),img.merge([this,r])},Img.prototype.desaturate=function(t){var e=this.toLayer(!1);return e.addFilter("desaturate",t),this.withCanvas(e.toCanvas())},Img.prototype.crop=function(t){var e,r,a,n,i,o,s,h,l=this.bounds(),d=t.bounds(),y=(r=d,a=(e=l).x+e.width,n=e.y+e.height,i=r.x+r.width,o=r.y+r.height,s=Math.max(e.x,r.x),h=Math.max(e.y,r.y),{x:s,y:h,width:Math.max(Math.min(a,i)-s,0),height:Math.max(Math.min(n,o)-h,0)}),g=Math.ceil(y.width),m=Math.ceil(y.height);if(0===y.width||0===y.height)throw new Error("Resulting image has no dimensions");var u=new img.ImageCanvas(g,m),p=u.addLayer(this.toLayer());return p.translate(g/2-d.width-d.x,m/2-d.height-d.y),gl.x&&p.translate(d.width-g,0),ml.y&&p.translate(0,d.height-m),new Img(u.render(),y.x+g/2,y.y+m/2)},Img.prototype.draw=function(t){t.save();var e=this.transform.matrix();t.transform(e[0],e[1],e[3],e[4],e[6],e[7]),t.translate(-this.originalWidth/2,-this.originalHeight/2),t.drawImage(this.canvas,0,0),t.restore()},Img.prototype.toLayer=function(t){var e=document.createElement("canvas");e.width=this.canvas.width,e.height=this.canvas.height,e.getContext("2d").drawImage(this.canvas,0,0);var r=img.Layer.fromHtmlCanvas(e);return void 0===t&&(t=!0),t&&(r.transform=this.transform),r},Img.prototype.getPixels=function(){return new Pixels(this.canvas)},Img.prototype.toImage=function(){var t=this.bounds(),e=this.crop({bounds:function(){return t}}),r=new Image;return r.width=e.canvas.width,r.height=e.canvas.height,r.src=e.canvas.toDataURL(),r},(img={}).Layer=Layer,img.ImageCanvas=ImageCanvas,img.Img=Img,img.Pixels=Pixels;var async=require("async");function loadImage(t,e){var r=new Image;r.onload=function(){e(null,[t,this])},r.src=t}function loadImages(t,e){async.map(t,loadImage,function(t,r){if(e){for(var a,n,i={},o=0;o=2)if(i=t,o=e,s="linear",h=0,l=0,3===arguments.length)"string"==typeof r?s=r:"number"==typeof r&&(h=r);else if(4===arguments.length)if("number"==typeof r)h=r,l=a;else if("linear"===r)h=a;else{if("radial"!==r)throw new Error("Wrong argument provided: "+r);s=r,l=a}else 5===arguments.length&&(s=r,h=a,l=n);if(!i&&0!==i)throw new Error("No startColor was given.");if(!o&&0!==o)throw new Error("No endColor was given.");try{y.startColor=toColor(i)}catch(t){throw new Error("startColor is not a valid color: "+i)}try{y.endColor=toColor(o)}catch(t){throw new Error("endColor is not a valid color: "+o)}if(void 0===s&&(s="linear"),"linear"!==s&&"radial"!==s)throw new Error("Unknown gradient type: "+s);if(y.type=s,void 0===l&&(l=0),"number"!=typeof l)throw new Error("Spread value is not a number: "+l);if("linear"===s){if(void 0===h&&(h=0),"number"!=typeof h)throw new Error("Rotation value is not a number: "+h);y.rotation=h}return y.spread=clamp(l,0,.99),y}function findType(t){if("string"==typeof t)return TYPE_PATH;if(t instanceof Image)return TYPE_IMAGE;if(t instanceof HTMLCanvasElement)return TYPE_HTML_CANVAS;if(t instanceof ImageCanvas)return TYPE_IMAGE_CANVAS;if(void 0!==t.r&&void 0!==t.g&&void 0!==t.b&&void 0!==t.a)return TYPE_FILL;if(void 0!==t.startColor&&void 0!==t.endColor)return TYPE_GRADIENT;throw new Error("Cannot establish type for data ",t)}(Layer=function(t,e){e||(e=findType(t)),this.data=t,this.type=e,e!==TYPE_HTML_CANVAS&&e!==TYPE_IMAGE_CANVAS&&e!==TYPE_IMAGE||(this.width=t.width,this.height=t.height),this.opacity=1,this.blendmode="source-over",this.transform=IDENTITY_TRANSFORM,this.flip_h=!1,this.flip_v=!1,this.mask=new ImageCanvas,this.filters=[]}).Transform=Layer.IDENTITY_TRANSFORM=IDENTITY_TRANSFORM,Layer.prototype.clone=function(){function t(t){var e,r,a={};if(a.name=t.name,void 0!==t.options){a.options={};for(var n=Object.keys(t.options),i=0;i1?t[1]:e}}function pointFromNumber(t){return{x:t,y:t}}function isValidArg(t){return null!=t}function convertArg(t){return Array.isArray(t)?pointFromArray(t):"number"==typeof t?pointFromNumber(t):isPoint(t)?t:void 0}Pixels.prototype.get=function(t){t*=4;var e=this.array;return[e[t+0],e[t+1],e[t+2],e[t+3]]},Pixels.prototype.set=function(t,e){t*=4;var r=this.array;r[t+0]=e[0],r[t+1]=e[1],r[t+2]=e[2],r[t+3]=e[3]},Pixels.prototype.toCanvas=function(){var t=document.createElement("canvas");return t.width=this.width,t.height=this.height,t.getContext("2d").putImageData(this._data,0,0),t},(ImageCanvas=function(t,e){t||(t=DEFAULT_WIDTH),e||(e=DEFAULT_HEIGHT),this.width=t,this.height=e,this.layers=[]}).prototype.clone=function(){for(var t=new ImageCanvas(this.width,this.height),e=0;ea&&(a=t.x),t.yn&&(n=t.y));return{x:e,y:r,width:a-e,height:n-r}},Img.prototype.colorize=function(t){var e=Layer.fromColor(t);e.width=this.originalWidth,e.height=this.originalHeight;var r=new Img(e.toCanvas());return r=r._transform(this.transform.matrix()),img.merge([this,r])},Img.prototype.desaturate=function(t){var e=this.toLayer(!1);return e.addFilter("desaturate",t),this.withCanvas(e.toCanvas())},Img.prototype.crop=function(t){var e,r,a,n,i,o,s,h,l=this.bounds(),d=t.bounds(),y=(r=d,a=(e=l).x+e.width,n=e.y+e.height,i=r.x+r.width,o=r.y+r.height,s=Math.max(e.x,r.x),h=Math.max(e.y,r.y),{x:s,y:h,width:Math.max(Math.min(a,i)-s,0),height:Math.max(Math.min(n,o)-h,0)}),g=Math.ceil(y.width),m=Math.ceil(y.height);if(0===y.width||0===y.height)throw new Error("Resulting image has no dimensions");var u=new img.ImageCanvas(g,m),p=u.addLayer(this.toLayer());return p.translate(g/2-d.width-d.x,m/2-d.height-d.y),gl.x&&p.translate(d.width-g,0),ml.y&&p.translate(0,d.height-m),new Img(u.render(),y.x+g/2,y.y+m/2)},Img.prototype.draw=function(t){t.save();var e=this.transform.matrix();t.transform(e[0],e[1],e[3],e[4],e[6],e[7]),t.translate(-this.originalWidth/2,-this.originalHeight/2),t.drawImage(this.canvas,0,0),t.restore()},Img.prototype.toLayer=function(t){var e=document.createElement("canvas");e.width=this.canvas.width,e.height=this.canvas.height,e.getContext("2d").drawImage(this.canvas,0,0);var r=img.Layer.fromHtmlCanvas(e);return void 0===t&&(t=!0),t&&(r.transform=this.transform),r},Img.prototype.getPixels=function(){return new Pixels(this.canvas)},Img.prototype.toImage=function(){var t=this.bounds(),e=this.crop({bounds:function(){return t}}),r=new Image;return r.width=e.canvas.width,r.height=e.canvas.height,r.src=e.canvas.toDataURL(),r},(img={}).Layer=Layer,img.ImageCanvas=ImageCanvas,img.Img=Img,img.Pixels=Pixels;var async=require("async");function loadImage(t,e){var r=new Image;r.onload=function(){e(null,[t,this])},r.src=t}function loadImages(t,e){async.map(t,loadImage,function(t,r){if(e){for(var a,n,i={},o=0;o=n?1:(t=(t-o)/(n-o))*t*(3-2*t)}function noise(){return.5*Math.random()+.5}function colorDistance(o,n,t){return clamp(o*n+(1-o)*t,0,255)}function convolve3x3(o,n,t,r,a,e,i,u){var l,c,f,s,v,p,d,m,h,x,g,O,M,T,I,b,y,_,z,U,k,S,w=a[0][0],B=a[0][1],R=a[0][2],P=a[1][0],L=a[1][1],N=a[1][2],Y=a[2][0],q=a[2][1],A=a[2][2];for(c=0;c=t-1&&(x=m),l=0;l=t-1&&(M=g),I=h+g,b=h+M,y=m+O,_=m+g,z=m+M,U=x+O,k=x+g,S=x+M,s=o[T=h+O]*w+o[I]*B+o[b]*R+o[y]*P+o[_]*L+o[z]*N+o[U]*Y+o[k]*q+o[S]*A,v=o[T+1]*w+o[I+1]*B+o[b+1]*R+o[y+1]*P+o[_+1]*L+o[z+1]*N+o[U+1]*Y+o[k+1]*q+o[S+1]*A,p=o[T+2]*w+o[I+2]*B+o[b+2]*R+o[y+2]*P+o[_+2]*L+o[z+2]*N+o[U+2]*Y+o[k+2]*q+o[S+2]*A,d=e?o[T+3]*w+o[I+3]*B+o[b+3]*R+o[y+3]*P+o[_+3]*L+o[z+3]*N+o[U+3]*Y+o[k+3]*q+o[S+3]*A:o[f+3],u&&(s=v=p=(s+v+p)/3),i&&(s=255-s,v=255-v,p=255-p),n[f]=s,n[f+1]=v,n[f+2]=p,n[f+3]=d}function convolve5x5(o,n,t,r,a,e,i,u){var l,c,f,s,v,p,d,m,h,x,g,O,M,T,I,b,y,_,z,U,k,S,w,B,R,P,L,N,Y,q,A,j,D,C,E,F,G,H=a[0][0],J=a[0][1],K=a[0][2],Q=(a[0][3],a[0][4]),V=a[1][0],W=a[1][1],X=a[1][2],Z=(a[1][3],a[1][4]),$=a[2][0],oo=a[2][1],no=a[2][2],to=(a[2][3],a[2][4]),ro=a[3][0],ao=a[3][1],eo=a[3][2],io=(a[3][3],a[3][4]),uo=a[4][0],lo=a[4][1],co=a[4][2],fo=(a[4][3],a[4][4]);for(c=0;c=t-1&&(x=m),c<2&&(g=h),c>=t-2&&(O=x),l=0;l=t-1&&(I=M),l<2&&(b=T),l>=t-2&&(y=I),z=g+T,U=g+M,k=g+I,g+y,S=h+b,w=h+T,B=h+M,R=h+I,h+y,P=m+b,L=m+T,N=m+M,Y=m+I,m+y,q=x+b,A=x+T,j=x+M,D=x+I,x+y,C=O+b,E=O+T,F=O+M,G=O+I,O+y,s=o[_=g+b]*H+o[z]*J+o[U]*K+o[k]*Q+o[U]*Q+o[S]*V+o[w]*W+o[B]*X+o[R]*Z+o[B]*Z+o[P]*$+o[L]*oo+o[N]*no+o[Y]*to+o[N]*to+o[q]*ro+o[A]*ao+o[j]*eo+o[D]*io+o[j]*io+o[C]*uo+o[E]*lo+o[F]*co+o[G]*fo+o[F]*fo,v=o[_+1]*H+o[z+1]*J+o[U+1]*K+o[k+1]*Q+o[U+1]*Q+o[S+1]*V+o[w+1]*W+o[B+1]*X+o[R+1]*Z+o[B+1]*Z+o[P+1]*$+o[L+1]*oo+o[N+1]*no+o[Y+1]*to+o[N+1]*to+o[q+1]*ro+o[A+1]*ao+o[j+1]*eo+o[D+1]*io+o[j+1]*io+o[C+1]*uo+o[E+1]*lo+o[F+1]*co+o[G+1]*fo+o[F+1]*fo,p=o[_+2]*H+o[z+2]*J+o[U+2]*K+o[k+2]*Q+o[U+2]*Q+o[S+2]*V+o[w+2]*W+o[B+2]*X+o[R+2]*Z+o[B+2]*Z+o[P+2]*$+o[L+2]*oo+o[N+2]*no+o[Y+2]*to+o[N+2]*to+o[q+2]*ro+o[A+2]*ao+o[j+2]*eo+o[D+2]*io+o[j+2]*io+o[C+2]*uo+o[E+2]*lo+o[F+2]*co+o[G+2]*fo+o[F+2]*fo,d=e?o[_+3]*H+o[z+3]*J+o[U+3]*K+o[k+3]*Q+o[U+3]*Q+o[S+3]*V+o[w+3]*W+o[B+3]*X+o[R+3]*Z+o[B+3]*Z+o[P+3]*$+o[L+3]*oo+o[N+3]*no+o[Y+3]*to+o[N+3]*to+o[q+3]*ro+o[A+3]*ao+o[j+3]*eo+o[D+3]*io+o[j+3]*io+o[C+3]*uo+o[E+3]*lo+o[F+3]*co+o[G+3]*fo+o[F+3]*fo:o[f+3],u&&(s=v=p=(s+v+p)/3),i&&(s=255-s,v=255-v,p=255-p),n[f]=s,n[f+1]=v,n[f+2]=p,n[f+3]=d}function gaussian(o,n,t,r,a){var e,i,u,l,c,f,s,v,p,d,m,h,x,g,O,M=[],T=[[1]];for(g=(a=clamp(a,3,13))+(x=-a/2+(a%2?.5:0)),u=1;u<13;u+=1)T[0][u]=0;for(u=1;u<13;u+=1)for(T[u]=[1],l=1;l<13;l+=1)T[u][l]=T[u-1][l]+T[u-1][l-1];for(O=T[a-1],u=0,h=0;u=t&&(d=t-1),c+=o[p=4*(m*t+d)]*h,f+=o[p+1]*h,s+=o[p+2]*h,v+=o[p+3]*h;M[p=4*(i*t+e)]=c,M[p+1]=f,M[p+2]=s,M[p+3]=v}for(i=0;i=r&&(m=r-1),c+=M[p=4*(m*t+d)]*h,f+=M[p+1]*h,s+=M[p+2]*h,v+=M[p+3]*h;n[p=4*(i*t+e)]=c,n[p+1]=f,n[p+2]=s,n[p+3]=v}}function getPixel(o,n){return[o[(n*=4)+0],o[n+1],o[n+2],o[n+3]]}function setPixel(o,n,t){o[(n*=4)+0]=t[0],o[n+1]=t[1],o[n+2]=t[2],o[n+3]=t[3]}function polar(o,n,t,r,a,e,i){var u,l,c,f,s,v,p;for(t=a/2+(t||0),r=e/2+(r||0),u=0;u127?255-e:e,n[a+1]=i>127?255-i:i,n[a+2]=u>127?255-u:u,n[a+3]=o[a+3]},brightness:function(o,n,t,r,a){a=defaultOptions(a,{brightness:1,contrast:0});var e,i,u,l,c,f=t*r*4,s=clamp(a.contrast,-1,1)/2,v=1+clamp(a.brightness,-1,1),p=v<0?-v:v,d=v<0?0:v;for(c=255*-((s=.5*Math.tan((s+1)*Math.PI/4))-.5),e=0;e255&&(i=255),u>255&&(u=255),l>255&&(l=255),n[e]=i,n[e+1]=u,n[e+2]=l,n[e+3]=o[e+3]},convolve3x3:function(o,n,t,r,a){convolve3x3(o,n,t,r,a.kernel)},convolve5x5:function(o,n,t,r,a){convolve5x5(o,n,t,r,a.kernel)},sharpen3x3:function(o,n,t,r,a){a=defaultOptions(a,{strength:1});var e=-clamp(a.strength,0,1);convolve3x3(o,n,t,r,[[e,e,e],[e,1-8*e,e],[e,e,e]])},sharpen5x5:function(o,n,t,r,a){a=defaultOptions(a,{strength:1});var e=-clamp(a.strength,0,1);convolve5x5(o,n,t,r,[[e,e,e,e,e],[e,e,e,e,e],[e,e,1-24*e,e,e],[e,e,e,e,e],[e,e,e,e,e]])},soften3x3:function(o,n,t,r){var a=1/9;convolve3x3(o,n,t,r,[[a,a,a],[a,a,a],[a,a,a]])},soften5x5:function(o,n,t,r){var a=.04;convolve5x5(o,n,t,r,[[a,a,a,a,a],[a,a,a,a,a],[a,a,a,a,a],[a,a,a,a,a],[a,a,a,a,a]])},crossedges:function(o,n,t,r,a){a=defaultOptions(a,{strength:1});var e=5*clamp(a.strength,0,1);convolve3x3(o,n,t,r,[[0,-e,0],[-e,0,e],[0,e,0]],!1,!0)},emboss:function(o,n,t,r,a){var e,i=t*r*4,u=(a=defaultOptions(a,{amount:1,angle:0})).amount,l=a.angle,c=Math.cos(-l)*u,f=Math.sin(-l)*u,s=[];for(convolve3x3(o,s,t,r,[[-c-f,-f,-f+c],[-c,0,c],[f-c,f,f+c]]),e=0;e255&&(i=255),u>255&&(u=255),l>255&&(l=255),c>255&&(c=255),n[e]=i,n[e+1]=u,n[e+2]=l,n[e+3]=c},colorfilter:function(o,n,t,r,a){var e,i,u,l,c,f,s,v,p,d,m,h=t*r*4,x=!!(a=defaultOptions(a,{luminosity:!1,r:1,g:.5,b:0})).luminosity,g=clamp(a.r,0,1),O=clamp(a.g,0,1),M=clamp(a.b,0,1);for(e=0;ef&&(f=u),l>f&&(f=l),u>0)),i=u=l=v-(.3*i+.59*u+.11*l),0===p?(i+=d,u+=m):1===p?(i+=d-m,u+=d):2===p?(u+=d,l+=m):3===p?(u+=d-m,l+=d):4===p?(i+=m,l+=d):5===p&&(i+=d,l+=d-m)),n[e]=255*i,n[e+1]=255*u,n[e+2]=255*l,n[e+3]=o[e+3]},hslAdjust:function(o,n,t,r,a){a=defaultOptions(a,{h:.5,s:.3,l:.1,a:0});var e,i,u,l,c,f,s,v,p,d,m,h,x,g,O,M=t*r*4,T=clamp(a.h,-1,1),I=clamp(a.s,-1,1),b=clamp(a.l,-1,1),y=255*clamp(a.a,-1,1),_=1+I*(I<0?1:2),z=b<0?1+b:1-b,U=b<0?0:255*b;for(T=6*T%6,e=0;e(f=i)&&(f=u),l>f&&(f=l),u<(s=i)&&(s=u),l0&&v>0&&(m<=.5?((d=v/(f+s)*_)>1&&(d=1),h=m*(1+d)):((d=v/(510-f-s)*_)>1&&(d=1),h=m+d-m*d),(p=i===f?u===s?5+(f-l)/v+T:1-(f-u)/v+T:u===f?l===s?1+(f-i)/v+T:3-(f-l)/v+T:i===s?3+(f-u)/v+T:5-(f-i)/v+T)<0&&(p+=6),p>=6&&(p-=6),g=(h-(x=m+m-h))*(p-(O=p>>0)),0===O?(i=h,u=x+g,l=x):1===O?(i=h-g,u=h,l=x):2===O?(i=x,u=h,l=x+g):3===O?(i=x,u=h-g,l=h):4===O?(i=x+g,u=x,l=h):5===O&&(i=h,u=x,l=h-g),i*=255,u*=255,l*=255)),u=u*z+U,l=l*z+U,(i=i*z+U)<0&&(i=0),u<0&&(u=0),l<0&&(l=0),c<0&&(c=0),i>255&&(i=255),u>255&&(u=255),l>255&&(l=255),c>255&&(c=255),n[e]=i,n[e+1]=u,n[e+2]=l,n[e+3]=c},posterize:function(o,n,t,r,a){a=defaultOptions(a,{levels:5});var e,i=t*r*4,u=clamp(a.levels,2,256),l=256/u,c=256/(u-1);for(e=0;e>0),n[e+1]=c*(o[e+1]/l>>0),n[e+2]=c*(o[e+2]/l>>0),n[e+3]=o[e+3]},removenoise:function(o,n,t,r){var a,e,i,u,l,c,f,s,v,p,d,m,h,x,g,O,M;for(e=0;e=t-1&&(p=s),a=0;a=t-1&&(h=d),x=M=o[s+m],(c=o[s+h])M&&(M=c),(c=o[v+d])M&&(M=c),(c=o[p+d])M&&(M=c),g=o[s+m+1],(c=o[s+h+1])M&&(i=M),uvoid 0&&(u=void 0),lvoid 0&&(l=void 0),n[f]=i,n[f+1]=u,n[f+2]=l,n[f+3]=o[f+3]},mosaic:function(o,n,t,r,a){a=defaultOptions(a,{blockSize:8});var e,i,u,l,c,f,s,v,p,d,m,h,x,g=clamp(a.blockSize,1,Math.max(t,r)),O=Math.ceil(r/g),M=Math.ceil(t/g);for(e=0,0,s=0;se?e:o,n]})},twirl:function(o,n,t,r,a){a=defaultOptions(a,{dx:0,dy:0,radius:0,angle:0});var e=util.radians(a.angle),i=a.radius;return polar(o,n,a.dx,a.dy,t,r,function(o,n){return[o,n+(1-smoothstep(-i,i,o))*e]})}};module.exports=process; +},{"./asyncrenderer":20,"./canvasrenderer":22,"./util":25,"async":1}],24:[function(require,module,exports){ +"use strict";var stackblur=require("stackblur"),util=require("./util"),clamp=util.clamp,LUMINOSITY_ITU_R_BT601="ITU-R BT.601",LUMINOSITY_ITU_R_BT709="ITU-R BT.709";function defaultOptions(o,n){if(!o)return n;var t,r={};for(t in n)n.hasOwnProperty(t)&&(void 0===o[t]?r[t]=n[t]:r[t]=o[t]);return r}function smoothstep(o,n,t){return t=n?1:(t=(t-o)/(n-o))*t*(3-2*t)}function noise(){return.5*Math.random()+.5}function colorDistance(o,n,t){return clamp(o*n+(1-o)*t,0,255)}function convolve3x3(o,n,t,r,a,e,i,u){var l,c,f,s,v,p,d,m,h,x,g,O,M,T,I,b,y,_,z,U,k,S,w=a[0][0],B=a[0][1],R=a[0][2],P=a[1][0],L=a[1][1],N=a[1][2],Y=a[2][0],q=a[2][1],A=a[2][2];for(c=0;c=t-1&&(x=m),l=0;l=t-1&&(M=g),I=h+g,b=h+M,y=m+O,_=m+g,z=m+M,U=x+O,k=x+g,S=x+M,s=o[T=h+O]*w+o[I]*B+o[b]*R+o[y]*P+o[_]*L+o[z]*N+o[U]*Y+o[k]*q+o[S]*A,v=o[T+1]*w+o[I+1]*B+o[b+1]*R+o[y+1]*P+o[_+1]*L+o[z+1]*N+o[U+1]*Y+o[k+1]*q+o[S+1]*A,p=o[T+2]*w+o[I+2]*B+o[b+2]*R+o[y+2]*P+o[_+2]*L+o[z+2]*N+o[U+2]*Y+o[k+2]*q+o[S+2]*A,d=e?o[T+3]*w+o[I+3]*B+o[b+3]*R+o[y+3]*P+o[_+3]*L+o[z+3]*N+o[U+3]*Y+o[k+3]*q+o[S+3]*A:o[f+3],u&&(s=v=p=(s+v+p)/3),i&&(s=255-s,v=255-v,p=255-p),n[f]=s,n[f+1]=v,n[f+2]=p,n[f+3]=d}function convolve5x5(o,n,t,r,a,e,i,u){var l,c,f,s,v,p,d,m,h,x,g,O,M,T,I,b,y,_,z,U,k,S,w,B,R,P,L,N,Y,q,A,j,D,C,E,F,G,H=a[0][0],J=a[0][1],K=a[0][2],Q=(a[0][3],a[0][4]),V=a[1][0],W=a[1][1],X=a[1][2],Z=(a[1][3],a[1][4]),$=a[2][0],oo=a[2][1],no=a[2][2],to=(a[2][3],a[2][4]),ro=a[3][0],ao=a[3][1],eo=a[3][2],io=(a[3][3],a[3][4]),uo=a[4][0],lo=a[4][1],co=a[4][2],fo=(a[4][3],a[4][4]);for(c=0;c=t-1&&(x=m),c<2&&(g=h),c>=t-2&&(O=x),l=0;l=t-1&&(I=M),l<2&&(b=T),l>=t-2&&(y=I),z=g+T,U=g+M,k=g+I,g+y,S=h+b,w=h+T,B=h+M,R=h+I,h+y,P=m+b,L=m+T,N=m+M,Y=m+I,m+y,q=x+b,A=x+T,j=x+M,D=x+I,x+y,C=O+b,E=O+T,F=O+M,G=O+I,O+y,s=o[_=g+b]*H+o[z]*J+o[U]*K+o[k]*Q+o[U]*Q+o[S]*V+o[w]*W+o[B]*X+o[R]*Z+o[B]*Z+o[P]*$+o[L]*oo+o[N]*no+o[Y]*to+o[N]*to+o[q]*ro+o[A]*ao+o[j]*eo+o[D]*io+o[j]*io+o[C]*uo+o[E]*lo+o[F]*co+o[G]*fo+o[F]*fo,v=o[_+1]*H+o[z+1]*J+o[U+1]*K+o[k+1]*Q+o[U+1]*Q+o[S+1]*V+o[w+1]*W+o[B+1]*X+o[R+1]*Z+o[B+1]*Z+o[P+1]*$+o[L+1]*oo+o[N+1]*no+o[Y+1]*to+o[N+1]*to+o[q+1]*ro+o[A+1]*ao+o[j+1]*eo+o[D+1]*io+o[j+1]*io+o[C+1]*uo+o[E+1]*lo+o[F+1]*co+o[G+1]*fo+o[F+1]*fo,p=o[_+2]*H+o[z+2]*J+o[U+2]*K+o[k+2]*Q+o[U+2]*Q+o[S+2]*V+o[w+2]*W+o[B+2]*X+o[R+2]*Z+o[B+2]*Z+o[P+2]*$+o[L+2]*oo+o[N+2]*no+o[Y+2]*to+o[N+2]*to+o[q+2]*ro+o[A+2]*ao+o[j+2]*eo+o[D+2]*io+o[j+2]*io+o[C+2]*uo+o[E+2]*lo+o[F+2]*co+o[G+2]*fo+o[F+2]*fo,d=e?o[_+3]*H+o[z+3]*J+o[U+3]*K+o[k+3]*Q+o[U+3]*Q+o[S+3]*V+o[w+3]*W+o[B+3]*X+o[R+3]*Z+o[B+3]*Z+o[P+3]*$+o[L+3]*oo+o[N+3]*no+o[Y+3]*to+o[N+3]*to+o[q+3]*ro+o[A+3]*ao+o[j+3]*eo+o[D+3]*io+o[j+3]*io+o[C+3]*uo+o[E+3]*lo+o[F+3]*co+o[G+3]*fo+o[F+3]*fo:o[f+3],u&&(s=v=p=(s+v+p)/3),i&&(s=255-s,v=255-v,p=255-p),n[f]=s,n[f+1]=v,n[f+2]=p,n[f+3]=d}function gaussian(o,n,t,r,a){var e,i,u,l,c,f,s,v,p,d,m,h,x,g,O,M=[],T=[[1]];for(g=(a=clamp(a,3,13))+(x=-a/2+(a%2?.5:0)),u=1;u<13;u+=1)T[0][u]=0;for(u=1;u<13;u+=1)for(T[u]=[1],l=1;l<13;l+=1)T[u][l]=T[u-1][l]+T[u-1][l-1];for(O=T[a-1],u=0,h=0;u=t&&(d=t-1),c+=o[p=4*(m*t+d)]*h,f+=o[p+1]*h,s+=o[p+2]*h,v+=o[p+3]*h;M[p=4*(i*t+e)]=c,M[p+1]=f,M[p+2]=s,M[p+3]=v}for(i=0;i=r&&(m=r-1),c+=M[p=4*(m*t+d)]*h,f+=M[p+1]*h,s+=M[p+2]*h,v+=M[p+3]*h;n[p=4*(i*t+e)]=c,n[p+1]=f,n[p+2]=s,n[p+3]=v}}function getPixel(o,n){return[o[(n*=4)+0],o[n+1],o[n+2],o[n+3]]}function setPixel(o,n,t){o[(n*=4)+0]=t[0],o[n+1]=t[1],o[n+2]=t[2],o[n+3]=t[3]}function polar(o,n,t,r,a,e,i){var u,l,c,f,s,v,p;for(t=a/2+(t||0),r=e/2+(r||0),u=0;u127?255-e:e,n[a+1]=i>127?255-i:i,n[a+2]=u>127?255-u:u,n[a+3]=o[a+3]},brightness:function(o,n,t,r,a){a=defaultOptions(a,{brightness:1,contrast:0});var e,i,u,l,c,f=t*r*4,s=clamp(a.contrast,-1,1)/2,v=1+clamp(a.brightness,-1,1),p=v<0?-v:v,d=v<0?0:v;for(c=255*-((s=.5*Math.tan((s+1)*Math.PI/4))-.5),e=0;e255&&(i=255),(u=o[e+1]+s[e+1]*f)>255&&(u=255),(l=o[e+2]+s[e+2]*f)>255&&(l=255),n[e]=i,n[e+1]=u,n[e+2]=l,n[e+3]=o[e+3]},convolve3x3:function(o,n,t,r,a){convolve3x3(o,n,t,r,a.kernel)},convolve5x5:function(o,n,t,r,a){convolve5x5(o,n,t,r,a.kernel)},sharpen3x3:function(o,n,t,r,a){a=defaultOptions(a,{strength:1});var e=-clamp(a.strength,0,1);convolve3x3(o,n,t,r,[[e,e,e],[e,1-8*e,e],[e,e,e]])},sharpen5x5:function(o,n,t,r,a){a=defaultOptions(a,{strength:1});var e=-clamp(a.strength,0,1);convolve5x5(o,n,t,r,[[e,e,e,e,e],[e,e,e,e,e],[e,e,1-24*e,e,e],[e,e,e,e,e],[e,e,e,e,e]])},soften3x3:function(o,n,t,r){var a=1/9;convolve3x3(o,n,t,r,[[a,a,a],[a,a,a],[a,a,a]])},soften5x5:function(o,n,t,r){var a=.04;convolve5x5(o,n,t,r,[[a,a,a,a,a],[a,a,a,a,a],[a,a,a,a,a],[a,a,a,a,a],[a,a,a,a,a]])},crossedges:function(o,n,t,r,a){a=defaultOptions(a,{strength:1});var e=5*clamp(a.strength,0,1);convolve3x3(o,n,t,r,[[0,-e,0],[-e,0,e],[0,e,0]],!1,!0)},emboss:function(o,n,t,r,a){var e,i=t*r*4,u=(a=defaultOptions(a,{amount:1,angle:0})).amount,l=a.angle,c=Math.cos(-l)*u,f=Math.sin(-l)*u,s=[];for(convolve3x3(o,s,t,r,[[-c-f,-f,-f+c],[-c,0,c],[f-c,f,f+c]]),e=0;e255&&(i=255),u>255&&(u=255),l>255&&(l=255),c>255&&(c=255),n[e]=i,n[e+1]=u,n[e+2]=l,n[e+3]=c},colorfilter:function(o,n,t,r,a){var e,i,u,l,c,f,s,v,p,d,m,h=t*r*4,x=!!(a=defaultOptions(a,{luminosity:!1,r:1,g:.5,b:0})).luminosity,g=clamp(a.r,0,1),O=clamp(a.g,0,1),M=clamp(a.b,0,1);for(e=0;ef&&(f=u),l>f&&(f=l),u>0)),i=u=l=v-(.3*i+.59*u+.11*l),0===p?(i+=d,u+=m):1===p?(i+=d-m,u+=d):2===p?(u+=d,l+=m):3===p?(u+=d-m,l+=d):4===p?(i+=m,l+=d):5===p&&(i+=d,l+=d-m)),n[e]=255*i,n[e+1]=255*u,n[e+2]=255*l,n[e+3]=o[e+3]},hslAdjust:function(o,n,t,r,a){a=defaultOptions(a,{h:.5,s:.3,l:.1,a:0});var e,i,u,l,c,f,s,v,p,d,m,h,x,g,O,M=t*r*4,T=clamp(a.h,-1,1),I=clamp(a.s,-1,1),b=clamp(a.l,-1,1),y=255*clamp(a.a,-1,1),_=1+I*(I<0?1:2),z=b<0?1+b:1-b,U=b<0?0:255*b;for(T=6*T%6,e=0;e(f=i)&&(f=u),l>f&&(f=l),u<(s=i)&&(s=u),l0&&v>0&&(m<=.5?((d=v/(f+s)*_)>1&&(d=1),h=m*(1+d)):((d=v/(510-f-s)*_)>1&&(d=1),h=m+d-m*d),(p=i===f?u===s?5+(f-l)/v+T:1-(f-u)/v+T:u===f?l===s?1+(f-i)/v+T:3-(f-l)/v+T:i===s?3+(f-u)/v+T:5-(f-i)/v+T)<0&&(p+=6),p>=6&&(p-=6),g=(h-(x=m+m-h))*(p-(O=p>>0)),0===O?(i=h,u=x+g,l=x):1===O?(i=h-g,u=h,l=x):2===O?(i=x,u=h,l=x+g):3===O?(i=x,u=h-g,l=h):4===O?(i=x+g,u=x,l=h):5===O&&(i=h,u=x,l=h-g),i*=255,u*=255,l*=255)),(i=i*z+U)<0&&(i=0),(u=u*z+U)<0&&(u=0),(l=l*z+U)<0&&(l=0),(c=o[e+3]+y)<0&&(c=0),i>255&&(i=255),u>255&&(u=255),l>255&&(l=255),c>255&&(c=255),n[e]=i,n[e+1]=u,n[e+2]=l,n[e+3]=c},posterize:function(o,n,t,r,a){a=defaultOptions(a,{levels:5});var e,i=t*r*4,u=clamp(a.levels,2,256),l=256/u,c=256/(u-1);for(e=0;e>0),n[e+1]=c*(o[e+1]/l>>0),n[e+2]=c*(o[e+2]/l>>0),n[e+3]=o[e+3]},removenoise:function(o,n,t,r){var a,e,i,u,l,c,f,s,v,p,d,m,h,x,g,O,M;for(e=0;e=t-1&&(p=s),a=0;a=t-1&&(h=d),x=M=o[s+m],(c=o[s+h])M&&(M=c),(c=o[v+d])M&&(M=c),(c=o[p+d])M&&(M=c),g=o[s+m+1],(c=o[s+h+1])M&&(i=M),(u=o[f+1])void 0&&(u=void 0),(l=o[f+2])void 0&&(l=void 0),n[f]=i,n[f+1]=u,n[f+2]=l,n[f+3]=o[f+3]},mosaic:function(o,n,t,r,a){a=defaultOptions(a,{blockSize:8});var e,i,u,l,c,f,s,v,p,d,m,h,x,g=clamp(a.blockSize,1,Math.max(t,r)),O=Math.ceil(r/g),M=Math.ceil(t/g);for(e=0,0,s=0;se?e:o,n]})},twirl:function(o,n,t,r,a){a=defaultOptions(a,{dx:0,dy:0,radius:0,angle:0});var e=util.radians(a.angle),i=a.radius;return polar(o,n,a.dx,a.dy,t,r,function(o,n){return[o,n+(1-smoothstep(-i,i,o))*e]})}};module.exports=process; -},{"./util":24,"stackblur":9}],24:[function(require,module,exports){ +},{"./util":25,"stackblur":9}],25:[function(require,module,exports){ "use strict";function degrees(n){return 180*n/Math.PI}function radians(n){return n/180*Math.PI}function distance(n,t,r,a){return Math.sqrt(Math.pow(r-n,2)+Math.pow(a-t,2))}function clamp(n,t,r){return Math.min(r,Math.max(t,n))}function transform(n){function t(n,t){var r=(t=t.slice())[0],a=t[1],e=(t[2],t[3]),i=t[4],o=(t[5],t[6]),u=t[7];t[8];return t[0]=n[0]*r+n[1]*e,t[1]=n[0]*a+n[1]*i,t[3]=n[3]*r+n[4]*e,t[4]=n[3]*a+n[4]*i,t[6]=n[6]*r+n[7]*e+o,t[7]=n[6]*a+n[7]*i+u,transform(t)}return n=void 0===n?[1,0,0,0,1,0,0,0,1]:n.slice(),{matrix:function(){return n.slice()},clone:function(){return transform(n)},prepend:function(r){return r.matrix&&(r=r.matrix()),t(n,r)},append:function(r){return r.matrix&&(r=r.matrix()),t(r,n)},translate:function(r,a){return t([1,0,0,0,1,0,r,a,1],n)},scale:function(r,a){return void 0===a&&(a=r),t([r,0,0,0,a,0,0,0,1],n)},skew:function(r,a){void 0===a&&(a=r);var e=Math.PI*r/180,i=Math.PI*a/180;return t([1,Math.tan(i),0,-Math.tan(e),1,0,0,0,1],n)},rotate:function(r){var a=Math.cos(radians(r)),e=Math.sin(radians(r));return t([a,e,0,-e,a,0,0,0,1],n)},transformPoint:function(t){var r=t.x,a=t.y;return{x:r*n[0]+a*n[3]+n[6],y:r*n[1]+a*n[4]+n[7]}}}}module.exports={degrees:degrees,radians:radians,distance:distance,clamp:clamp,transform:transform}; -},{}],25:[function(require,module,exports){ +},{}],26:[function(require,module,exports){ "use strict";var deepEqual=require("./deepequal"),util=require("./util"),g={combine:function(){var r,n,t=[];for(r=0;r!!r);if(0===r.length)return[];const n=[];let t=0;for(;;){for(let e=0;et))return n;n.push(u[t])}t+=1}},last:function(r){return r&&0!==r.length?r[r.length-1]:null},pick:function(r,n,t){if(!r||0===r.length||n<=0)return[];t||0===t||(t=Math.random());for(var e=util.randomGenerator(t||0),u=[],i=0;i0;t--)e=Math.floor(i(0,t+1)),u=r[t],r[t]=r[e],r[e]=u;return r},slice:function(r,n,t,e){return r?e?(u=r.slice(0,n),i=r.slice(n+t),u.push.apply(u,i),u):r.slice(n,n+t):[];var u,i},sort:function(r,n){if(!r)return[];if(n){if("string"==typeof n)return r.slice().sort(function(r,t){return r[n]>t[n]?1:r[n]===t[n]?0:-1});if("function"==typeof n)return r.slice().sort(n)}return r&&void 0!==r[0]&&null!==r[0]&&"number"==typeof r[0]?r.slice().sort(function(r,n){return r-n}):r.slice().sort()},switch:function(r){var n=arguments.length-1;return(r%=n)<0&&(r+=n),arguments[r+1]},takeEvery:function(r,n,t){if(!r)return[];var e,u=[];for(t=t||0,e=0;e1?r=arguments:1!==arguments.length||Array.isArray(r)||(r=[r]),!r||0===r.length)return[0];var n,t=[],e=0;for(n=0;n1?r=arguments:1!==arguments.length||Array.isArray(r)||(r=[r]),!r||0===r.length)return 0;var n,t=0;for(n=0;nt?t:r},g.compare=function(r,n,t){if("<"===t)return r"===t)return r>n;if("<="===t)return r<=n;if(">="===t)return r>=n;if("=="===t)return r===n;if("!="===t)return r!==n;throw new Error("Unknown comparison operation "+t)},g.cos=Math.cos,g.degrees=function(r){return 180*r/Math.PI},g.divide=function(r,n){var t=arguments.length;function e(r){if(0===r)throw new Error("Divide by zero")}if(2===t)return e(n),r/n;if(1===t)return e(r),1/r;if(0===t)throw new Error("Wrong number of arguments");return reduce([].slice.call(arguments,1),function(r,n){return e(n),r/n},arguments[0])},g.e=function(){return Math.E},g.even=function(r){return r%2==0},g.floor=Math.floor,g.integer=function(r){return 0|r},g.log=function(r){return r>0?Math.log(r):-Math.log(-r)},g.makeNumbers=function(r,n){if(!r)return[];n||(n="");var t,e,u=[],o=r.split(n);for(t=0;t0&&r>n)return[];if(t<0&&r=n;u+=t)o.push(u);else for(u=r;u>n;u+=t)o.push(u);return o},g.round=function(r,n){return(n|=0)?Math.round(r/n)*n:Math.round(r)},g.sample=function(r,n,t,e){var u,o,i=[];for(i.length=r,u=e?(t-n)/r:(t-n)/(r-1),o=0;o0?1:0===r?0:-1},g.sin=Math.sin,g.sqrt=Math.sqrt,g.subtract=function(r,n){var t=arguments.length;if(2===t)return r-n;if(1===t)return-r;if(0===t)throw new Error("Wrong number of arguments");return reduce([].slice.call(arguments,1),function(r,n){return r-n},arguments[0])},g.tan=Math.tan,g.total=function(r){if(arguments.length>1?r=arguments:1!==arguments.length||Array.isArray(r)?0===arguments.length&&(r=[]):r=[r],0===r.length)return 0;var n,t=0;for(n=0;n1?r=arguments:1!==arguments.length||Array.isArray(r)||(r=[r]),!r||0===r.length)return[0];var n,t=[],e=0;for(n=0;n1?r=arguments:1!==arguments.length||Array.isArray(r)||(r=[r]),!r||0===r.length)return 0;var n,t=0;for(n=0;nt?t:r},g.compare=function(r,n,t){if("<"===t)return r"===t)return r>n;if("<="===t)return r<=n;if(">="===t)return r>=n;if("=="===t)return r===n;if("!="===t)return r!==n;throw new Error("Unknown comparison operation "+t)},g.cos=Math.cos,g.degrees=function(r){return 180*r/Math.PI},g.divide=function(r,n){var t=arguments.length;function e(r){if(0===r)throw new Error("Divide by zero")}if(2===t)return e(n),r/n;if(1===t)return e(r),1/r;if(0===t)throw new Error("Wrong number of arguments");return reduce([].slice.call(arguments,1),function(r,n){return e(n),r/n},arguments[0])},g.e=function(){return Math.E},g.even=function(r){return r%2==0},g.floor=Math.floor,g.integer=function(r){return 0|r},g.log=function(r){return r>0?Math.log(r):-Math.log(-r)},g.makeNumbers=function(r,n){if(!r)return[];n||(n="");var t,e,u=[],o=r.split(n);for(t=0;t0&&r>n)return[];if(t<0&&r=n;u+=t)o.push(u);else for(u=r;u>n;u+=t)o.push(u);return o},g.round=function(r,n){return(n|=0)?Math.round(r/n)*n:Math.round(r)},g.sample=function(r,n,t,e){var u,o,i=[];for(i.length=r,u=e?(t-n)/r:(t-n)/(r-1),o=0;o0?1:0===r?0:-1},g.sin=Math.sin,g.sqrt=Math.sqrt,g.subtract=function(r,n){var t=arguments.length;if(2===t)return r-n;if(1===t)return-r;if(0===t)throw new Error("Wrong number of arguments");return reduce([].slice.call(arguments,1),function(r,n){return r-n},arguments[0])},g.tan=Math.tan,g.total=function(r){if(arguments.length>1?r=arguments:1!==arguments.length||Array.isArray(r)?0===arguments.length&&(r=[]):r=[r],0===r.length)return 0;var n,t=0;for(n=0;n\n"}return t&&(l='\n'+l+"\n"),l}};module.exports=vg; -},{"../objects/color":32}],30:[function(require,module,exports){ +},{"../objects/color":33}],31:[function(require,module,exports){ "use strict";var flatten=require("lodash.flatten"),ClipperLib=require("../../../../third_party/clipper"),bezier=require("../util/bezier"),geo=require("../util/geo"),math=require("../util/math"),random=require("../util/random"),Color=require("../objects/color"),Group=require("../objects/group"),Path=require("../objects/path"),Point=require("../objects/point"),Rect=require("../objects/rect"),Transform=require("../objects/transform"),Transformable=require("../objects/transformable");function _cloneCommand(e){var n={type:e.type};return n.type!==bezier.CLOSE&&(n.x=e.x,n.y=e.y),n.type===bezier.QUADTO?(n.x1=e.x1,n.y1=e.y1):n.type===bezier.CURVETO&&(n.x1=e.x1,n.y1=e.y1,n.x2=e.x2,n.y2=e.y2),n}var vg={HORIZONTAL:"horizontal",VERTICAL:"vertical",EAST:"e",WEST:"w",NORTH:"n",SOUTH:"s",bounds:function(e){var n,r,t;if(e){if("function"==typeof e.bounds)return e.bounds();if(void 0!==e.x&&void 0!==e.y)return void 0!==e.width&&void 0!==e.height?new Rect(e.x,e.y,e.width,e.height):new Rect(e.x,e.y,0,0);if(void 0!==e.r&&void 0!==e.g&&void 0!==e.b)return new vg.Rect(0,0,30,30);if(Array.isArray(e)){if(n=null,(t=e.length)>0&&void 0!==e[0].r&&void 0!==e[0].g&&void 0!==e[0].b)return new Rect(0,0,30*e.length,30);for(r=0;r0&&void 0!==e[0].x&&void 0!==e[0].y?h=h.concat(s.transformShape(e)):h.push(s.transformShape(e)),g+=t.x,p+=t.y,f+=o,v+=i.x,c+=i.y}return h},vg.fit=function(e,n,r,t,o){if(!e)return null;o=void 0!==o&&o;var i,a,s,u=vg.bounds(e),l=u.x,h=u.y,g=u.width,p=u.height;return g=g>1e-12?g:0,p=p>1e-12?p:0,i=(i=new Transform).translate(n.x,n.y),o?(a=g>0?r/g:1,s=p>0?t/p:1):(a=g>0?r/g:Number.MAX_VALUE,s=p>0?t/p:Number.MAX_VALUE,a=s=Math.min(a,s)),(i=(i=i.scale(a,s)).translate(-g/2-l,-p/2-h)).transformShape(e)},vg.fitTo=function(e,n,r){if(!e)return null;if(!n)return e;var t=vg.bounds(n),o=t.x,i=t.y,a=t.width,s=t.height;return vg.fit(e,{x:o+a/2,y:i+s/2},a,s,r)},vg.mirror=function(e,n,r,t){if(!e)return null;var o=new Transform,i=(o=(o=(o=(o=o.translate(r.x,r.y)).rotate(2*n-180)).scale(-1,1)).translate(-r.x,-r.y)).transformShape(e);return t?Array.isArray(e)&&e.length>0?e.concat(i):new Group([e,i]):i},vg.pathLength=function(e,n){if(!e)return 0;var r=20;return n&&n.precision&&(r=n.precision),e.length(r)},vg.resampleByLength=function(e,n){return e?e.resampleByLength(n):null},vg.resampleByAmount=function(e,n,r){return e?e.resampleByAmount(n,r):null},vg._wigglePoints=function(e,n,r){var t,o,i;if(e.commands){var a=new Path([],e.fill,e.stroke,e.strokeWidth);for(t=0;t0&&void 0!==e[0].x&&void 0!==e[0].y){var l=[];for(l.length=e.length,t=0;t0;){for(u=0,l=f+g(0,1)*c,h=v+g(0,1)*y,o=0;o0&&void 0!==e[0].x&&void 0!==e[0].y){var v,c=[];for(c.length=e.length,o=0;o0&&void 0!==e[0].x&&void 0!==e[0].y){for(t=0;to?1:0}),o},vg.group=function(){return new Group(flatten(arguments))},vg.ungroup=function(e){if(e){if(e.shapes){var n,r,t=[];for(n=0;n1?(a=t*(e-1),i=o.x-a/2):i=o.x,n>1?(l=r*(n-1),u=o.y-l/2):u=o.y,P=0,d=0;d=1?color.rgb2hex(this.r,this.g,this.b):color.rgba2hex(this.r,this.g,this.b,this.a)},Color.prototype.desaturate=function(r){if(this.r===this.g&&this.g===this.b)return this;var o,t,e;void 0!==r&&r.method&&"ITU-R BT.601"!==r.method?"ITU-R BT.709"===r.method&&(o=.2125,t=.7154,e=.0721):(o=.3,t=.59,e=.11);var n=this.r*o+this.g*t+this.b*e;return new Color(n,n,n,this.a)},Color.prototype.invert=function(){return new Color(1-this.r,1-this.g,1-this.b,this.a)},Color.clone=function(r){return null===r||void 0===r?null:"string"==typeof r?r:new Color(r.r,r.g,r.b,r.a)},Color.toCSS=function(r){if(null===r)return"none";if(void 0===r)return"black";if("string"==typeof r)return r;if(r instanceof Color){return"rgba("+Math.round(255*r.r)+", "+Math.round(255*r.g)+", "+Math.round(255*r.b)+", "+r.a+")"}if(void 0!==r.r&&void 0!==r.g&&void 0!==r.b){let o=Math.round(255*r.r),t=Math.round(255*r.g),e=Math.round(255*r.b);return void 0===r.a?"rgb("+o+", "+t+", "+e+")":"rgba("+o+", "+t+", "+e+", "+r.a+")"}throw new Error("Don't know how to convert "+r+" to CSS.")},Color.toHex=function(r,o){return Color.parse(r,o).toHex()},Color.make=function(){var r=Object.create(Color.prototype);return r.constructor=Color.prototype,Color.apply(r,arguments),r},Color.parse=function(r){function o(r,o){return!(!r||!o)&&0===(r=String(r)).indexOf(o)}var t;if(void 0===r||null===r)return new Color(0,0,0,0);if(r instanceof Color)return r;if(color.namedColors[r])return Color.make.apply(null,color.namedColors[r]);if("#"===r[0])return new Color(r,0,0,0,{mode:HEX});if(o(r,"rgba"))return(t=r.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+|\d+.\d+)\s*\)$/i))?new Color(parseInt(t[1])/255,parseInt(t[2])/255,parseInt(t[3])/255,parseFloat(t[4])):(t=r.match(/^rgba\s*\(\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)\s*\)$/i))?new Color(parseFloat(t[1])/100,parseFloat(t[2])/100,parseFloat(t[3])/100,parseFloat(t[4])):new Color(0,0,0,0);if(o(r,"rgb"))return(t=r.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i))?new Color(parseInt(t[1])/255,parseInt(t[2])/255,parseInt(t[3])/255):(t=r.match(/^rgb\s*\(\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*\)$/i))?new Color(parseFloat(t[1])/100,parseFloat(t[2])/100,parseFloat(t[3])/100):new Color(0,0,0,0);if(o(r,"hsla"))return(t=r.match(/^hsla\s*\(\s*(\d+|\d+.\d+)\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)\s*\)$/i))?new Color(parseFloat(t[1])/360,parseFloat(t[2])/100,parseFloat(t[3])/100,parseFloat(t[4])):new Color(0,0,0,0);if(o(r,"hsl"))return(t=r.match(/^hsl\s*\(\s*(\d+|\d+.\d+)\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*\)$/i))?new Color(parseFloat(t[1])/360,parseFloat(t[2])/100,parseFloat(t[3])/100):new Color(0,0,0,0);if("none"===r||"null"===r||o(r,"url("))return new Color(0,0,0,0);throw new Error("Color "+r+"can not be parsed")},Color.gray=function(r,o,t){return t=Math.max(t,1),new Color(r/t,r/t,r/t,o/t)},Color.rgb=function(r,o,t,e,n){return n=Math.max(n,1),new Color(r/n,o/n,t/n,e/n)},Color.hsb=function(r,o,t,e,n){return n=Math.max(n,1),new Color(r/n,o/n,t/n,e/n,{mode:HSB})},Color.hsl=function(r,o,t,e,n){return n=Math.max(n,1),new Color(r/n,o/n,t/n,e/n,{mode:HSL})},module.exports=Color; +},{"../objects/color":33,"../objects/path":36,"../objects/point":37,"../objects/text":39,"../util/geo":45}],33:[function(require,module,exports){ +"use strict";var math=require("../util/math"),color=require("../util/color"),js=require("../util/js"),HSB="HSB",HSL="HSL",HEX="HEX",Color=function(r,o,t,e,n){var s,l,i,a,h,d;void 0===r?(s=l=i=0,a=1):Array.isArray(r)?(d=o||{},s=void 0!==r[0]?r[0]:0,l=void 0!==r[1]?r[1]:0,i=void 0!==r[2]?r[2]:0,a=void 0!==r[3]?r[3]:d.range||1):void 0!==r.r?(d=o||{},s=r.r,l=r.g,i=r.b,a=void 0!==r.a?r.a:d.range||1):"string"==typeof r?(s=(h=color.hex2rgb(r))[0],l=h[1],i=h[2],a=1):"number"==typeof r&&(1===arguments.length?(s=l=i=r,a=1):2===arguments.length?(s=l=i=r,a="number"==typeof o?o:(d=o).range||1):3===arguments.length?"number"==typeof t?(s=r,l=o,i=t,a=1):(s=l=i=r,a=o,d=t):4===arguments.length?(s=r,l=o,i=t,a="number"==typeof e?e:(d=e).range||1):(s=r,l=o,i=t,a=e,d=n)),void 0!==(d=d||{}).range&&(s/=d.range,l/=d.range,i/=d.range,a/=d.range,d.mode===HSB&&(r/=d.range,o/=d.range,t/=d.range)),d.mode===HSB?(r=math.clamp(r,0,1),o=math.clamp(o,0,1),t=math.clamp(t,0,1),s=(h=color.hsb2rgb(r,o,t))[0],l=h[1],i=h[2]):d.mode===HSL?(r=math.clamp(r,0,1),o=math.clamp(o,0,1),t=math.clamp(t,0,1),s=(h=color.hsl2rgb(r,o,t))[0],l=h[1],i=h[2]):d.mode===HEX&&(s=(h=color.hex2rgb(r))[0],l=h[1],i=h[2],a=1),this.r=math.clamp(s,0,1),this.g=math.clamp(l,0,1),this.b=math.clamp(i,0,1),this.a=math.clamp(a,0,1)};Color.BLACK=new Color(0),Color.WHITE=new Color(1),js.defineAlias(Color,"r","red"),js.defineAlias(Color,"g","green"),js.defineAlias(Color,"b","blue"),js.defineAlias(Color,"a","alpha"),js.defineGetter(Color,"h",function(){return color.rgb2hsl(this.r,this.g,this.b)[0]}),js.defineGetter(Color,"s",function(){return color.rgb2hsl(this.r,this.g,this.b)[1]}),js.defineGetter(Color,"l",function(){return color.rgb2hsl(this.r,this.g,this.b)[2]}),js.defineAlias(Color,"h","hue"),js.defineAlias(Color,"s","saturation"),js.defineAlias(Color,"l","lightness"),js.defineGetter(Color,"rgb",function(){return[this.r,this.g,this.b]}),js.defineGetter(Color,"rgba",function(){return[this.r,this.g,this.b,this.a]}),js.defineGetter(Color,"hsb",function(){return color.rgb2hsb(this.r,this.g,this.b)}),js.defineGetter(Color,"hsba",function(){return color.rgb2hsb(this.r,this.g,this.b).concat([this.a])}),js.defineGetter(Color,"hsl",function(){return color.rgb2hsl(this.r,this.g,this.b)}),js.defineGetter(Color,"hsla",function(){return color.rgb2hsl(this.r,this.g,this.b).concat([this.a])}),Color.prototype.toCSS=function(){return Color.toCSS(this)},Color.prototype.toHex=function(r){return r||this.a>=1?color.rgb2hex(this.r,this.g,this.b):color.rgba2hex(this.r,this.g,this.b,this.a)},Color.prototype.desaturate=function(r){if(this.r===this.g&&this.g===this.b)return this;var o,t,e;void 0!==r&&r.method&&"ITU-R BT.601"!==r.method?"ITU-R BT.709"===r.method&&(o=.2125,t=.7154,e=.0721):(o=.3,t=.59,e=.11);var n=this.r*o+this.g*t+this.b*e;return new Color(n,n,n,this.a)},Color.prototype.invert=function(){return new Color(1-this.r,1-this.g,1-this.b,this.a)},Color.clone=function(r){return null==r?null:"string"==typeof r?r:new Color(r.r,r.g,r.b,r.a)},Color.toCSS=function(r){if(null===r)return"none";if(void 0===r)return"black";if("string"==typeof r)return r;if(r instanceof Color){return"rgba("+Math.round(255*r.r)+", "+Math.round(255*r.g)+", "+Math.round(255*r.b)+", "+r.a+")"}if(void 0!==r.r&&void 0!==r.g&&void 0!==r.b){let o=Math.round(255*r.r),t=Math.round(255*r.g),e=Math.round(255*r.b);return void 0===r.a?"rgb("+o+", "+t+", "+e+")":"rgba("+o+", "+t+", "+e+", "+r.a+")"}throw new Error("Don't know how to convert "+r+" to CSS.")},Color.toHex=function(r,o){return Color.parse(r,o).toHex()},Color.make=function(){var r=Object.create(Color.prototype);return r.constructor=Color.prototype,Color.apply(r,arguments),r},Color.parse=function(r){function o(r,o){return!(!r||!o)&&0===(r=String(r)).indexOf(o)}var t;if(null==r)return new Color(0,0,0,0);if(r instanceof Color)return r;if(color.namedColors[r])return Color.make.apply(null,color.namedColors[r]);if("#"===r[0])return new Color(r,0,0,0,{mode:HEX});if(o(r,"rgba"))return(t=r.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+|\d+.\d+)\s*\)$/i))?new Color(parseInt(t[1])/255,parseInt(t[2])/255,parseInt(t[3])/255,parseFloat(t[4])):(t=r.match(/^rgba\s*\(\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)\s*\)$/i))?new Color(parseFloat(t[1])/100,parseFloat(t[2])/100,parseFloat(t[3])/100,parseFloat(t[4])):new Color(0,0,0,0);if(o(r,"rgb"))return(t=r.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i))?new Color(parseInt(t[1])/255,parseInt(t[2])/255,parseInt(t[3])/255):(t=r.match(/^rgb\s*\(\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*\)$/i))?new Color(parseFloat(t[1])/100,parseFloat(t[2])/100,parseFloat(t[3])/100):new Color(0,0,0,0);if(o(r,"hsla"))return(t=r.match(/^hsla\s*\(\s*(\d+|\d+.\d+)\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)\s*\)$/i))?new Color(parseFloat(t[1])/360,parseFloat(t[2])/100,parseFloat(t[3])/100,parseFloat(t[4])):new Color(0,0,0,0);if(o(r,"hsl"))return(t=r.match(/^hsl\s*\(\s*(\d+|\d+.\d+)\s*,\s*(\d+|\d+.\d+)%\s*,\s*(\d+|\d+.\d+)%\s*\)$/i))?new Color(parseFloat(t[1])/360,parseFloat(t[2])/100,parseFloat(t[3])/100):new Color(0,0,0,0);if("none"===r||"null"===r||o(r,"url("))return new Color(0,0,0,0);throw new Error("Color "+r+"can not be parsed")},Color.gray=function(r,o,t){return t=Math.max(t,1),new Color(r/t,r/t,r/t,o/t)},Color.rgb=function(r,o,t,e,n){return n=Math.max(n,1),new Color(r/n,o/n,t/n,e/n)},Color.hsb=function(r,o,t,e,n){return n=Math.max(n,1),new Color(r/n,o/n,t/n,e/n,{mode:HSB})},Color.hsl=function(r,o,t,e,n){return n=Math.max(n,1),new Color(r/n,o/n,t/n,e/n,{mode:HSL})},module.exports=Color; -},{"../util/color":43,"../util/js":45,"../util/math":46}],33:[function(require,module,exports){ +},{"../util/color":44,"../util/js":46,"../util/math":47}],34:[function(require,module,exports){ "use strict";var Path=require("../objects/path"),Rect=require("../objects/rect"),Color=require("../objects/color"),Group=function(t){t?t.shapes||t.commands?this.shapes=[t]:t&&(this.shapes=t):this.shapes=[]};Group.prototype.add=function(t){this.shapes.push(t)},Group.prototype.clone=function(){var t,e=[],s=this.shapes.length;for(e.length=s,t=0;t"+t.join("")+""},Group.prototype.draw=function(t){var e,s=this.shapes,r=s.length;for(e=0;e=360||c<=-360?(p=4,d=Math.PI/2,u=.5522847498307933,c<0&&(d=-d,u=-u)):(p=Math.ceil(Math.abs(c)/90),d=math.radians(c/p),0===(u=4/3*Math.sin(d/2)/(1+Math.cos(d/2)))&&(p=0)),"open"===n?m=0:"chord"===n?m=1:"pie"===n&&(m=2),(h<0||a<0)&&(p=m=-1),y=0;y<=p+m;)f=l,0===y?this.moveTo(t+Math.cos(f)*h,o+Math.sin(f)*a):y>p?y===p+m?this.close():this.lineTo(t,o):(f+=d*(y-1),v=Math.cos(f),T=Math.sin(f),(C=[]).push(t+(v-u*T)*h),C.push(o+(T+u*v)*a),f+=d,v=Math.cos(f),T=Math.sin(f),C.push(t+(v+u*T)*h),C.push(o+(T-u*v)*a),C.push(t+v*h),C.push(o+T*a),Path.prototype.curveTo.apply(this,C)),y+=1},Path.prototype.colorize=function(t){var o=arguments;("object"!=typeof t||t instanceof Color)&&(t={},void 0!==o[0]&&(t.fill=o[0]),void 0!==o[1]&&(t.stroke=o[1]),void 0!==o[2]&&(t.strokeWidth=o[2]));var e=this.clone();return t.fill&&(e.fill=Color.clone(t.fill)),t.stroke&&(e.stroke=Color.clone(t.stroke)),(t.strokeWidth||0===t.strokeWidth)&&(e.strokeWidth=t.strokeWidth),e},Path.prototype.desaturate=function(t){var o=this.clone(),e=o.fill,i=o.stroke;return e instanceof Color||(e=Color.parse(e)),i instanceof Color||(i=Color.parse(i)),o.fill=e.desaturate(t),o.stroke=i.desaturate(t),o},Path.prototype.invert=function(){var t=this.clone(),o=t.fill,e=t.stroke;return o instanceof Color||(o=Color.parse(o)),e instanceof Color||(e=Color.parse(e)),t.fill=o.invert(),t.stroke=e.invert(),t},Path.prototype.contours=function(){for(var t,o=[],e=[],i=0;ia&&(a=t),o>l&&(l=o),e=r;else if(r.type===CURVETO){var p=bezier.extrema(e.x,e.y,r.x1,r.y1,r.x2,r.y2,r.x,r.y);i=p.x+p.width,s=p.y+p.height,p.xa&&(a=i),p.yl&&(l=s),e=r}return new Rect(n,h,a-n,l-h)},Path.prototype.point=function(t,o){return void 0===o&&(o=bezier.segmentLengths(this.commands,!0,10)),bezier.point(this,t,o)},Path.prototype.points=function(t,o){var e,i=o&&void 0!==o.start?o.start:0,s=o&&void 0!==o.end?o.end:1;if(0===this.commands.length)return[];t=Math.round(t),e=o&&o.closed?t>1?(s-i)/t:s-i:t>1?(s-i)/(t-1):s-i;for(var r=[],n=bezier.segmentLengths(this.commands,!0,10),h=0;h0&&(t.strokeStyle=Color.toCSS(this.stroke),t.lineWidth=this.strokeWidth,t.stroke())},Path.combine=function(){for(var t,o=Array.apply(null,arguments),e=flatten(o),i=[],s=0;s=360||c<=-360?(p=4,d=Math.PI/2,u=.5522847498307933,c<0&&(d=-d,u=-u)):(p=Math.ceil(Math.abs(c)/90),d=math.radians(c/p),0===(u=4/3*Math.sin(d/2)/(1+Math.cos(d/2)))&&(p=0)),"open"===n?m=0:"chord"===n?m=1:"pie"===n&&(m=2),(h<0||a<0)&&(p=m=-1),y=0;y<=p+m;)f=l,0===y?this.moveTo(t+Math.cos(f)*h,o+Math.sin(f)*a):y>p?y===p+m?this.close():this.lineTo(t,o):(f+=d*(y-1),v=Math.cos(f),T=Math.sin(f),(C=[]).push(t+(v-u*T)*h),C.push(o+(T+u*v)*a),f+=d,v=Math.cos(f),T=Math.sin(f),C.push(t+(v+u*T)*h),C.push(o+(T-u*v)*a),C.push(t+v*h),C.push(o+T*a),Path.prototype.curveTo.apply(this,C)),y+=1},Path.prototype.colorize=function(t){var o=arguments;("object"!=typeof t||t instanceof Color)&&(t={},void 0!==o[0]&&(t.fill=o[0]),void 0!==o[1]&&(t.stroke=o[1]),void 0!==o[2]&&(t.strokeWidth=o[2]));var e=this.clone();return t.fill&&(e.fill=Color.clone(t.fill)),t.stroke&&(e.stroke=Color.clone(t.stroke)),(t.strokeWidth||0===t.strokeWidth)&&(e.strokeWidth=t.strokeWidth),e},Path.prototype.desaturate=function(t){var o=this.clone(),e=o.fill,i=o.stroke;return e instanceof Color||(e=Color.parse(e)),i instanceof Color||(i=Color.parse(i)),o.fill=e.desaturate(t),o.stroke=i.desaturate(t),o},Path.prototype.invert=function(){var t=this.clone(),o=t.fill,e=t.stroke;return o instanceof Color||(o=Color.parse(o)),e instanceof Color||(e=Color.parse(e)),t.fill=o.invert(),t.stroke=e.invert(),t},Path.prototype.contours=function(){for(var t,o=[],e=[],i=0;ia&&(a=t),o>l&&(l=o),e=r;else if(r.type===CURVETO){var p=bezier.extrema(e.x,e.y,r.x1,r.y1,r.x2,r.y2,r.x,r.y);i=p.x+p.width,s=p.y+p.height,p.xa&&(a=i),p.yl&&(l=s),e=r}return new Rect(n,h,a-n,l-h)},Path.prototype.point=function(t,o){return void 0===o&&(o=bezier.segmentLengths(this.commands,!0,10)),bezier.point(this,t,o)},Path.prototype.points=function(t,o){var e,i=o&&void 0!==o.start?o.start:0,s=o&&void 0!==o.end?o.end:1;if(0===this.commands.length)return[];t=Math.round(t),e=o&&o.closed?t>1?(s-i)/t:s-i:t>1?(s-i)/(t-1):s-i;for(var r=[],n=bezier.segmentLengths(this.commands,!0,10),h=0;h0&&(t.strokeStyle=Color.toCSS(this.stroke),t.lineWidth=this.strokeWidth,t.stroke())},Path.combine=function(){for(var t,o=Array.apply(null,arguments),e=flatten(o),i=[],s=0;s1?i[1]:t,new Point(t,n)):void 0!==i.x&&void 0!==i.y?new Point(i.x,i.y):Point.ZERO},Point.prototype.clone=function(){return new Point(this.x,this.y)},Point.prototype.add=function(t){return new Point(this.x+t.x,this.y+t.y)},Point.prototype.subtract=Point.prototype.sub=function(t){return new Point(this.x-t.x,this.y-t.y)},Point.prototype.divide=function(t){return new Point(this.x/t,this.y/t)},Point.prototype.multiply=function(t){return new Point(this.x*t,this.y*t)},Point.prototype.magnitude=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},Point.prototype.magnitudeSquared=function(){return this.x*this.x+this.y*this.y},Point.prototype.heading=function(){return Math.atan2(this.y,this.x)},Point.prototype.distanceTo=function(t){var n=this.x-t.x,i=this.y-t.y;return Math.sqrt(n*n+i*i)},Point.prototype.normalize=function(){var t=this.magnitude();return 0!==t?this.divide(t):Point.ZERO},Point.prototype.limit=function(t){return this.magnitudeSquared()>t*t?this.normalize().multiply(t):this},Point.prototype.translate=function(t,n){return new Point(this.x+t,this.y+n)},Point.prototype.scale=function(t,n){return n=void 0!==n?n:t,new Point(this.x*t,this.y*n)},Point.prototype.toString=function(){return"["+this.x+", "+this.y+"]"},module.exports=Point; -},{}],37:[function(require,module,exports){ +},{}],38:[function(require,module,exports){ "use strict";var Point=require("../objects/point"),Rect=function(t,i,h,e){this.x=void 0!==t?t:0,this.y=void 0!==i?i:0,this.width=void 0!==h?h:0,this.height=void 0!==e?e:0};Object.defineProperty(Rect.prototype,"xywh",{get:function(){return[this.x,this.y,this.width,this.height]}}),Rect.prototype.normalize=function(){var t=this.x,i=this.y,h=this.width,e=this.height;return h<0&&(t+=h,h=-h),e<0&&(i+=e,e=-e),new Rect(t,i,h,e)},Rect.prototype.containsPoint=function(t,i){return 1===arguments.length&&(i=t.y,t=t.x),t>=this.x&&t<=this.x+this.width&&i>=this.y&&i<=this.y+this.height},Rect.prototype.containsRect=function(t){return t.x>=this.x&&t.x+t.width<=this.x+this.width&&t.y>=this.y&&t.y+t.height<=this.y+this.height},Rect.prototype.grow=function(t,i){var h=this.x-t,e=this.y-i,s=this.width+2*t,n=this.height+2*i;return new Rect(h,e,s,n)},Rect.prototype.unite=function(t){var i=Math.min(this.x,t.x),h=Math.min(this.y,t.y),e=Math.max(this.x+this.width,t.x+t.width)-i,s=Math.max(this.y+this.height,t.y+t.height)-h;return new Rect(i,h,e,s)},Rect.prototype.addPoint=function(t,i){var h=this.x,e=this.y,s=this.width,n=this.height;return tthis.x+this.width&&(s+=t-(this.x+this.width)),ithis.y+this.height&&(n+=i-(this.y+this.height)),new Rect(h,e,s,n)},Rect.prototype.centerPoint=function(){return new Point(this.x+this.width/2,this.y+this.height/2)},module.exports=Rect; -},{"../objects/point":36}],38:[function(require,module,exports){ +},{"../objects/point":37}],39:[function(require,module,exports){ "use strict";var Color=require("../objects/color"),Rect=require("../objects/rect"),Transform=require("../objects/transform"),_dummyContext=null,GText=function(t){var e,i=Array.prototype.slice.call(arguments,1),n=arguments[1],o=arguments[2],s=arguments[arguments.length-1];this.text=String(t),"number"==typeof n?(this._x=n,this._y=o,i=i.slice(2)):Array.isArray(n)?(this._x=n[0],this._y=n[1],i=i.slice(1)):"object"==typeof n?(this._x=void 0!==n.x?n.x:0,this._y=void 0!==n.y?n.y:0,i=i.slice(1)):(this._x=0,this._y=0),"object"==typeof s?(e=s,n!==s&&(i=i.slice(0,i.length-1))):e={},i.length?this.fontFamily=i.shift():this.fontFamily=e.fontFamily||e.fontName||e.font||"sans-serif",i.length?this.fontSize=i.shift():this.fontSize=e.fontSize||24,i.length?this.textAlign=i.shift():this.textAlign=e.align||e.textAlign||"left",i.length?this.fill=i.shift():this.fill=e.fill||"black",this.transform=new Transform};GText.prototype.clone=function(){var t=new GText;return t.text=this.text,t._x=this._x,t._y=this._y,t.fontFamily=this.fontFamily,t.fontSize=this.fontSize,t.textAlign=this.textAlign,t.fill=Color.clone(this.fill),t.transform=this.transform,t},GText._getDummyContext=function(){return _dummyContext||(_dummyContext="undefined"!=typeof document?document.createElement("canvas").getContext("2d"):{font:"10px sans-serif",measureText:function(t){var e=parseFloat(this.font);return{width:t.length*e*.6}}}),_dummyContext},GText.prototype._getFont=function(){return this.fontSize+"px "+this.fontFamily},GText.prototype.colorize=function(t){var e=this.clone();return e.fill=Color.clone(t),e},GText.prototype.draw=function(t){t.save(),t.font=this._getFont(),t.textAlign=this.textAlign;var e=this.transform.m;t.transform(e[0],e[1],e[2],e[3],e[4],e[5]),t.fillStyle=Color.toCSS(this.fill),t.fillText(this.text,this._x,this._y),t.restore()},GText.prototype.bounds=function(){var t,e=GText._getDummyContext(),i=this._x;return e.font=this._getFont(),t=e.measureText(this.text),"center"===this.textAlign?i=this._x-t.width/2:"right"===this.textAlign&&(i=this._x-t.width),new Rect(i,this._y-this.fontSize,t.width,1.2*this.fontSize)},GText.prototype.toSVG=function(){var t,e=""},module.exports=GText; -},{"../objects/color":32,"../objects/rect":37,"../objects/transform":39}],39:[function(require,module,exports){ +},{"../objects/color":33,"../objects/rect":38,"../objects/transform":40}],40:[function(require,module,exports){ "use strict";var bezier=require("../util/bezier"),math=require("../util/math"),Group=require("../objects/group"),Path=require("../objects/path"),Point=require("../objects/point"),MOVETO=bezier.MOVETO,LINETO=bezier.LINETO,QUADTO=bezier.QUADTO,CURVETO=bezier.CURVETO,CLOSE=bezier.CLOSE,Transform=function(r){this.m=void 0!==r?r:[1,0,0,1,0,0]};Transform.IDENTITY=new Transform,Transform.identity=function(){return new Transform},Transform._mmult=function(r,t){return void 0!==r.m&&(r=r.m),void 0!==t.m&&(t=t.m),new Transform([r[0]*t[0]+r[1]*t[2],r[0]*t[1]+r[1]*t[3],r[2]*t[0]+r[3]*t[2],r[2]*t[1]+r[3]*t[3],r[4]*t[0]+r[5]*t[2]+t[4],r[4]*t[1]+r[5]*t[3]+t[5]])},Transform.prototype.isIdentity=function(){var r=this.m;return 1===r[0]&&0===r[1]&&0===r[2]&&1===r[3]&&0===r[4]&&0===r[5]},Transform.prototype.prepend=function(r){return Transform._mmult(this.m,r.m)},Transform.prototype.append=function(r){return Transform._mmult(r.m,this.m)},Transform.prototype.inverse=function(){var r=this.m,t=r[0]*r[3]-r[1]*r[2];return new Transform([r[3]/t,-r[1]/t,-r[2]/t,r[0]/t,(r[2]*r[5]-r[3]*r[4])/t,-(r[0]*r[5]-r[1]*r[4])/t])},Transform.prototype.scale=function(r,t){return void 0===t&&(t=r),Transform._mmult([r,0,0,t,0,0],this.m)},Transform.prototype.translate=function(r,t){return Transform._mmult([1,0,0,1,r,t],this.m)},Transform.prototype.rotate=function(r){var t=Math.cos(math.radians(r)),n=Math.sin(math.radians(r));return Transform._mmult([t,n,-n,t,0,0],this.m)},Transform.prototype.skew=function(r,t){var n=Math.PI*r/180,o=Math.PI*t/180;return Transform._mmult([1,Math.tan(o),-Math.tan(n),1,0,0],this.m)},Transform.prototype.transformPoint=function(r){var t=r.x,n=r.y,o=this.m;return new Point(t*o[0]+n*o[2]+o[4],t*o[1]+n*o[3]+o[5])},Transform.prototype.transformPoints=function(r){for(var t=[],n=0;n0))throw new Error("Don't know how to transform "+r);if(void 0===r[0].x||void 0===r[0].y){for(var n=[],o=0;o0)for(n=0;n=0&&z<=1){var b=pointAt(e,t,r,n,i,o,a,u,z);b.xs&&(s=b.x),b.yc&&(c=b.y)}}return e=0&&(l((-b+(O=Math.sqrt(M)))*(v=1/(2*z))),l((-b-O)*v)),x=6*(t-2*n+o),p=3*(-t+n),fuzzyCompare((f=3*(3*n-t-3*o+u))+1,1)?fuzzyCompare(x+1,1)||l(-p/x):(g=x*x-4*f*p)>0&&(l((-x+(O=Math.sqrt(g)))*(v=1/(2*f))),l((-x-O)*v)),new Rect(h,y,s-h,c-y)},module.exports=bezier; -},{"../objects/point":36,"../objects/rect":37,"../util/math":46}],43:[function(require,module,exports){ +},{"../objects/point":37,"../objects/rect":38,"../util/math":47}],44:[function(require,module,exports){ "use strict";var color={};function toHex(e){var r;return 0===e?"00":((r=e.toString(16).toUpperCase()).length<2&&(r="0"+r),r)}color.namedColors={lightpink:[1,.71,.76],pink:[1,.75,.8],crimson:[.86,.08,.24],lavenderblush:[1,.94,.96],palevioletred:[.86,.44,.58],hotpink:[1,.41,.71],deeppink:[1,.08,.58],mediumvioletred:[.78,.08,.52],orchid:[.85,.44,.84],thistle:[.85,.75,.85],plum:[.87,.63,.87],violet:[.93,.51,.93],fuchsia:[1,0,1],darkmagenta:[.55,0,.55],purple:[.5,0,.5],mediumorchid:[.73,.33,.83],darkviolet:[.58,0,.83],darkorchid:[.6,.2,.8],indigo:[.29,0,.51],blueviolet:[.54,.17,.89],mediumpurple:[.58,.44,.86],mediumslateblue:[.48,.41,.93],slateblue:[.42,.35,.8],darkslateblue:[.28,.24,.55],ghostwhite:[.97,.97,1],lavender:[.9,.9,.98],blue:[0,0,1],mediumblue:[0,0,.8],darkblue:[0,0,.55],navy:[0,0,.5],midnightblue:[.1,.1,.44],royalblue:[.25,.41,.88],cornflowerblue:[.39,.58,.93],lightsteelblue:[.69,.77,.87],lightslategray:[.47,.53,.6],slategray:[.44,.5,.56],dodgerblue:[.12,.56,1],aliceblue:[.94,.97,1],steelblue:[.27,.51,.71],lightskyblue:[.53,.81,.98],skyblue:[.53,.81,.92],deepskyblue:[0,.75,1],lightblue:[.68,.85,.9],powderblue:[.69,.88,.9],cadetblue:[.37,.62,.63],darkturquoise:[0,.81,.82],azure:[.94,1,1],lightcyan:[.88,1,1],paleturquoise:[.69,.93,.93],aqua:[0,1,1],darkcyan:[0,.55,.55],teal:[0,.5,.5],darkslategray:[.18,.31,.31],mediumturquoise:[.28,.82,.8],lightseagreen:[.13,.7,.67],turquoise:[.25,.88,.82],aquamarine:[.5,1,.83],mediumaquamarine:[.4,.8,.67],mediumspringgreen:[0,.98,.6],mintcream:[.96,1,.98],springgreen:[0,1,.5],mediumseagreen:[.24,.7,.44],seagreen:[.18,.55,.34],honeydew:[.94,1,.94],darkseagreen:[.56,.74,.56],palegreen:[.6,.98,.6],lightgreen:[.56,.93,.56],limegreen:[.2,.8,.2],lime:[0,1,0],forestgreen:[.13,.55,.13],green:[0,.5,0],darkgreen:[0,.39,0],lawngreen:[.49,.99,0],chartreuse:[.5,1,0],greenyellow:[.68,1,.18],darkolivegreen:[.33,.42,.18],yellowgreen:[.6,.8,.2],olivedrab:[.42,.56,.14],ivory:[1,1,.94],beige:[.96,.96,.86],lightyellow:[1,1,.88],lightgoldenrodyellow:[.98,.98,.82],yellow:[1,1,0],olive:[.5,.5,0],darkkhaki:[.74,.72,.42],palegoldenrod:[.93,.91,.67],lemonchiffon:[1,.98,.8],khaki:[.94,.9,.55],gold:[1,.84,0],cornsilk:[1,.97,.86],goldenrod:[.85,.65,.13],darkgoldenrod:[.72,.53,.04],floralwhite:[1,.98,.94],oldlace:[.99,.96,.9],wheat:[.96,.87,.07],orange:[1,.65,0],moccasin:[1,.89,.71],papayawhip:[1,.94,.84],blanchedalmond:[1,.92,.8],navajowhite:[1,.87,.68],antiquewhite:[.98,.92,.84],tan:[.82,.71,.55],burlywood:[.87,.72,.53],darkorange:[1,.55,0],bisque:[1,.89,.77],linen:[.98,.94,.9],peru:[.8,.52,.25],peachpuff:[1,.85,.73],sandybrown:[.96,.64,.38],chocolate:[.82,.41,.12],saddlebrown:[.55,.27,.07],seashell:[1,.96,.93],sienna:[.63,.32,.18],lightsalmon:[1,.63,.48],coral:[1,.5,.31],orangered:[1,.27,0],darksalmon:[.91,.59,.48],tomato:[1,.39,.28],salmon:[.98,.5,.45],mistyrose:[1,.89,.88],lightcoral:[.94,.5,.5],snow:[1,.98,.98],rosybrown:[.74,.56,.56],indianred:[.8,.36,.36],red:[1,0,0],brown:[.65,.16,.16],firebrick:[.7,.13,.13],darkred:[.55,0,0],maroon:[.5,0,0],white:[1,1,1],whitesmoke:[.96,.96,.96],gainsboro:[.86,.86,.86],lightgrey:[.83,.83,.83],silver:[.75,.75,.75],darkgray:[.66,.66,.66],gray:[.5,.5,.5],grey:[.5,.5,.5],dimgray:[.41,.41,.41],dimgrey:[.41,.41,.41],black:[0,0,0],cyan:[0,.68,.94],transparent:[0,0,0,0],bark:[.25,.19,.13]},color.rgb2hex=function(e,r,a){return"#"+toHex(Math.round(255*e))+toHex(Math.round(255*r))+toHex(Math.round(255*a))},color.rgba2hex=function(e,r,a,o){return"#"+toHex(Math.round(255*e))+toHex(Math.round(255*r))+toHex(Math.round(255*a))+toHex(Math.round(255*o))},color.hex2rgb=function(e){if(3!==(e=e.replace(/^#/,"")).length&&6!==e.length||!/^[0-9a-fA-F]*$/.test(e))throw new Error("Invalid hex value: #"+e);return 3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),[parseInt(e.substr(0,2),16)/255,parseInt(e.substr(2,2),16)/255,parseInt(e.substr(4,2),16)/255]},color.rgb2hsb=function(e,r,a){var o=0,l=0,n=Math.max(e,r,a),t=n-Math.min(e,r,a);return 0!==n&&(l=t/n),0!==l&&(o=e===n?0+(r-a)/t:r===n?2+(a-e)/t:4+(e-r)/t),(o*=60/360)<0&&(o+=1),[o,l,n]},color.hsb2rgb=function(e,r,a){if(0===r)return[a,a,a];e=e%1*6;var o=Math.floor(e),l=e-o,n=a*(1-r),t=a*(1-r*l),i=a*(1-r*(1-l));return o>4?[a,n,t]:[[a,i,n],[t,a,n],[n,a,i],[n,t,a],[i,n,a]][parseInt(o,10)]},color.rgb2hsl=function(e,r,a){var o,l,n=Math.min(e,r,a),t=Math.max(e,r,a),i=t-n;return t===n?o=0:e===t?o=(r-a)/i:r===t?o=2+(a-e)/i:a===t&&(o=4+(e-r)/i),(o=Math.min(60*o,360))<0&&(o+=360),l=(n+t)/2,[o/360,t===n?0:l<=.5?i/(t+n):i/(2-t-n),l]},color.hsl2rgb=function(e,r,a){var o,l,n,t,i;if(0===r)return[i=a,i,i];o=2*a-(l=a<.5?a*(1+r):a+r-a*r),t=[0,0,0];for(var u=0;u<3;u++)(n=e+1/3*-(u-1))<0&&(n+=1),n>1&&(n-=1),i=6*n<1?o+6*(l-o)*n:2*n<1?l:3*n<2?o+(l-o)*(2/3-n)*6:o,t[u]=i;return t},module.exports=color; -},{}],44:[function(require,module,exports){ +},{}],45:[function(require,module,exports){ "use strict";var math=require("../util/math"),Point=require("../objects/point"),geo={angle:function(t,n,a,r){return math.degrees(Math.atan2(r-n,a-t))},distance:function(t,n,a,r){return Math.sqrt(Math.pow(a-t,2)+Math.pow(r-n,2))},coordinates:function(t,n,a,r){var e=t+Math.cos(math.radians(a))*r,o=n+Math.sin(math.radians(a))*r;return new Point(e,o)},pointInPolygon:function(t,n,a){var r,e,o,i,u,h,s=!1,c=t.length;for(r=0;r=a||h=a)&&o+(a-i)/(h-i)*(u-o)0?1:0},degrees:function(r){return 180*r/Math.PI},radians:function(r){return r/180*Math.PI},clamp:function(r,t,n){return tn?n:r:rt?t:r},snap:function(r,t,n){return r*(1-(n=void 0!==n?n:1))+n*Math.round(r/t)*t},dot:function(r,t){var n,a=Math.min(r.length,t.length),e=0;for(n=0;n1)return t}return r+(t-r)*n};function _fade(r){return r*r*r*(r*(6*r-15)+10)}function _grad(r,t,n,a){var e,o,u;return o=(e=15&r)<8?t:n,u=e<4?n:12===e||14===e?t:a,(0==(1&e)?o:-o)+(0==(2&e)?u:-u)}function _scale(r){return(1+r)/2}var _permutation=function(){var r,t,n;for(r=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],t=new Uint8Array(512),n=0;n<256;n+=1)t[256+n]=t[n]=r[n];return t}();math.noise=function(r,t,n){var a=_permutation,e=255&Math.floor(r),o=255&Math.floor(t),u=255&Math.floor(n);r-=Math.floor(r),t-=Math.floor(t),n-=Math.floor(n);var f=_fade(r),i=_fade(t),_=_fade(n),d=a[e]+o,h=a[d]+u,l=a[d+1]+u,c=a[e+1]+o,p=a[c]+u,g=a[c+1]+u;return _scale(_lerp(_lerp(_lerp(_grad(a[h],r,t,n),_grad(a[p],r-1,t,n),f),_lerp(_grad(a[l],r,t-1,n),_grad(a[g],r-1,t-1,n),f),i),_lerp(_lerp(_grad(a[h+1],r,t,n-1),_grad(a[p+1],r-1,t,n-1),f),_lerp(_grad(a[l+1],r,t-1,n-1),_grad(a[g+1],r-1,t-1,n-1),f),i),_))},module.exports=math; -},{}],47:[function(require,module,exports){ +},{}],48:[function(require,module,exports){ "use strict";function generator(r){if(r<0){for(var e=generator(Math.abs(r)),t=0;t<23;t+=1)e();return generator(e(0,1e4))}return function(e,t){return(e=e||0)+(r=(9301*r+49297)%233280)/233280*((t=t||1)-e)}}exports.generator=generator; -},{}],48:[function(require,module,exports){ -"use strict";var xmldom=require("xmldom"),Color=require("../objects/color"),Group=require("../objects/group"),Path=require("../objects/path"),Point=require("../objects/point"),Transform=require("../objects/transform"),trim=function(t){return t.replace(/^\s+|\s+$/g,"")},compressSpaces=function(t){return t.replace(/[\s\r\t\n]+/gm," ")},toNumberArray=function(t){var e,r=trim(compressSpaces((t||"").replace(/,/g," "))).split(" ");for(e=0;e0){for(d=new Transform,p=0;p0&&void 0===r&&(r="black");var a,o=e.fillOpacity,n=e.stroke,i=e.strokeOpacity,s=e.opacity,c=e.strokeWidth,l=e.transform,u=e.color;"currentColor"===r&&(r=void 0===u?"black":u),void 0!==r&&(r=Color.parse(r),void 0!==o&&(r.a*=o),void 0!==s&&(r.a*=s)),"currentColor"===n&&(n=void 0===u?"black":u),void 0!==n&&(n=Color.parse(n),void 0!==i&&(n.a*=i),void 0!==s&&(n.a*=s)),a=l?l.transformShape(t).commands:t.commands;var d=void 0===r?t.fill:r,p=void 0===n?t.stroke:n,m=void 0===c?t.strokeWidth:c;return void 0!==m&&void 0!==l&&(m*=l.m[0]),new Path(a,d,p,m)},arcToSegments=function(t,e,r,a,o,n,i,s,c){var l,u,d,p,m,h,v,g,f,b,y,A,C,k,x,S,P,w,M,T,F,E,q,$,O;for(l=i*(Math.PI/180),u=Math.sin(l),d=Math.cos(l),r=Math.abs(r),a=Math.abs(a),(h=(p=d*(s-t)*.5+u*(c-e)*.5)*p/(r*r)+(m=d*(c-e)*.5-u*(s-t)*.5)*m/(a*a))>1&&(r*=h=Math.sqrt(h),a*=h),(x=1/(((C=(v=d/r)*t+(g=u/r)*e)-(y=v*s+g*c))*(C-y)+((k=(f=-u/a)*t+(b=d/a)*e)-(A=f*s+b*c))*(k-A))-.25)<0&&(x=0),S=Math.sqrt(x),n===o&&(S=-S),P=.5*(y+C)-S*(k-A),w=.5*(A+k)+S*(C-y),M=Math.atan2(A-w,y-P),(T=Math.atan2(k-w,C-P)-M)<0&&1===n?T+=2*Math.PI:T>0&&0===n&&(T-=2*Math.PI),F=Math.ceil(Math.abs(T/(.5*Math.PI+.001))),E=[],O=0;O attribute width="'+n+'"'),n=0),i<0&&(console.error('Error: invalid negative value for attribute height="'+i+'"'),i=0);var s=parseFloat(t.getAttribute("rx")),c=parseFloat(t.getAttribute("ry"));s||(s=0),c||(c=0),s<0&&(console.error('Error: invalid negative value for attribute rx="'+s+'"'),s=0),c<0&&(console.error('Error: invalid negative value for attribute ry="'+c+'"'),c=0),s&&c||(s=c=Math.max(s,c)),s>n/2&&(s=n/2),c>i/2&&(c=i/2);var l=new Path;return s&&c?l.addRoundedRect(a,o,n,i,s,c):l.addRect(a,o,n,i),applySvgAttributes(l,r)},ellipse:function(t,e){var r=readSvgAttributes(t,e),a=parseFloat(t.getAttribute("cx")),o=parseFloat(t.getAttribute("cy"));a||(a=0),o||(o=0);var n=parseFloat(t.getAttribute("rx")),i=parseFloat(t.getAttribute("ry"));n||(n=0),i||(i=0),n<0&&(console.error('Error: invalid negative value for attribute rx="'+n+'"'),n=0),i<0&&(console.error('Error: invalid negative value for attribute ry="'+i+'"'),i=0);var s=new Path;return s.addEllipse(a-n,o-i,2*n,2*i),applySvgAttributes(s,r)},circle:function(t,e){var r=readSvgAttributes(t,e),a=parseFloat(t.getAttribute("cx")),o=parseFloat(t.getAttribute("cy"));a||(a=0),o||(o=0);var n=parseFloat(t.getAttribute("r"));n||(n=0),n<0&&(console.error('Error: invalid negative value for attribute r="'+n+'"'),n=0);var i=new Path;return i.addEllipse(a-n,o-n,2*n,2*n),applySvgAttributes(i,r)},line:function(t,e){var r=readSvgAttributes(t,e),a=parseFloat(t.getAttribute("x1")),o=parseFloat(t.getAttribute("y1")),n=parseFloat(t.getAttribute("x2")),i=parseFloat(t.getAttribute("y2"));a||(a=0),o||(o=0),n||(n=0),i||(i=0);var s=new Path;return s.addLine(a,o,n,i),applySvgAttributes(s,r)},path:function(t,e){var r,a,o,n,i,s,c,l,u,d,p,m,h,v,g,f,b,y,A,C,k,x,S,P=readSvgAttributes(t,e);r=(r=(r=(r=(r=(r=(r=(r=(r=t.getAttribute("d")).replace(/,/gm," ")).replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([MmZzLlHhVvCcSsQqTtAa])([^\s])/gm,"$1 $2")).replace(/([^\s])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([0-9])([+\-])/gm,"$1 $2")).replace(/(\.[0-9]*)(\.)/gm,"$1 $2")).replace(/([Aa](\s+[0-9]+){3})\s+([01])\s*([01])/gm,"$1 $3 $4 "),r=compressSpaces(r),r=trim(r),a=function(t){this.tokens=t.split(" "),this.reset=function(){this.i=-1,this.command="",this.previousCommand="",this.start=new Point(0,0),this.control=new Point(0,0),this.current=new Point(0,0),this.points=[],this.angles=[]},this.isEnd=function(){return this.i>=this.tokens.length-1},this.isCommandOrEnd=function(){return!!this.isEnd()||null!==this.tokens[this.i+1].match(/^[A-Za-z]$/)},this.isRelativeCommand=function(){switch(this.command){case"m":case"l":case"h":case"v":case"c":case"s":case"q":case"t":case"a":case"z":return!0}return!1},this.getToken=function(){return this.i+=1,this.tokens[this.i]},this.getScalar=function(){return parseFloat(this.getToken())},this.nextCommand=function(){this.previousCommand=this.command,this.command=this.getToken()},this.getPoint=function(){var t=new Point(this.getScalar(),this.getScalar());return this.makeAbsolute(t)},this.getAsControlPoint=function(){var t=this.getPoint();return this.control=t,t},this.getAsCurrentPoint=function(){var t=this.getPoint();return this.current=t,t},this.getReflectedControlPoint=function(){return"c"!==this.previousCommand.toLowerCase()&&"s"!==this.previousCommand.toLowerCase()&&"q"!==this.previousCommand.toLowerCase()&&"t"!==this.previousCommand.toLowerCase()?this.current:new Point(2*this.current.x-this.control.x,2*this.current.y-this.control.y)},this.makeAbsolute=function(t){return this.isRelativeCommand()?new Point(t.x+this.current.x,t.y+this.current.y):t}};var w=new Path;for((o=new a(r)).reset();!o.isEnd();)switch(o.nextCommand(),o.command){case"M":case"m":for(n=o.getAsCurrentPoint(),w.moveTo(n.x,n.y),o.start=o.current;!o.isCommandOrEnd();)n=o.getAsCurrentPoint(),w.lineTo(n.x,n.y);break;case"L":case"l":for(;!o.isCommandOrEnd();)n=o.getAsCurrentPoint(),w.lineTo(n.x,n.y);break;case"H":case"h":for(;!o.isCommandOrEnd();)i=new Point((o.isRelativeCommand()?o.current.x:0)+o.getScalar(),o.current.y),o.current=i,w.lineTo(o.current.x,o.current.y);break;case"V":case"v":for(;!o.isCommandOrEnd();)i=new Point(o.current.x,(o.isRelativeCommand()?o.current.y:0)+o.getScalar()),o.current=i,w.lineTo(o.current.x,o.current.y);break;case"C":case"c":for(;!o.isCommandOrEnd();)s=o.current,c=o.getPoint(),l=o.getAsControlPoint(),u=o.getAsCurrentPoint(),w.curveTo(c.x,c.y,l.x,l.y,u.x,u.y);break;case"S":case"s":for(;!o.isCommandOrEnd();)s=o.current,c=o.getReflectedControlPoint(),l=o.getAsControlPoint(),u=o.getAsCurrentPoint(),w.curveTo(c.x,c.y,l.x,l.y,u.x,u.y);break;case"Q":case"q":for(;!o.isCommandOrEnd();)s=o.current,l=o.getAsControlPoint(),u=o.getAsCurrentPoint(),d=s.x+2/3*(l.x-s.x),p=s.y+2/3*(l.y-s.y),m=d+1/3*(u.x-s.x),h=p+1/3*(u.y-s.y),w.curveTo(d,p,m,h,u.x,u.y);break;case"T":case"t":for(;!o.isCommandOrEnd();)s=o.current,l=o.getReflectedControlPoint(),o.control=l,u=o.getAsCurrentPoint(),d=s.x+2/3*(l.x-s.x),p=s.y+2/3*(l.y-s.y),m=d+1/3*(u.x-s.x),h=p+1/3*(u.y-s.y),w.curveTo(d,p,m,h,u.x,u.y);break;case"A":case"a":for(;!o.isCommandOrEnd();)for(s=o.current,v=o.getScalar(),g=o.getScalar(),f=o.getScalar(),b=o.getScalar(),y=o.getScalar(),A=(u=o.getAsCurrentPoint()).x,C=u.y,k=arcToSegments(A,C,v,g,b,y,f,s.x,s.y),x=0;x0){for(d=new Transform,p=0;p0&&void 0===r&&(r="black");var a,o=e.fillOpacity,n=e.stroke,i=e.strokeOpacity,s=e.opacity,c=e.strokeWidth,l=e.transform,u=e.color;"currentColor"===r&&(r=void 0===u?"black":u),void 0!==r&&(r=Color.parse(r),void 0!==o&&(r.a*=o),void 0!==s&&(r.a*=s)),"currentColor"===n&&(n=void 0===u?"black":u),void 0!==n&&(n=Color.parse(n),void 0!==i&&(n.a*=i),void 0!==s&&(n.a*=s)),a=l?l.transformShape(t).commands:t.commands;var d=void 0===r?t.fill:r,p=void 0===n?t.stroke:n,m=void 0===c?t.strokeWidth:c;return void 0!==m&&void 0!==l&&(m*=l.m[0]),new Path(a,d,p,m)},arcToSegments=function(t,e,r,a,o,n,i,s,c){var l,u,d,p,m,h,v,g,f,b,y,A,C,k,x,S,P,w,M,T,F,E,q,$,O;for(l=i*(Math.PI/180),u=Math.sin(l),(h=(p=(d=Math.cos(l))*(s-t)*.5+u*(c-e)*.5)*p/((r=Math.abs(r))*r)+(m=d*(c-e)*.5-u*(s-t)*.5)*m/((a=Math.abs(a))*a))>1&&(r*=h=Math.sqrt(h),a*=h),(x=1/(((C=(v=d/r)*t+(g=u/r)*e)-(y=v*s+g*c))*(C-y)+((k=(f=-u/a)*t+(b=d/a)*e)-(A=f*s+b*c))*(k-A))-.25)<0&&(x=0),S=Math.sqrt(x),n===o&&(S=-S),P=.5*(y+C)-S*(k-A),w=.5*(A+k)+S*(C-y),M=Math.atan2(A-w,y-P),(T=Math.atan2(k-w,C-P)-M)<0&&1===n?T+=2*Math.PI:T>0&&0===n&&(T-=2*Math.PI),F=Math.ceil(Math.abs(T/(.5*Math.PI+.001))),E=[],O=0;O attribute width="'+n+'"'),n=0),i<0&&(console.error('Error: invalid negative value for attribute height="'+i+'"'),i=0);var s=parseFloat(t.getAttribute("rx")),c=parseFloat(t.getAttribute("ry"));s||(s=0),c||(c=0),s<0&&(console.error('Error: invalid negative value for attribute rx="'+s+'"'),s=0),c<0&&(console.error('Error: invalid negative value for attribute ry="'+c+'"'),c=0),s&&c||(s=c=Math.max(s,c)),s>n/2&&(s=n/2),c>i/2&&(c=i/2);var l=new Path;return s&&c?l.addRoundedRect(a,o,n,i,s,c):l.addRect(a,o,n,i),applySvgAttributes(l,r)},ellipse:function(t,e){var r=readSvgAttributes(t,e),a=parseFloat(t.getAttribute("cx")),o=parseFloat(t.getAttribute("cy"));a||(a=0),o||(o=0);var n=parseFloat(t.getAttribute("rx")),i=parseFloat(t.getAttribute("ry"));n||(n=0),i||(i=0),n<0&&(console.error('Error: invalid negative value for attribute rx="'+n+'"'),n=0),i<0&&(console.error('Error: invalid negative value for attribute ry="'+i+'"'),i=0);var s=new Path;return s.addEllipse(a-n,o-i,2*n,2*i),applySvgAttributes(s,r)},circle:function(t,e){var r=readSvgAttributes(t,e),a=parseFloat(t.getAttribute("cx")),o=parseFloat(t.getAttribute("cy"));a||(a=0),o||(o=0);var n=parseFloat(t.getAttribute("r"));n||(n=0),n<0&&(console.error('Error: invalid negative value for attribute r="'+n+'"'),n=0);var i=new Path;return i.addEllipse(a-n,o-n,2*n,2*n),applySvgAttributes(i,r)},line:function(t,e){var r=readSvgAttributes(t,e),a=parseFloat(t.getAttribute("x1")),o=parseFloat(t.getAttribute("y1")),n=parseFloat(t.getAttribute("x2")),i=parseFloat(t.getAttribute("y2"));a||(a=0),o||(o=0),n||(n=0),i||(i=0);var s=new Path;return s.addLine(a,o,n,i),applySvgAttributes(s,r)},path:function(t,e){var r,a,o,n,i,s,c,l,u,d,p,m,h,v,g,f,b,y,A,C,k,x,S,P=readSvgAttributes(t,e);r=(r=(r=(r=(r=(r=(r=(r=(r=t.getAttribute("d")).replace(/,/gm," ")).replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([MmZzLlHhVvCcSsQqTtAa])([^\s])/gm,"$1 $2")).replace(/([^\s])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([0-9])([+\-])/gm,"$1 $2")).replace(/(\.[0-9]*)(\.)/gm,"$1 $2")).replace(/([Aa](\s+[0-9]+){3})\s+([01])\s*([01])/gm,"$1 $3 $4 "),r=compressSpaces(r),r=trim(r),a=function(t){this.tokens=t.split(" "),this.reset=function(){this.i=-1,this.command="",this.previousCommand="",this.start=new Point(0,0),this.control=new Point(0,0),this.current=new Point(0,0),this.points=[],this.angles=[]},this.isEnd=function(){return this.i>=this.tokens.length-1},this.isCommandOrEnd=function(){return!!this.isEnd()||null!==this.tokens[this.i+1].match(/^[A-Za-z]$/)},this.isRelativeCommand=function(){switch(this.command){case"m":case"l":case"h":case"v":case"c":case"s":case"q":case"t":case"a":case"z":return!0}return!1},this.getToken=function(){return this.i+=1,this.tokens[this.i]},this.getScalar=function(){return parseFloat(this.getToken())},this.nextCommand=function(){this.previousCommand=this.command,this.command=this.getToken()},this.getPoint=function(){var t=new Point(this.getScalar(),this.getScalar());return this.makeAbsolute(t)},this.getAsControlPoint=function(){var t=this.getPoint();return this.control=t,t},this.getAsCurrentPoint=function(){var t=this.getPoint();return this.current=t,t},this.getReflectedControlPoint=function(){return"c"!==this.previousCommand.toLowerCase()&&"s"!==this.previousCommand.toLowerCase()&&"q"!==this.previousCommand.toLowerCase()&&"t"!==this.previousCommand.toLowerCase()?this.current:new Point(2*this.current.x-this.control.x,2*this.current.y-this.control.y)},this.makeAbsolute=function(t){return this.isRelativeCommand()?new Point(t.x+this.current.x,t.y+this.current.y):t}};var w=new Path;for((o=new a(r)).reset();!o.isEnd();)switch(o.nextCommand(),o.command){case"M":case"m":for(n=o.getAsCurrentPoint(),w.moveTo(n.x,n.y),o.start=o.current;!o.isCommandOrEnd();)n=o.getAsCurrentPoint(),w.lineTo(n.x,n.y);break;case"L":case"l":for(;!o.isCommandOrEnd();)n=o.getAsCurrentPoint(),w.lineTo(n.x,n.y);break;case"H":case"h":for(;!o.isCommandOrEnd();)i=new Point((o.isRelativeCommand()?o.current.x:0)+o.getScalar(),o.current.y),o.current=i,w.lineTo(o.current.x,o.current.y);break;case"V":case"v":for(;!o.isCommandOrEnd();)i=new Point(o.current.x,(o.isRelativeCommand()?o.current.y:0)+o.getScalar()),o.current=i,w.lineTo(o.current.x,o.current.y);break;case"C":case"c":for(;!o.isCommandOrEnd();)s=o.current,c=o.getPoint(),l=o.getAsControlPoint(),u=o.getAsCurrentPoint(),w.curveTo(c.x,c.y,l.x,l.y,u.x,u.y);break;case"S":case"s":for(;!o.isCommandOrEnd();)s=o.current,c=o.getReflectedControlPoint(),l=o.getAsControlPoint(),u=o.getAsCurrentPoint(),w.curveTo(c.x,c.y,l.x,l.y,u.x,u.y);break;case"Q":case"q":for(;!o.isCommandOrEnd();)s=o.current,l=o.getAsControlPoint(),u=o.getAsCurrentPoint(),d=s.x+2/3*(l.x-s.x),p=s.y+2/3*(l.y-s.y),m=d+1/3*(u.x-s.x),h=p+1/3*(u.y-s.y),w.curveTo(d,p,m,h,u.x,u.y);break;case"T":case"t":for(;!o.isCommandOrEnd();)s=o.current,l=o.getReflectedControlPoint(),o.control=l,u=o.getAsCurrentPoint(),d=s.x+2/3*(l.x-s.x),p=s.y+2/3*(l.y-s.y),m=d+1/3*(u.x-s.x),h=p+1/3*(u.y-s.y),w.curveTo(d,p,m,h,u.x,u.y);break;case"A":case"a":for(;!o.isCommandOrEnd();)for(s=o.current,v=o.getScalar(),g=o.getScalar(),f=o.getScalar(),b=o.getScalar(),y=o.getScalar(),A=(u=o.getAsCurrentPoint()).x,C=u.y,k=arcToSegments(A,C,v,g,b,y,f,s.x,s.y),x=0;x>15;--r>=0;){var p=32767&this[t],h=this[t++]>>15,u=l*p+h*s;o=((p=s*p+((32767&u)<<15)+i[n]+(1073741823&o))>>>30)+(u>>>15)+l*h+(o>>>30),i[n++]=1073741823&p}return o},o=30):"Netscape"!=t?(s.prototype.am=function(t,e,i,n,o,r){for(;--r>=0;){var s=e*this[t++]+i[n]+o;o=Math.floor(s/67108864),i[n++]=67108863&s}return o},o=26):(s.prototype.am=function(t,e,i,n,o,r){for(var s=16383&e,l=e>>14;--r>=0;){var p=16383&this[t],h=this[t++]>>14,u=l*p+h*s;o=((p=s*p+((16383&u)<<14)+i[n]+o)>>28)+(u>>14)+l*h,i[n++]=268435455&p}return o},o=28),s.prototype.DB=o,s.prototype.DM=(1<>>16)&&(t=e,i+=16),0!=(e=t>>8)&&(t=e,i+=8),0!=(e=t>>4)&&(t=e,i+=4),0!=(e=t>>2)&&(t=e,i+=2),0!=(e=t>>1)&&(t=e,i+=1),i}function y(t){this.m=t}function c(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function L(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function E(){}function T(t){return t}function g(t){this.r2=l(),this.q3=l(),s.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}y.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},y.prototype.revert=function(t){return t},y.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},y.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},y.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},c.prototype.convert=function(t){var e=l();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(s.ZERO)>0&&this.m.subTo(e,e),e},c.prototype.revert=function(t){var e=l();return t.copyTo(e),this.reduce(e),e},c.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[i=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[i]>=t.DV;)t[i]-=t.DV,t[++i]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},c.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},c.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},s.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},s.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},s.prototype.fromString=function(t,e){var i;if(16==e)i=4;else if(8==e)i=3;else if(256==e)i=8;else if(2==e)i=1;else if(32==e)i=5;else{if(4!=e)return void this.fromRadix(t,e);i=2}this.t=0,this.s=0;for(var n=t.length,o=!1,r=0;--n>=0;){var l=8==i?255&t[n]:d(t,n);l<0?"-"==t.charAt(n)&&(o=!0):(o=!1,0==r?this[this.t++]=l:r+i>this.DB?(this[this.t-1]|=(l&(1<>this.DB-r):this[this.t-1]|=l<=this.DB&&(r-=this.DB))}8==i&&0!=(128&t[0])&&(this.s=-1,r>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},s.prototype.dlShiftTo=function(t,e){var i;for(i=this.t-1;i>=0;--i)e[i+t]=this[i];for(i=t-1;i>=0;--i)e[i]=0;e.t=this.t+t,e.s=this.s},s.prototype.drShiftTo=function(t,e){for(var i=t;i=0;--i)e[i+s+1]=this[i]>>o|l,l=(this[i]&r)<=0;--i)e[i]=0;e[s]=l,e.t=this.t+s+1,e.s=this.s,e.clamp()},s.prototype.rShiftTo=function(t,e){e.s=this.s;var i=Math.floor(t/this.DB);if(i>=this.t)e.t=0;else{var n=t%this.DB,o=this.DB-n,r=(1<>n;for(var s=i+1;s>n;n>0&&(e[this.t-i-1]|=(this.s&r)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;i>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[i++]=this.DV+n:n>0&&(e[i++]=n),e.t=i,e.clamp()},s.prototype.multiplyTo=function(t,e){var i=this.abs(),n=t.abs(),o=i.t;for(e.t=o+n.t;--o>=0;)e[o]=0;for(o=0;o=0;)t[i]=0;for(i=0;i=e.DV&&(t[i+e.t]-=e.DV,t[i+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(i,e[i],t,2*i,0,1)),t.s=0,t.clamp()},s.prototype.divRemTo=function(t,e,i){var n=t.abs();if(!(n.t<=0)){var o=this.abs();if(o.t0?(n.lShiftTo(u,r),o.lShiftTo(u,i)):(n.copyTo(r),o.copyTo(i));var a=r.t,f=r[a-1];if(0!=f){var d=f*(1<1?r[a-2]>>this.F2:0),P=this.FV/d,y=(1<=0&&(i[i.t++]=1,i.subTo(I,i)),s.ONE.dlShiftTo(a,I),I.subTo(r,r);r.t=0;){var _=i[--v]==f?this.DM:Math.floor(i[v]*P+(i[v-1]+c)*y);if((i[v]+=r.am(0,_,i,C,0,a))<_)for(r.dlShiftTo(C,I),i.subTo(I,i);i[v]<--_;)i.subTo(I,i)}null!=e&&(i.drShiftTo(a,e),p!=h&&s.ZERO.subTo(e,e)),i.t=a,i.clamp(),u>0&&i.rShiftTo(u,i),p<0&&s.ZERO.subTo(i,i)}}},s.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},s.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},s.prototype.exp=function(t,e){if(t>4294967295||t<1)return s.ONE;var i=l(),n=l(),o=e.convert(this),r=m(t)-1;for(o.copyTo(i);--r>=0;)if(e.sqrTo(i,n),(t&1<0)e.mulTo(n,o,i);else{var p=i;i=n,n=p}return e.revert(i)},s.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var i,n=(1<0)for(l>l)>0&&(o=!0,r=f(i));s>=0;)l>(l+=this.DB-e)):(i=this[s]>>(l-=e)&n,l<=0&&(l+=this.DB,--s)),i>0&&(o=!0),o&&(r+=f(i));return o?r:"0"},s.prototype.negate=function(){var t=l();return s.ZERO.subTo(this,t),t},s.prototype.abs=function(){return this.s<0?this.negate():this},s.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var i=this.t;if(0!=(e=i-t.t))return this.s<0?-e:e;for(;--i>=0;)if(0!=(e=this[i]-t[i]))return e;return 0},s.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+m(this[this.t-1]^this.s&this.DM)},s.prototype.mod=function(t){var e=l();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(s.ZERO)>0&&t.subTo(e,e),e},s.prototype.modPowInt=function(t,e){var i;return i=t<256||e.isEven()?new y(e):new c(e),this.exp(t,i)},s.ZERO=P(0),s.ONE=P(1),E.prototype.convert=T,E.prototype.revert=T,E.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i)},E.prototype.sqrTo=function(t,e){t.squareTo(e)},g.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=l();return t.copyTo(e),this.reduce(e),e},g.prototype.revert=function(t){return t},g.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},g.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},g.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var X=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Y=(1<<26)/X[X.length-1];s.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},s.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),i=Math.pow(t,e),n=P(i),o=l(),r=l(),s="";for(this.divRemTo(n,o,r);o.signum()>0;)s=(i+r.intValue()).toString(t).substr(1)+s,o.divRemTo(n,o,r);return r.intValue().toString(t)+s},s.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var i=this.chunkSize(e),n=Math.pow(e,i),o=!1,r=0,l=0,p=0;p=i&&(this.dMultiply(n),this.dAddOffset(l,0),r=0,l=0))}r>0&&(this.dMultiply(Math.pow(e,r)),this.dAddOffset(l,0)),o&&s.ZERO.subTo(this,this)},s.prototype.fromNumber=function(t,e,i){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,i),this.testBit(t-1)||this.bitwiseTo(s.ONE.shiftLeft(t-1),C,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(s.ONE.shiftLeft(t-1),this);else{var n=new Array,o=7&t;n.length=1+(t>>3),e.nextBytes(n),o>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;i>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[i++]=n:n<-1&&(e[i++]=this.DV+n),e.t=i,e.clamp()},s.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},s.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},s.prototype.multiplyLowerTo=function(t,e,i){var n,o=Math.min(this.t+t.t,e);for(i.s=0,i.t=o;o>0;)i[--o]=0;for(n=i.t-this.t;o=0;)i[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)i=this[0]%t;else for(var n=this.t-1;n>=0;--n)i=(e*i+this[n])%t;return i},s.prototype.millerRabin=function(t){var e=this.subtract(s.ONE),i=e.getLowestSetBit();if(i<=0)return!1;var n=e.shiftRight(i);(t=t+1>>1)>X.length&&(t=X.length);for(var o=l(),r=0;r>24},s.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},s.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},s.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var i,n=this.DB-t*this.DB%8,o=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[o++]=i|this.s<=0;)n<8?(i=(this[t]&(1<>(n+=this.DB-8)):(i=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&i)&&(i|=-256),0==o&&(128&this.s)!=(128&i)&&++o,(o>0||i!=this.s)&&(e[o++]=i);return e},s.prototype.equals=function(t){return 0==this.compareTo(t)},s.prototype.min=function(t){return this.compareTo(t)<0?this:t},s.prototype.max=function(t){return this.compareTo(t)>0?this:t},s.prototype.and=function(t){var e=l();return this.bitwiseTo(t,v,e),e},s.prototype.or=function(t){var e=l();return this.bitwiseTo(t,C,e),e},s.prototype.xor=function(t){var e=l();return this.bitwiseTo(t,I,e),e},s.prototype.andNot=function(t){var e=l();return this.bitwiseTo(t,_,e),e},s.prototype.not=function(){for(var t=l(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var a=l();for(n.sqrTo(s[1],a);p<=u;)s[p]=l(),n.mulTo(a,s[p-2],s[p]),p+=2}var f,d,v=t.t-1,C=!0,I=l();for(o=m(t[v])-1;v>=0;){for(o>=h?f=t[v]>>o-h&u:(f=(t[v]&(1<0&&(f|=t[v-1]>>this.DB+o-h)),p=i;0==(1&f);)f>>=1,--p;if((o-=p)<0&&(o+=this.DB,--v),C)s[f].copyTo(r),C=!1;else{for(;p>1;)n.sqrTo(r,I),n.sqrTo(I,r),p-=2;p>0?n.sqrTo(r,I):(d=r,r=I,I=d),n.mulTo(I,s[f],r)}for(;v>=0&&0==(t[v]&1<=0?(i.subTo(n,i),e&&o.subTo(l,o),r.subTo(p,r)):(n.subTo(i,n),e&&l.subTo(o,l),p.subTo(r,p))}return 0!=n.compareTo(s.ONE)?s.ZERO:p.compareTo(t)>=0?p.subtract(t):p.signum()<0?(p.addTo(t,p),p.signum()<0?p.add(t):p):p},s.prototype.pow=function(t){return this.exp(t,new E)},s.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),i=t.s<0?t.negate():t.clone();if(e.compareTo(i)<0){var n=e;e=i,i=n}var o=e.getLowestSetBit(),r=i.getLowestSetBit();if(r<0)return e;for(o0&&(e.rShiftTo(r,e),i.rShiftTo(r,i));e.signum()>0;)(o=e.getLowestSetBit())>0&&e.rShiftTo(o,e),(o=i.getLowestSetBit())>0&&i.rShiftTo(o,i),e.compareTo(i)>=0?(e.subTo(i,e),e.rShiftTo(1,e)):(i.subTo(e,i),i.rShiftTo(1,i));return r>0&&i.lShiftTo(r,i),i},s.prototype.isProbablePrime=function(t){var e,i=this.abs();if(1==i.t&&i[0]<=X[X.length-1]){for(e=0;e0},N.op_LessThan=function(t,e){return t.compareTo(e)<0},N.op_Addition=function(t,e){return new N(t).add(new N(e))},N.op_Subtraction=function(t,e){return new N(t).subtract(new N(e))},N.Int128Mul=function(t,e){return new N(t).multiply(new N(e))},N.op_Division=function(t,e){return t.divide(e)},N.prototype.ToDouble=function(){return parseFloat(this.toString())};var O=function(t,e){var i;if(void 0===Object.getOwnPropertyNames){for(i in e.prototype)void 0!==t.prototype[i]&&t.prototype[i]!=Object.prototype[i]||(t.prototype[i]=e.prototype[i]);for(i in e)void 0===t[i]&&(t[i]=e[i]);t.$baseCtor=e}else{for(var n=Object.getOwnPropertyNames(e.prototype),o=0;o0?this.m_Childs[0]:this.GetNextSiblingUp()},e.PolyNode.prototype.GetNextSiblingUp=function(){return null===this.m_Parent?null:this.m_Index==this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]},e.PolyNode.prototype.Childs=function(){return this.m_Childs},e.PolyNode.prototype.Parent=function(){return this.m_Parent},e.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()},e.PolyTree=function(){this.m_AllPolys=[],e.PolyNode.call(this)},e.PolyTree.prototype.Clear=function(){for(var t=0,e=this.m_AllPolys.length;t0?this.m_Childs[0]:null},e.PolyTree.prototype.Total=function(){var t=this.m_AllPolys.length;return t>0&&this.m_Childs[0]!=this.m_AllPolys[0]&&t--,t},O(e.PolyTree,e.PolyNode),e.Math_Abs_Int64=e.Math_Abs_Int32=e.Math_Abs_Double=function(t){return Math.abs(t)},e.Math_Max_Int32_Int32=function(t,e){return Math.max(t,e)},r.msie||r.opera||r.safari?e.Cast_Int32=function(t){return 0|t}:e.Cast_Int32=function(t){return~~t},r.chrome?e.Cast_Int64=function(t){return t<-2147483648||t>2147483647?t<0?Math.ceil(t):Math.floor(t):~~t}:r.firefox&&"function"==typeof Number.toInteger?e.Cast_Int64=function(t){return Number.toInteger(t)}:r.msie7||r.msie8?e.Cast_Int64=function(t){return parseInt(t,10)}:r.msie?e.Cast_Int64=function(t){return t<-2147483648||t>2147483647?t<0?Math.ceil(t):Math.floor(t):0|t}:e.Cast_Int64=function(t){return t<0?Math.ceil(t):Math.floor(t)},e.Clear=function(t){t.length=0},e.PI=3.141592653589793,e.PI2=6.283185307179586,e.IntPoint=function(){var t=arguments,i=t.length;if(this.X=0,this.Y=0,e.use_xyz)if(this.Z=0,3==i)this.X=t[0],this.Y=t[1],this.Z=t[2];else if(2==i)this.X=t[0],this.Y=t[1],this.Z=0;else if(1==i)if(t[0]instanceof e.DoublePoint){var n=t[0];this.X=e.Clipper.Round(n.X),this.Y=e.Clipper.Round(n.Y),this.Z=0}else{void 0===(o=t[0]).Z&&(o.Z=0),this.X=o.X,this.Y=o.Y,this.Z=o.Z}else this.X=0,this.Y=0,this.Z=0;else if(2==i)this.X=t[0],this.Y=t[1];else if(1==i)if(t[0]instanceof e.DoublePoint){n=t[0];this.X=e.Clipper.Round(n.X),this.Y=e.Clipper.Round(n.Y)}else{var o=t[0];this.X=o.X,this.Y=o.Y}else this.X=0,this.Y=0},e.IntPoint.op_Equality=function(t,e){return t.X==e.X&&t.Y==e.Y},e.IntPoint.op_Inequality=function(t,e){return t.X!=e.X||t.Y!=e.Y},e.use_xyz?(e.IntPoint0=function(){this.X=0,this.Y=0,this.Z=0},e.IntPoint1=function(t){this.X=t.X,this.Y=t.Y,this.Z=t.Z},e.IntPoint1dp=function(t){this.X=e.Clipper.Round(t.X),this.Y=e.Clipper.Round(t.Y),this.Z=0},e.IntPoint2=function(t,e){this.X=t,this.Y=e,this.Z=0},e.IntPoint3=function(t,e,i){this.X=t,this.Y=e,this.Z=i}):(e.IntPoint0=function(){this.X=0,this.Y=0},e.IntPoint1=function(t){this.X=t.X,this.Y=t.Y},e.IntPoint1dp=function(t){this.X=e.Clipper.Round(t.X),this.Y=e.Clipper.Round(t.Y)},e.IntPoint2=function(t,e){this.X=t,this.Y=e}),e.IntRect=function(){var t=arguments,e=t.length;4==e?(this.left=t[0],this.top=t[1],this.right=t[2],this.bottom=t[3]):1==e?(this.left=ir.left,this.top=ir.top,this.right=ir.right,this.bottom=ir.bottom):(this.left=0,this.top=0,this.right=0,this.bottom=0)},e.IntRect0=function(){this.left=0,this.top=0,this.right=0,this.bottom=0},e.IntRect1=function(t){this.left=t.left,this.top=t.top,this.right=t.right,this.bottom=t.bottom},e.IntRect4=function(t,e,i,n){this.left=t,this.top=e,this.right=i,this.bottom=n},e.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3},e.PolyType={ptSubject:0,ptClip:1},e.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3},e.JoinType={jtSquare:0,jtRound:1,jtMiter:2},e.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4},e.EdgeSide={esLeft:0,esRight:1},e.Direction={dRightToLeft:0,dLeftToRight:1},e.TEdge=function(){this.Bot=new e.IntPoint,this.Curr=new e.IntPoint,this.Top=new e.IntPoint,this.Delta=new e.IntPoint,this.Dx=0,this.PolyTyp=e.PolyType.ptSubject,this.Side=e.EdgeSide.esLeft,this.WindDelta=0,this.WindCnt=0,this.WindCnt2=0,this.OutIdx=0,this.Next=null,this.Prev=null,this.NextInLML=null,this.NextInAEL=null,this.PrevInAEL=null,this.NextInSEL=null,this.PrevInSEL=null},e.IntersectNode=function(){this.Edge1=null,this.Edge2=null,this.Pt=new e.IntPoint},e.MyIntersectNodeSort=function(){},e.MyIntersectNodeSort.Compare=function(t,e){var i=e.Pt.Y-t.Pt.Y;return i>0?1:i<0?-1:0},e.LocalMinima=function(){this.Y=0,this.LeftBound=null,this.RightBound=null,this.Next=null},e.Scanbeam=function(){this.Y=0,this.Next=null},e.OutRec=function(){this.Idx=0,this.IsHole=!1,this.IsOpen=!1,this.FirstLeft=null,this.Pts=null,this.BottomPt=null,this.PolyNode=null},e.OutPt=function(){this.Idx=0,this.Pt=new e.IntPoint,this.Next=null,this.Prev=null},e.Join=function(){this.OutPt1=null,this.OutPt2=null,this.OffPt=new e.IntPoint},e.ClipperBase=function(){this.m_MinimaList=null,this.m_CurrentLM=null,this.m_edges=new Array,this.m_UseFullRange=!1,this.m_HasOpenPaths=!1,this.PreserveCollinear=!1,this.m_MinimaList=null,this.m_CurrentLM=null,this.m_UseFullRange=!1,this.m_HasOpenPaths=!1},e.ClipperBase.horizontal=-9007199254740992,e.ClipperBase.Skip=-2,e.ClipperBase.Unassigned=-1,e.ClipperBase.tolerance=1e-20,e.ClipperBase.loRange=47453132,e.ClipperBase.hiRange=0xfffffffffffff,e.ClipperBase.near_zero=function(t){return t>-e.ClipperBase.tolerance&&te.X==t.Xe.Y==t.Ye.X==t.Xe.Y==t.Ye.ClipperBase.hiRange||t.Y>e.ClipperBase.hiRange||-t.X>e.ClipperBase.hiRange||-t.Y>e.ClipperBase.hiRange)&&e.Error("Coordinate outside allowed range in RangeTest()."):(t.X>e.ClipperBase.loRange||t.Y>e.ClipperBase.loRange||-t.X>e.ClipperBase.loRange||-t.Y>e.ClipperBase.loRange)&&(i.Value=!0,this.RangeTest(t,i))},e.ClipperBase.prototype.InitEdge=function(t,i,n,o){t.Next=i,t.Prev=n,t.Curr.X=o.X,t.Curr.Y=o.Y,e.use_xyz&&(t.Curr.Z=o.Z),t.OutIdx=-1},e.ClipperBase.prototype.InitEdge2=function(t,i){t.Curr.Y>=t.Next.Curr.Y?(t.Bot.X=t.Curr.X,t.Bot.Y=t.Curr.Y,e.use_xyz&&(t.Bot.Z=t.Curr.Z),t.Top.X=t.Next.Curr.X,t.Top.Y=t.Next.Curr.Y,e.use_xyz&&(t.Top.Z=t.Next.Curr.Z)):(t.Top.X=t.Curr.X,t.Top.Y=t.Curr.Y,e.use_xyz&&(t.Top.Z=t.Curr.Z),t.Bot.X=t.Next.Curr.X,t.Bot.Y=t.Next.Curr.Y,e.use_xyz&&(t.Bot.Z=t.Next.Curr.Z)),this.SetDx(t),t.PolyTyp=i},e.ClipperBase.prototype.FindNextLocMin=function(t){for(var i;;){for(;e.IntPoint.op_Inequality(t.Bot,t.Prev.Bot)||e.IntPoint.op_Equality(t.Curr,t.Top);)t=t.Next;if(t.Dx!=e.ClipperBase.horizontal&&t.Prev.Dx!=e.ClipperBase.horizontal)break;for(;t.Prev.Dx==e.ClipperBase.horizontal;)t=t.Prev;for(i=t;t.Dx==e.ClipperBase.horizontal;)t=t.Next;if(t.Top.Y!=t.Prev.Bot.Y){i.Prev.Bot.Xr.Next.Top.X&&(r=o.Prev)}for(;t!=r;)t.NextInLML=t.Next,t.Dx==e.ClipperBase.horizontal&&t!=n&&t.Bot.X!=t.Prev.Top.X&&this.ReverseHorizontal(t),t=t.Next;t.Dx==e.ClipperBase.horizontal&&t!=n&&t.Bot.X!=t.Prev.Top.X&&this.ReverseHorizontal(t),r=r.Next}else{for(;r.Top.Y==r.Prev.Bot.Y&&r.Prev.OutIdx!=e.ClipperBase.Skip;)r=r.Prev;if(r.Dx==e.ClipperBase.horizontal&&r.Prev.OutIdx!=e.ClipperBase.Skip){for(o=r;o.Next.Dx==e.ClipperBase.horizontal;)o=o.Next;o.Next.Top.X==r.Prev.Top.X?i||(r=o.Next):o.Next.Top.X>r.Prev.Top.X&&(r=o.Next)}for(;t!=r;)t.NextInLML=t.Prev,t.Dx==e.ClipperBase.horizontal&&t!=n&&t.Bot.X!=t.Next.Top.X&&this.ReverseHorizontal(t),t=t.Prev;t.Dx==e.ClipperBase.horizontal&&t!=n&&t.Bot.X!=t.Next.Top.X&&this.ReverseHorizontal(t),r=r.Prev}return r},e.ClipperBase.prototype.AddPath=function(t,i,n){e.use_lines?n||i!=e.PolyType.ptClip||e.Error("AddPath: Open paths must be subject."):n||e.Error("AddPath: Open paths have been disabled.");var o=t.length-1;if(n)for(;o>0&&e.IntPoint.op_Equality(t[o],t[0]);)--o;for(;o>0&&e.IntPoint.op_Equality(t[o],t[o-1]);)--o;if(n&&o<2||!n&&o<1)return!1;for(var r=new Array,s=0;s<=o;s++)r.push(new e.TEdge);var l=!0;r[1].Curr.X=t[1].X,r[1].Curr.Y=t[1].Y,e.use_xyz&&(r[1].Curr.Z=t[1].Z);var p={Value:this.m_UseFullRange};this.RangeTest(t[0],p),this.m_UseFullRange=p.Value,p.Value=this.m_UseFullRange,this.RangeTest(t[o],p),this.m_UseFullRange=p.Value,this.InitEdge(r[0],r[1],r[o],t[0]),this.InitEdge(r[o],r[0],r[o-1],t[o]);for(s=o-1;s>=1;--s)p.Value=this.m_UseFullRange,this.RangeTest(t[s],p),this.m_UseFullRange=p.Value,this.InitEdge(r[s],r[s+1],r[s-1],t[s]);for(var h,u=r[0],a=u,f=u;;)if(a.Curr!=a.Next.Curr||!n&&a.Next==u){if(a.Prev==a.Next)break;if(!n||!e.ClipperBase.SlopesEqual(a.Prev.Curr,a.Curr,a.Next.Curr,this.m_UseFullRange)||this.PreserveCollinear&&this.Pt2IsBetweenPt1AndPt3(a.Prev.Curr,a.Curr,a.Next.Curr)){if((a=a.Next)==f||!n&&a.Next==u)break}else a==u&&(u=a.Next),f=a=(a=this.RemoveEdge(a)).Prev}else{if(a==a.Next)break;a==u&&(u=a.Next),f=a=this.RemoveEdge(a)}if(!n&&a==a.Next||n&&a.Prev==a.Next)return!1;n||(this.m_HasOpenPaths=!0,u.Prev.OutIdx=e.ClipperBase.Skip),a=u;do{this.InitEdge2(a,i),a=a.Next,l&&a.Curr.Y!=u.Curr.Y&&(l=!1)}while(a!=u);if(l){if(n)return!1;for(a.Prev.OutIdx=e.ClipperBase.Skip,a.Prev.Bot.Xt.X==i.Xt.Y==i.Y=this.m_MinimaList.Y)t.Next=this.m_MinimaList,this.m_MinimaList=t;else{for(var e=this.m_MinimaList;null!==e.Next&&t.Ythis.m_Scanbeam.Y){(n=new e.Scanbeam).Y=t,n.Next=this.m_Scanbeam,this.m_Scanbeam=n}else{for(var i=this.m_Scanbeam;null!==i.Next&&t<=i.Next.Y;)i=i.Next;if(t==i.Y)return;var n;(n=new e.Scanbeam).Y=t,n.Next=i.Next,i.Next=n}},e.Clipper.prototype.Execute=function(){var t=arguments,i=t.length,n=t[1]instanceof e.PolyTree;if(4==i&&!n){var o=t[0],r=t[1],s=t[2],l=t[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&e.Error("Error: PolyTree struct is need for open path clipping."),this.m_ExecuteLocked=!0,e.Clear(r),this.m_SubjFillType=s,this.m_ClipFillType=l,this.m_ClipType=o,this.m_UsingPolyTree=!1;try{(h=this.ExecuteInternal())&&this.BuildResult(r)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return h}if(4==i&&n){o=t[0];var p=t[1];s=t[2],l=t[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0,this.m_SubjFillType=s,this.m_ClipFillType=l,this.m_ClipType=o,this.m_UsingPolyTree=!0;try{var h;(h=this.ExecuteInternal())&&this.BuildResult2(p)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return h}if(2==i&&!n){o=t[0],r=t[1];return this.Execute(o,r,e.PolyFillType.pftEvenOdd,e.PolyFillType.pftEvenOdd)}if(2==i&&n){o=t[0],p=t[1];return this.Execute(o,p,e.PolyFillType.pftEvenOdd,e.PolyFillType.pftEvenOdd)}},e.Clipper.prototype.FixHoleLinkage=function(t){if(null!==t.FirstLeft&&(t.IsHole==t.FirstLeft.IsHole||null===t.FirstLeft.Pts)){for(var e=t.FirstLeft;null!==e&&(e.IsHole==t.IsHole||null===e.Pts);)e=e.FirstLeft;t.FirstLeft=e}},e.Clipper.prototype.ExecuteInternal=function(){try{if(this.Reset(),null===this.m_CurrentLM)return!1;var t=this.PopScanbeam();do{if(this.InsertLocalMinimaIntoAEL(t),e.Clear(this.m_GhostJoins),this.ProcessHorizontals(!1),null===this.m_Scanbeam)break;var i=this.PopScanbeam();if(!this.ProcessIntersections(i))return!1;this.ProcessEdgesAtTopOfScanbeam(i),t=i}while(null!==this.m_Scanbeam||null!==this.m_CurrentLM);for(var n=0,o=this.m_PolyOuts.length;n0&&this.ReversePolyPtLinks(r.Pts)}this.JoinCommonEdges();for(n=0,o=this.m_PolyOuts.length;n0&&0!==n.WindDelta)for(var r=0,s=this.m_GhostJoins.length;r=0&&null!==i.PrevInAEL&&i.PrevInAEL.Curr.X==i.Bot.X&&i.PrevInAEL.OutIdx>=0&&e.ClipperBase.SlopesEqual(i.PrevInAEL,i,this.m_UseFullRange)&&0!==i.WindDelta&&0!==i.PrevInAEL.WindDelta){var p=this.AddOutPt(i.PrevInAEL,i.Bot);this.AddJoin(o,p,i.Top)}if(i.NextInAEL!=n){if(n.OutIdx>=0&&n.PrevInAEL.OutIdx>=0&&e.ClipperBase.SlopesEqual(n.PrevInAEL,n,this.m_UseFullRange)&&0!==n.WindDelta&&0!==n.PrevInAEL.WindDelta){p=this.AddOutPt(n.PrevInAEL,n.Bot);this.AddJoin(o,p,n.Top)}var h=i.NextInAEL;if(null!==h)for(;h!=n;)this.IntersectEdges(n,h,i.Curr,!1),h=h.NextInAEL}}}},e.Clipper.prototype.InsertEdgeIntoAEL=function(t,e){if(null===this.m_ActiveEdges)t.PrevInAEL=null,t.NextInAEL=null,this.m_ActiveEdges=t;else if(null===e&&this.E2InsertsBeforeE1(this.m_ActiveEdges,t))t.PrevInAEL=null,t.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges.PrevInAEL=t,this.m_ActiveEdges=t;else{for(null===e&&(e=this.m_ActiveEdges);null!==e.NextInAEL&&!this.E2InsertsBeforeE1(e.NextInAEL,t);)e=e.NextInAEL;t.NextInAEL=e.NextInAEL,null!==e.NextInAEL&&(e.NextInAEL.PrevInAEL=t),t.PrevInAEL=e,e.NextInAEL=t}},e.Clipper.prototype.E2InsertsBeforeE1=function(t,i){return i.Curr.X==t.Curr.X?i.Top.Y>t.Top.Y?i.Top.Xe.Clipper.TopX(i,t.Top.Y):i.Curr.X0;default:return t.WindCnt2<0}case e.ClipType.ctUnion:switch(n){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return 0===t.WindCnt2;case e.PolyFillType.pftPositive:return t.WindCnt2<=0;default:return t.WindCnt2>=0}case e.ClipType.ctDifference:if(t.PolyTyp==e.PolyType.ptSubject)switch(n){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return 0===t.WindCnt2;case e.PolyFillType.pftPositive:return t.WindCnt2<=0;default:return t.WindCnt2>=0}else switch(n){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return 0!==t.WindCnt2;case e.PolyFillType.pftPositive:return t.WindCnt2>0;default:return t.WindCnt2<0}case e.ClipType.ctXor:if(0!==t.WindDelta)return!0;switch(n){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return 0===t.WindCnt2;case e.PolyFillType.pftPositive:return t.WindCnt2<=0;default:return t.WindCnt2>=0}}return!0},e.Clipper.prototype.SetWindingCount=function(t){for(var i=t.PrevInAEL;null!==i&&(i.PolyTyp!=t.PolyTyp||0===i.WindDelta);)i=i.PrevInAEL;if(null===i)t.WindCnt=0===t.WindDelta?1:t.WindDelta,t.WindCnt2=0,i=this.m_ActiveEdges;else if(0===t.WindDelta&&this.m_ClipType!=e.ClipType.ctUnion)t.WindCnt=1,t.WindCnt2=i.WindCnt2,i=i.NextInAEL;else if(this.IsEvenOddFillType(t)){if(0===t.WindDelta){for(var n=!0,o=i.PrevInAEL;null!==o;)o.PolyTyp==i.PolyTyp&&0!==o.WindDelta&&(n=!n),o=o.PrevInAEL;t.WindCnt=n?0:1}else t.WindCnt=t.WindDelta;t.WindCnt2=i.WindCnt2,i=i.NextInAEL}else i.WindCnt*i.WindDelta<0?Math.abs(i.WindCnt)>1?i.WindDelta*t.WindDelta<0?t.WindCnt=i.WindCnt:t.WindCnt=i.WindCnt+t.WindDelta:t.WindCnt=0===t.WindDelta?1:t.WindDelta:0===t.WindDelta?t.WindCnt=i.WindCnt<0?i.WindCnt-1:i.WindCnt+1:i.WindDelta*t.WindDelta<0?t.WindCnt=i.WindCnt:t.WindCnt=i.WindCnt+t.WindDelta,t.WindCnt2=i.WindCnt2,i=i.NextInAEL;if(this.IsEvenOddAltFillType(t))for(;i!=t;)0!==i.WindDelta&&(t.WindCnt2=0===t.WindCnt2?1:0),i=i.NextInAEL;else for(;i!=t;)t.WindCnt2+=i.WindDelta,i=i.NextInAEL},e.Clipper.prototype.AddEdgeToSEL=function(t){null===this.m_SortedEdges?(this.m_SortedEdges=t,t.PrevInSEL=null,t.NextInSEL=null):(t.NextInSEL=this.m_SortedEdges,t.PrevInSEL=null,this.m_SortedEdges.PrevInSEL=t,this.m_SortedEdges=t)},e.Clipper.prototype.CopyAELToSEL=function(){var t=this.m_ActiveEdges;for(this.m_SortedEdges=t;null!==t;)t.PrevInSEL=t.PrevInAEL,t.NextInSEL=t.NextInAEL,t=t.NextInAEL},e.Clipper.prototype.SwapPositionsInAEL=function(t,e){if(t.NextInAEL!=t.PrevInAEL&&e.NextInAEL!=e.PrevInAEL){if(t.NextInAEL==e)null!==(i=e.NextInAEL)&&(i.PrevInAEL=t),null!==(n=t.PrevInAEL)&&(n.NextInAEL=e),e.PrevInAEL=n,e.NextInAEL=t,t.PrevInAEL=e,t.NextInAEL=i;else if(e.NextInAEL==t){null!==(i=t.NextInAEL)&&(i.PrevInAEL=e),null!==(n=e.PrevInAEL)&&(n.NextInAEL=t),t.PrevInAEL=n,t.NextInAEL=e,e.PrevInAEL=t,e.NextInAEL=i}else{var i=t.NextInAEL,n=t.PrevInAEL;t.NextInAEL=e.NextInAEL,null!==t.NextInAEL&&(t.NextInAEL.PrevInAEL=t),t.PrevInAEL=e.PrevInAEL,null!==t.PrevInAEL&&(t.PrevInAEL.NextInAEL=t),e.NextInAEL=i,null!==e.NextInAEL&&(e.NextInAEL.PrevInAEL=e),e.PrevInAEL=n,null!==e.PrevInAEL&&(e.PrevInAEL.NextInAEL=e)}null===t.PrevInAEL?this.m_ActiveEdges=t:null===e.PrevInAEL&&(this.m_ActiveEdges=e)}},e.Clipper.prototype.SwapPositionsInSEL=function(t,e){if(!(null===t.NextInSEL&&null===t.PrevInSEL||null===e.NextInSEL&&null===e.PrevInSEL)){if(t.NextInSEL==e)null!==(i=e.NextInSEL)&&(i.PrevInSEL=t),null!==(n=t.PrevInSEL)&&(n.NextInSEL=e),e.PrevInSEL=n,e.NextInSEL=t,t.PrevInSEL=e,t.NextInSEL=i;else if(e.NextInSEL==t){null!==(i=t.NextInSEL)&&(i.PrevInSEL=e),null!==(n=e.PrevInSEL)&&(n.NextInSEL=t),t.PrevInSEL=n,t.NextInSEL=e,e.PrevInSEL=t,e.NextInSEL=i}else{var i=t.NextInSEL,n=t.PrevInSEL;t.NextInSEL=e.NextInSEL,null!==t.NextInSEL&&(t.NextInSEL.PrevInSEL=t),t.PrevInSEL=e.PrevInSEL,null!==t.PrevInSEL&&(t.PrevInSEL.NextInSEL=t),e.NextInSEL=i,null!==e.NextInSEL&&(e.NextInSEL.PrevInSEL=e),e.PrevInSEL=n,null!==e.PrevInSEL&&(e.PrevInSEL.NextInSEL=e)}null===t.PrevInSEL?this.m_SortedEdges=t:null===e.PrevInSEL&&(this.m_SortedEdges=e)}},e.Clipper.prototype.AddLocalMaxPoly=function(t,e,i){this.AddOutPt(t,i),0==e.WindDelta&&this.AddOutPt(e,i),t.OutIdx==e.OutIdx?(t.OutIdx=-1,e.OutIdx=-1):t.OutIdxi.Dx?(o=this.AddOutPt(t,n),i.OutIdx=t.OutIdx,t.Side=e.EdgeSide.esLeft,i.Side=e.EdgeSide.esRight,s=(r=t).PrevInAEL==i?i.PrevInAEL:r.PrevInAEL):(o=this.AddOutPt(i,n),t.OutIdx=i.OutIdx,t.Side=e.EdgeSide.esRight,i.Side=e.EdgeSide.esLeft,s=(r=i).PrevInAEL==t?t.PrevInAEL:r.PrevInAEL),null!==s&&s.OutIdx>=0&&e.Clipper.TopX(s,n.Y)==e.Clipper.TopX(r,n.Y)&&e.ClipperBase.SlopesEqual(r,s,this.m_UseFullRange)&&0!==r.WindDelta&&0!==s.WindDelta){var l=this.AddOutPt(s,n);this.AddJoin(o,l,r.Top)}return o},e.Clipper.prototype.CreateOutRec=function(){var t=new e.OutRec;return t.Idx=-1,t.IsHole=!1,t.IsOpen=!1,t.FirstLeft=null,t.Pts=null,t.BottomPt=null,t.PolyNode=null,this.m_PolyOuts.push(t),t.Idx=this.m_PolyOuts.length-1,t},e.Clipper.prototype.AddOutPt=function(t,i){var n=t.Side==e.EdgeSide.esLeft;if(t.OutIdx<0){(r=this.CreateOutRec()).IsOpen=0===t.WindDelta;var o=new e.OutPt;return r.Pts=o,o.Idx=r.Idx,o.Pt.X=i.X,o.Pt.Y=i.Y,e.use_xyz&&(o.Pt.Z=i.Z),o.Next=o,o.Prev=o,r.IsOpen||this.SetHoleState(t,r),t.OutIdx=r.Idx,o}var r,s=(r=this.m_PolyOuts[t.OutIdx]).Pts;return n&&e.IntPoint.op_Equality(i,s.Pt)?s:!n&&e.IntPoint.op_Equality(i,s.Prev.Pt)?s.Prev:((o=new e.OutPt).Idx=r.Idx,o.Pt.X=i.X,o.Pt.Y=i.Y,e.use_xyz&&(o.Pt.Z=i.Z),o.Next=s,o.Prev=s.Prev,o.Prev.Next=o,s.Prev=o,n&&(r.Pts=o),o)},e.Clipper.prototype.SwapPoints=function(t,i){var n=new e.IntPoint(t.Value);t.Value.X=i.Value.X,t.Value.Y=i.Value.Y,e.use_xyz&&(t.Value.Z=i.Value.Z),i.Value.X=n.X,i.Value.Y=n.Y,e.use_xyz&&(i.Value.Z=n.Z)},e.Clipper.prototype.HorzSegmentsOverlap=function(t,e,i,n){var o;return t>e&&(o=t,t=e,e=o),i>n&&(o=i,i=n,n=o),t=0&&0!=n.WindDelta&&(i=!i,null===e.FirstLeft&&(e.FirstLeft=this.m_PolyOuts[n.OutIdx])),n=n.PrevInAEL;i&&(e.IsHole=!0)},e.Clipper.prototype.GetDx=function(t,i){return t.Y==i.Y?e.ClipperBase.horizontal:(i.X-t.X)/(i.Y-t.Y)},e.Clipper.prototype.FirstIsBottomPt=function(t,i){for(var n=t.Prev;e.IntPoint.op_Equality(n.Pt,t.Pt)&&n!=t;)n=n.Prev;var o=Math.abs(this.GetDx(t.Pt,n.Pt));for(n=t.Next;e.IntPoint.op_Equality(n.Pt,t.Pt)&&n!=t;)n=n.Next;var r=Math.abs(this.GetDx(t.Pt,n.Pt));for(n=i.Prev;e.IntPoint.op_Equality(n.Pt,i.Pt)&&n!=i;)n=n.Prev;var s=Math.abs(this.GetDx(i.Pt,n.Pt));for(n=i.Next;e.IntPoint.op_Equality(n.Pt,i.Pt)&&n!=i;)n=n.Next;var l=Math.abs(this.GetDx(i.Pt,n.Pt));return o>=s&&o>=l||r>=s&&r>=l},e.Clipper.prototype.GetBottomPt=function(t){for(var i=null,n=t.Next;n!=t;)n.Pt.Y>t.Pt.Y?(t=n,i=null):n.Pt.Y==t.Pt.Y&&n.Pt.X<=t.Pt.X&&(n.Pt.Xn.Pt.Y?t:i.Pt.Yn.Pt.X?e:i.Next==i?e:n.Next==n?t:this.FirstIsBottomPt(i,n)?t:e},e.Clipper.prototype.Param1RightOfParam2=function(t,e){do{if((t=t.FirstLeft)==e)return!0}while(null!==t);return!1},e.Clipper.prototype.GetOutRec=function(t){for(var e=this.m_PolyOuts[t];e!=this.m_PolyOuts[e.Idx];)e=this.m_PolyOuts[e.Idx];return e},e.Clipper.prototype.AppendPolygon=function(t,i){var n,o=this.m_PolyOuts[t.OutIdx],r=this.m_PolyOuts[i.OutIdx];n=this.Param1RightOfParam2(o,r)?r:this.Param1RightOfParam2(r,o)?o:this.GetLowermostRec(o,r);var s,l=o.Pts,p=l.Prev,h=r.Pts,u=h.Prev;t.Side==e.EdgeSide.esLeft?(i.Side==e.EdgeSide.esLeft?(this.ReversePolyPtLinks(h),h.Next=l,l.Prev=h,p.Next=u,u.Prev=p,o.Pts=u):(u.Next=l,l.Prev=u,h.Prev=p,p.Next=h,o.Pts=h),s=e.EdgeSide.esLeft):(i.Side==e.EdgeSide.esRight?(this.ReversePolyPtLinks(h),p.Next=u,u.Prev=p,h.Next=l,l.Prev=h):(p.Next=h,h.Prev=p,l.Prev=u,u.Next=l),s=e.EdgeSide.esRight),o.BottomPt=null,n==r&&(r.FirstLeft!=o&&(o.FirstLeft=r.FirstLeft),o.IsHole=r.IsHole),r.Pts=null,r.BottomPt=null,r.FirstLeft=o;var a=t.OutIdx,f=i.OutIdx;t.OutIdx=-1,i.OutIdx=-1;for(var d=this.m_ActiveEdges;null!==d;){if(d.OutIdx==f){d.OutIdx=a,d.Side=s;break}d=d.NextInAEL}r.Idx=o.Idx},e.Clipper.prototype.ReversePolyPtLinks=function(t){if(null!==t){var e,i;e=t;do{i=e.Next,e.Next=e.Prev,e.Prev=i,e=i}while(e!=t)}},e.Clipper.SwapSides=function(t,e){var i=t.Side;t.Side=e.Side,e.Side=i},e.Clipper.SwapPolyIndexes=function(t,e){var i=t.OutIdx;t.OutIdx=e.OutIdx,e.OutIdx=i},e.Clipper.prototype.IntersectEdges=function(t,i,n){var o=t.OutIdx>=0,r=i.OutIdx>=0;if(e.use_xyz&&this.SetZ(n,t,i),!e.use_lines||0!==t.WindDelta&&0!==i.WindDelta){if(t.PolyTyp==i.PolyTyp)if(this.IsEvenOddFillType(t)){var s=t.WindCnt;t.WindCnt=i.WindCnt,i.WindCnt=s}else t.WindCnt+i.WindDelta===0?t.WindCnt=-t.WindCnt:t.WindCnt+=i.WindDelta,i.WindCnt-t.WindDelta==0?i.WindCnt=-i.WindCnt:i.WindCnt-=t.WindDelta;else this.IsEvenOddFillType(i)?t.WindCnt2=0===t.WindCnt2?1:0:t.WindCnt2+=i.WindDelta,this.IsEvenOddFillType(t)?i.WindCnt2=0===i.WindCnt2?1:0:i.WindCnt2-=t.WindDelta;var l,p,h,u,a,f;switch(t.PolyTyp==e.PolyType.ptSubject?(l=this.m_SubjFillType,h=this.m_ClipFillType):(l=this.m_ClipFillType,h=this.m_SubjFillType),i.PolyTyp==e.PolyType.ptSubject?(p=this.m_SubjFillType,u=this.m_ClipFillType):(p=this.m_ClipFillType,u=this.m_SubjFillType),l){case e.PolyFillType.pftPositive:a=t.WindCnt;break;case e.PolyFillType.pftNegative:a=-t.WindCnt;break;default:a=Math.abs(t.WindCnt)}switch(p){case e.PolyFillType.pftPositive:f=i.WindCnt;break;case e.PolyFillType.pftNegative:f=-i.WindCnt;break;default:f=Math.abs(i.WindCnt)}if(o&&r)0!=a&&1!=a||0!=f&&1!=f||t.PolyTyp!=i.PolyTyp&&this.m_ClipType!=e.ClipType.ctXor?this.AddLocalMaxPoly(t,i,n):(this.AddOutPt(t,n),this.AddOutPt(i,n),e.Clipper.SwapSides(t,i),e.Clipper.SwapPolyIndexes(t,i));else if(o)0!==f&&1!=f||(this.AddOutPt(t,n),e.Clipper.SwapSides(t,i),e.Clipper.SwapPolyIndexes(t,i));else if(r)0!==a&&1!=a||(this.AddOutPt(i,n),e.Clipper.SwapSides(t,i),e.Clipper.SwapPolyIndexes(t,i));else if(!(0!=a&&1!=a||0!=f&&1!=f)){var d,P;switch(h){case e.PolyFillType.pftPositive:d=t.WindCnt2;break;case e.PolyFillType.pftNegative:d=-t.WindCnt2;break;default:d=Math.abs(t.WindCnt2)}switch(u){case e.PolyFillType.pftPositive:P=i.WindCnt2;break;case e.PolyFillType.pftNegative:P=-i.WindCnt2;break;default:P=Math.abs(i.WindCnt2)}if(t.PolyTyp!=i.PolyTyp)this.AddLocalMinPoly(t,i,n);else if(1==a&&1==f)switch(this.m_ClipType){case e.ClipType.ctIntersection:d>0&&P>0&&this.AddLocalMinPoly(t,i,n);break;case e.ClipType.ctUnion:d<=0&&P<=0&&this.AddLocalMinPoly(t,i,n);break;case e.ClipType.ctDifference:(t.PolyTyp==e.PolyType.ptClip&&d>0&&P>0||t.PolyTyp==e.PolyType.ptSubject&&d<=0&&P<=0)&&this.AddLocalMinPoly(t,i,n);break;case e.ClipType.ctXor:this.AddLocalMinPoly(t,i,n)}else e.Clipper.SwapSides(t,i)}}else{if(0==t.WindDelta&&0==i.WindDelta)return;t.PolyTyp==i.PolyTyp&&t.WindDelta!=i.WindDelta&&this.m_ClipType==e.ClipType.ctUnion?0===t.WindDelta?r&&(this.AddOutPt(t,n),o&&(t.OutIdx=-1)):o&&(this.AddOutPt(i,n),r&&(i.OutIdx=-1)):t.PolyTyp!=i.PolyTyp&&(0!==t.WindDelta||1!=Math.abs(i.WindCnt)||this.m_ClipType==e.ClipType.ctUnion&&0!==i.WindCnt2?0!==i.WindDelta||1!=Math.abs(t.WindCnt)||this.m_ClipType==e.ClipType.ctUnion&&0!==t.WindCnt2||(this.AddOutPt(i,n),r&&(i.OutIdx=-1)):(this.AddOutPt(t,n),o&&(t.OutIdx=-1)))}},e.Clipper.prototype.DeleteFromAEL=function(t){var e=t.PrevInAEL,i=t.NextInAEL;null===e&&null===i&&t!=this.m_ActiveEdges||(null!==e?e.NextInAEL=i:this.m_ActiveEdges=i,null!==i&&(i.PrevInAEL=e),t.NextInAEL=null,t.PrevInAEL=null)},e.Clipper.prototype.DeleteFromSEL=function(t){var e=t.PrevInSEL,i=t.NextInSEL;null===e&&null===i&&t!=this.m_SortedEdges||(null!==e?e.NextInSEL=i:this.m_SortedEdges=i,null!==i&&(i.PrevInSEL=e),t.NextInSEL=null,t.PrevInSEL=null)},e.Clipper.prototype.UpdateEdgeIntoAEL=function(t){null===t.NextInLML&&e.Error("UpdateEdgeIntoAEL: invalid call");var i=t.PrevInAEL,n=t.NextInAEL;return t.NextInLML.OutIdx=t.OutIdx,null!==i?i.NextInAEL=t.NextInLML:this.m_ActiveEdges=t.NextInLML,null!==n&&(n.PrevInAEL=t.NextInLML),t.NextInLML.Side=t.Side,t.NextInLML.WindDelta=t.WindDelta,t.NextInLML.WindCnt=t.WindCnt,t.NextInLML.WindCnt2=t.WindCnt2,(t=t.NextInLML).Curr.X=t.Bot.X,t.Curr.Y=t.Bot.Y,e.use_xyz&&(t.Curr.Z=t.Bot.Z),t.PrevInAEL=i,t.NextInAEL=n,e.ClipperBase.IsHorizontal(t)||this.InsertScanbeam(t.Top.Y),t},e.Clipper.prototype.ProcessHorizontals=function(t){for(var e=this.m_SortedEdges;null!==e;)this.DeleteFromSEL(e),this.ProcessHorizontal(e,t),e=this.m_SortedEdges},e.Clipper.prototype.GetHorzDirection=function(t,i){t.Bot.X=r){if(u==p&&h){if(t.OutIdx>=0){for(var f=this.AddOutPt(t,t.Top),d=this.m_SortedEdges;null!==d;){if(d.OutIdx>=0&&this.HorzSegmentsOverlap(t.Bot.X,t.Top.X,d.Bot.X,d.Top.X)){var P=this.AddOutPt(d,d.Bot);this.AddJoin(P,f,d.Top)}d=d.NextInSEL}this.AddGhostJoin(f,t.Bot),this.AddLocalMaxPoly(t,p,t.Top)}return this.DeleteFromAEL(t),void this.DeleteFromAEL(p)}if(o==e.Direction.dLeftToRight){var m=new e.IntPoint(u.Curr.X,t.Curr.Y);this.IntersectEdges(t,u,m)}else{m=new e.IntPoint(u.Curr.X,t.Curr.Y);this.IntersectEdges(u,t,m)}this.SwapPositionsInAEL(t,u)}else if(o==e.Direction.dLeftToRight&&u.Curr.X>=s||o==e.Direction.dRightToLeft&&u.Curr.X<=r)break;u=a}if(null===t.NextInLML||!e.ClipperBase.IsHorizontal(t.NextInLML))break;(t=this.UpdateEdgeIntoAEL(t)).OutIdx>=0&&this.AddOutPt(t,t.Bot);n={Dir:o,Left:r,Right:s};this.GetHorzDirection(t,n),o=n.Dir,r=n.Left,s=n.Right}if(null!==t.NextInLML)if(t.OutIdx>=0){f=this.AddOutPt(t,t.Top);if(i&&this.AddGhostJoin(f,t.Bot),0===(t=this.UpdateEdgeIntoAEL(t)).WindDelta)return;var y=t.PrevInAEL;a=t.NextInAEL;if(null!==y&&y.Curr.X==t.Bot.X&&y.Curr.Y==t.Bot.Y&&0!==y.WindDelta&&y.OutIdx>=0&&y.Curr.Y>y.Top.Y&&e.ClipperBase.SlopesEqual(t,y,this.m_UseFullRange)){P=this.AddOutPt(y,t.Bot);this.AddJoin(f,P,t.Top)}else if(null!==a&&a.Curr.X==t.Bot.X&&a.Curr.Y==t.Bot.Y&&0!==a.WindDelta&&a.OutIdx>=0&&a.Curr.Y>a.Top.Y&&e.ClipperBase.SlopesEqual(t,a,this.m_UseFullRange)){P=this.AddOutPt(a,t.Bot);this.AddJoin(f,P,t.Top)}}else t=this.UpdateEdgeIntoAEL(t);else t.OutIdx>=0&&this.AddOutPt(t,t.Top),this.DeleteFromAEL(t)},e.Clipper.prototype.GetNextInAEL=function(t,i){return i==e.Direction.dLeftToRight?t.NextInAEL:t.PrevInAEL},e.Clipper.prototype.IsMinima=function(t){return null!==t&&t.Prev.NextInLML!=t&&t.Next.NextInLML!=t},e.Clipper.prototype.IsMaxima=function(t,e){return null!==t&&t.Top.Y==e&&null===t.NextInLML},e.Clipper.prototype.IsIntermediate=function(t,e){return t.Top.Y==e&&null!==t.NextInLML},e.Clipper.prototype.GetMaximaPair=function(t){var i=null;return e.IntPoint.op_Equality(t.Next.Top,t.Top)&&null===t.Next.NextInLML?i=t.Next:e.IntPoint.op_Equality(t.Prev.Top,t.Top)&&null===t.Prev.NextInLML&&(i=t.Prev),null===i||-2!=i.OutIdx&&(i.NextInAEL!=i.PrevInAEL||e.ClipperBase.IsHorizontal(i))?i:null},e.Clipper.prototype.ProcessIntersections=function(t){if(null==this.m_ActiveEdges)return!0;try{if(this.BuildIntersectList(t),0==this.m_IntersectList.length)return!0;if(1!=this.m_IntersectList.length&&!this.FixupIntersectionOrder())return!1;this.ProcessIntersectList()}catch(t){this.m_SortedEdges=null,this.m_IntersectList.length=0,e.Error("ProcessIntersections error")}return this.m_SortedEdges=null,!0},e.Clipper.prototype.BuildIntersectList=function(t){if(null!==this.m_ActiveEdges){var i=this.m_ActiveEdges;for(this.m_SortedEdges=i;null!==i;)i.PrevInSEL=i.PrevInAEL,i.NextInSEL=i.NextInAEL,i.Curr.X=e.Clipper.TopX(i,t),i=i.NextInAEL;for(var n=!0;n&&null!==this.m_SortedEdges;){for(n=!1,i=this.m_SortedEdges;null!==i.NextInSEL;){var o=i.NextInSEL,r=new e.IntPoint;if(i.Curr.X>o.Curr.X){this.IntersectPoint(i,o,r);var s=new e.IntersectNode;s.Edge1=i,s.Edge2=o,s.Pt.X=r.X,s.Pt.Y=r.Y,e.use_xyz&&(s.Pt.Z=r.Z),this.m_IntersectList.push(s),this.SwapPositionsInSEL(i,o),n=!0}else i=o}if(null===i.PrevInSEL)break;i.PrevInSEL.NextInSEL=null}this.m_SortedEdges=null}},e.Clipper.prototype.EdgesAdjacent=function(t){return t.Edge1.NextInSEL==t.Edge2||t.Edge1.PrevInSEL==t.Edge2},e.Clipper.IntersectNodeSort=function(t,e){return e.Pt.Y-t.Pt.Y},e.Clipper.prototype.FixupIntersectionOrder=function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer),this.CopyAELToSEL();for(var t=this.m_IntersectList.length,e=0;e2147483647?Math.floor(t):0|t}:e.Clipper.Round=function(t){return t<0?Math.ceil(t-.5):Math.floor(t+.5)},e.Clipper.TopX=function(t,i){return i==t.Top.Y?t.Top.X:t.Bot.X+e.Clipper.Round(t.Dx*(i-t.Bot.Y))},e.Clipper.prototype.IntersectPoint=function(t,i,n){var o,r;if(n.X=0,n.Y=0,t.Dx==i.Dx)return n.Y=t.Curr.Y,void(n.X=e.Clipper.TopX(t,n.Y));if(0===t.Delta.X)n.X=t.Bot.X,e.ClipperBase.IsHorizontal(i)?n.Y=i.Bot.Y:(r=i.Bot.Y-i.Bot.X/i.Dx,n.Y=e.Clipper.Round(n.X/i.Dx+r));else if(0===i.Delta.X)n.X=i.Bot.X,e.ClipperBase.IsHorizontal(t)?n.Y=t.Bot.Y:(o=t.Bot.Y-t.Bot.X/t.Dx,n.Y=e.Clipper.Round(n.X/t.Dx+o));else{o=t.Bot.X-t.Bot.Y*t.Dx;var s=((r=i.Bot.X-i.Bot.Y*i.Dx)-o)/(t.Dx-i.Dx);n.Y=e.Clipper.Round(s),Math.abs(t.Dx)i.Top.Y)return n.Y=t.Top.Y,n.X=e.Clipper.TopX(i,t.Top.Y),n.Xt.Curr.Y&&(n.Y=t.Curr.Y,Math.abs(t.Dx)>Math.abs(i.Dx)?n.X=e.Clipper.TopX(i,n.Y):n.X=e.Clipper.TopX(t,n.Y))},e.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=function(t){for(var i=this.m_ActiveEdges;null!==i;){var n=this.IsMaxima(i,t);if(n){var o=this.GetMaximaPair(i);n=null===o||!e.ClipperBase.IsHorizontal(o)}if(n){var r=i.PrevInAEL;this.DoMaxima(i),i=null===r?this.m_ActiveEdges:r.NextInAEL}else{if(this.IsIntermediate(i,t)&&e.ClipperBase.IsHorizontal(i.NextInLML)?((i=this.UpdateEdgeIntoAEL(i)).OutIdx>=0&&this.AddOutPt(i,i.Bot),this.AddEdgeToSEL(i)):(i.Curr.X=e.Clipper.TopX(i,t),i.Curr.Y=t),this.StrictlySimple){r=i.PrevInAEL;if(i.OutIdx>=0&&0!==i.WindDelta&&null!==r&&r.OutIdx>=0&&r.Curr.X==i.Curr.X&&0!==r.WindDelta){var s=new e.IntPoint(i.Curr);e.use_xyz&&this.SetZ(s,r,i);var l=this.AddOutPt(r,s),p=this.AddOutPt(i,s);this.AddJoin(l,p,s)}}i=i.NextInAEL}}for(this.ProcessHorizontals(!0),i=this.m_ActiveEdges;null!==i;){if(this.IsIntermediate(i,t)){l=null;i.OutIdx>=0&&(l=this.AddOutPt(i,i.Top));r=(i=this.UpdateEdgeIntoAEL(i)).PrevInAEL;var h=i.NextInAEL;if(null!==r&&r.Curr.X==i.Bot.X&&r.Curr.Y==i.Bot.Y&&null!==l&&r.OutIdx>=0&&r.Curr.Y>r.Top.Y&&e.ClipperBase.SlopesEqual(i,r,this.m_UseFullRange)&&0!==i.WindDelta&&0!==r.WindDelta){p=this.AddOutPt(r,i.Bot);this.AddJoin(l,p,i.Top)}else if(null!==h&&h.Curr.X==i.Bot.X&&h.Curr.Y==i.Bot.Y&&null!==l&&h.OutIdx>=0&&h.Curr.Y>h.Top.Y&&e.ClipperBase.SlopesEqual(i,h,this.m_UseFullRange)&&0!==i.WindDelta&&0!==h.WindDelta){p=this.AddOutPt(h,i.Bot);this.AddJoin(l,p,i.Top)}}i=i.NextInAEL}},e.Clipper.prototype.DoMaxima=function(t){var i=this.GetMaximaPair(t);if(null===i)return t.OutIdx>=0&&this.AddOutPt(t,t.Top),void this.DeleteFromAEL(t);for(var n=t.NextInAEL;null!==n&&n!=i;)this.IntersectEdges(t,n,t.Top),this.SwapPositionsInAEL(t,n),n=t.NextInAEL;-1==t.OutIdx&&-1==i.OutIdx?(this.DeleteFromAEL(t),this.DeleteFromAEL(i)):t.OutIdx>=0&&i.OutIdx>=0?(t.OutIdx>=0&&this.AddLocalMaxPoly(t,i,t.Top),this.DeleteFromAEL(t),this.DeleteFromAEL(i)):e.use_lines&&0===t.WindDelta?(t.OutIdx>=0&&(this.AddOutPt(t,t.Top),t.OutIdx=-1),this.DeleteFromAEL(t),i.OutIdx>=0&&(this.AddOutPt(i,t.Top),i.OutIdx=-1),this.DeleteFromAEL(i)):e.Error("DoMaxima error")},e.Clipper.ReversePaths=function(t){for(var e=0,i=t.length;e=0},e.Clipper.prototype.PointCount=function(t){if(null===t)return 0;var e=0,i=t;do{e++,i=i.Next}while(i!=t);return e},e.Clipper.prototype.BuildResult=function(t){e.Clear(t);for(var i=0,n=this.m_PolyOuts.length;ii.Pt.X?e.Direction.dRightToLeft:e.Direction.dLeftToRight,p=n.Pt.X>o.Pt.X?e.Direction.dRightToLeft:e.Direction.dLeftToRight;if(l==p)return!1;if(l==e.Direction.dLeftToRight){for(;t.Next.Pt.X<=r.X&&t.Next.Pt.X>=t.Pt.X&&t.Next.Pt.Y==r.Y;)t=t.Next;s&&t.Pt.X!=r.X&&(t=t.Next),i=this.DupOutPt(t,!s),e.IntPoint.op_Inequality(i.Pt,r)&&((t=i).Pt.X=r.X,t.Pt.Y=r.Y,e.use_xyz&&(t.Pt.Z=r.Z),i=this.DupOutPt(t,!s))}else{for(;t.Next.Pt.X>=r.X&&t.Next.Pt.X<=t.Pt.X&&t.Next.Pt.Y==r.Y;)t=t.Next;s||t.Pt.X==r.X||(t=t.Next),i=this.DupOutPt(t,s),e.IntPoint.op_Inequality(i.Pt,r)&&((t=i).Pt.X=r.X,t.Pt.Y=r.Y,e.use_xyz&&(t.Pt.Z=r.Z),i=this.DupOutPt(t,s))}if(p==e.Direction.dLeftToRight){for(;n.Next.Pt.X<=r.X&&n.Next.Pt.X>=n.Pt.X&&n.Next.Pt.Y==r.Y;)n=n.Next;s&&n.Pt.X!=r.X&&(n=n.Next),o=this.DupOutPt(n,!s),e.IntPoint.op_Inequality(o.Pt,r)&&((n=o).Pt.X=r.X,n.Pt.Y=r.Y,e.use_xyz&&(n.Pt.Z=r.Z),o=this.DupOutPt(n,!s))}else{for(;n.Next.Pt.X>=r.X&&n.Next.Pt.X<=n.Pt.X&&n.Next.Pt.Y==r.Y;)n=n.Next;s||n.Pt.X==r.X||(n=n.Next),o=this.DupOutPt(n,s),e.IntPoint.op_Inequality(o.Pt,r)&&((n=o).Pt.X=r.X,n.Pt.Y=r.Y,e.use_xyz&&(n.Pt.Z=r.Z),o=this.DupOutPt(n,s))}return l==e.Direction.dLeftToRight==s?(t.Prev=n,n.Next=t,i.Next=o,o.Prev=i):(t.Next=n,n.Prev=t,i.Prev=o,o.Next=i),!0},e.Clipper.prototype.JoinPoints=function(t,i,n){var o=t.OutPt1,r=new e.OutPt,s=t.OutPt2,l=new e.OutPt,p=t.OutPt1.Pt.Y==t.OffPt.Y;if(p&&e.IntPoint.op_Equality(t.OffPt,t.OutPt1.Pt)&&e.IntPoint.op_Equality(t.OffPt,t.OutPt2.Pt)){if(i!=n)return!1;for(r=t.OutPt1.Next;r!=o&&e.IntPoint.op_Equality(r.Pt,t.OffPt);)r=r.Next;var h=r.Pt.Y>t.OffPt.Y;for(l=t.OutPt2.Next;l!=s&&e.IntPoint.op_Equality(l.Pt,t.OffPt);)l=l.Next;return h!=l.Pt.Y>t.OffPt.Y&&(h?(r=this.DupOutPt(o,!1),l=this.DupOutPt(s,!0),o.Prev=s,s.Next=o,r.Next=l,l.Prev=r,t.OutPt1=o,t.OutPt2=r,!0):(r=this.DupOutPt(o,!0),l=this.DupOutPt(s,!1),o.Next=s,s.Prev=o,r.Prev=l,l.Next=r,t.OutPt1=o,t.OutPt2=r,!0))}if(p){for(r=o;o.Prev.Pt.Y==o.Pt.Y&&o.Prev!=r&&o.Prev!=s;)o=o.Prev;for(;r.Next.Pt.Y==r.Pt.Y&&r.Next!=o&&r.Next!=s;)r=r.Next;if(r.Next==o||r.Next==s)return!1;for(l=s;s.Prev.Pt.Y==s.Pt.Y&&s.Prev!=l&&s.Prev!=r;)s=s.Prev;for(;l.Next.Pt.Y==l.Pt.Y&&l.Next!=s&&l.Next!=o;)l=l.Next;if(l.Next==s||l.Next==o)return!1;var u={Left:null,Right:null};if(!this.GetOverlap(o.Pt.X,r.Pt.X,s.Pt.X,l.Pt.X,u))return!1;var a,f=u.Left,d=u.Right,P=new e.IntPoint;return o.Pt.X>=f&&o.Pt.X<=d?(P.X=o.Pt.X,P.Y=o.Pt.Y,e.use_xyz&&(P.Z=o.Pt.Z),a=o.Pt.X>r.Pt.X):s.Pt.X>=f&&s.Pt.X<=d?(P.X=s.Pt.X,P.Y=s.Pt.Y,e.use_xyz&&(P.Z=s.Pt.Z),a=s.Pt.X>l.Pt.X):r.Pt.X>=f&&r.Pt.X<=d?(P.X=r.Pt.X,P.Y=r.Pt.Y,e.use_xyz&&(P.Z=r.Pt.Z),a=r.Pt.X>o.Pt.X):(P.X=l.Pt.X,P.Y=l.Pt.Y,e.use_xyz&&(P.Z=l.Pt.Z),a=l.Pt.X>s.Pt.X),t.OutPt1=o,t.OutPt2=s,this.JoinHorz(o,r,s,l,P,a)}for(r=o.Next;e.IntPoint.op_Equality(r.Pt,o.Pt)&&r!=o;)r=r.Next;var m=r.Pt.Y>o.Pt.Y||!e.ClipperBase.SlopesEqual(o.Pt,r.Pt,t.OffPt,this.m_UseFullRange);if(m){for(r=o.Prev;e.IntPoint.op_Equality(r.Pt,o.Pt)&&r!=o;)r=r.Prev;if(r.Pt.Y>o.Pt.Y||!e.ClipperBase.SlopesEqual(o.Pt,r.Pt,t.OffPt,this.m_UseFullRange))return!1}for(l=s.Next;e.IntPoint.op_Equality(l.Pt,s.Pt)&&l!=s;)l=l.Next;var y=l.Pt.Y>s.Pt.Y||!e.ClipperBase.SlopesEqual(s.Pt,l.Pt,t.OffPt,this.m_UseFullRange);if(y){for(l=s.Prev;e.IntPoint.op_Equality(l.Pt,s.Pt)&&l!=s;)l=l.Prev;if(l.Pt.Y>s.Pt.Y||!e.ClipperBase.SlopesEqual(s.Pt,l.Pt,t.OffPt,this.m_UseFullRange))return!1}return r!=o&&l!=s&&r!=l&&(i!=n||m!=y)&&(m?(r=this.DupOutPt(o,!1),l=this.DupOutPt(s,!0),o.Prev=s,s.Next=o,r.Next=l,l.Prev=r,t.OutPt1=o,t.OutPt2=r,!0):(r=this.DupOutPt(o,!0),l=this.DupOutPt(s,!1),o.Next=s,s.Prev=o,r.Prev=l,l.Next=r,t.OutPt1=o,t.OutPt2=r,!0))},e.Clipper.GetBounds=function(t){for(var i=0,n=t.length;io.right&&(o.right=t[i][r].X),t[i][r].Yo.bottom&&(o.bottom=t[i][r].Y);return o},e.Clipper.prototype.GetBounds2=function(t){var i=t,n=new e.IntRect;for(n.left=t.Pt.X,n.right=t.Pt.X,n.top=t.Pt.Y,n.bottom=t.Pt.Y,t=t.Next;t!=i;)t.Pt.Xn.right&&(n.right=t.Pt.X),t.Pt.Yn.bottom&&(n.bottom=t.Pt.Y),t=t.Next;return n},e.Clipper.PointInPolygon=function(t,e){var i=0,n=e.length;if(n<3)return 0;for(var o=e[0],r=1;r<=n;++r){var s=r==n?e[0]:e[r];if(s.Y==t.Y&&(s.X==t.X||o.Y==t.Y&&s.X>t.X==o.X=t.X)if(s.X>t.X)i=1-i;else{if(0==(l=(o.X-t.X)*(s.Y-t.Y)-(s.X-t.X)*(o.Y-t.Y)))return-1;l>0==s.Y>o.Y&&(i=1-i)}else if(s.X>t.X){var l;if(0==(l=(o.X-t.X)*(s.Y-t.Y)-(s.X-t.X)*(o.Y-t.Y)))return-1;l>0==s.Y>o.Y&&(i=1-i)}o=s}return i},e.Clipper.prototype.PointInPolygon=function(t,e){var i=0,n=e,o=t.X,r=t.Y,s=e.Pt.X,l=e.Pt.Y;do{var p=(e=e.Next).Pt.X,h=e.Pt.Y;if(h==r&&(p==o||l==r&&p>o==s=o)if(p>o)i=1-i;else{if(0==(u=(s-o)*(h-r)-(p-o)*(l-r)))return-1;u>0==h>l&&(i=1-i)}else if(p>o){var u;if(0==(u=(s-o)*(h-r)-(p-o)*(l-r)))return-1;u>0==h>l&&(i=1-i)}s=p,l=h}while(n!=e);return i},e.Clipper.prototype.Poly2ContainsPoly1=function(t,e){var i=t;do{var n=this.PointInPolygon(i.Pt,e);if(n>=0)return n>0;i=i.Next}while(i!=t);return!0},e.Clipper.prototype.FixupFirstLefts1=function(t,e){for(var i=0,n=this.m_PolyOuts.length;i0&&this.ReversePolyPtLinks(s.Pts)):this.Poly2ContainsPoly1(r.Pts,s.Pts)?(s.IsHole=r.IsHole,r.IsHole=!s.IsHole,s.FirstLeft=r.FirstLeft,r.FirstLeft=s,this.m_UsingPolyTree&&this.FixupFirstLefts2(r,s),(r.IsHole^this.ReverseSolution)==this.Area(r)>0&&this.ReversePolyPtLinks(r.Pts)):(s.IsHole=r.IsHole,s.FirstLeft=r.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(r,s))}else s.Pts=null,s.BottomPt=null,s.Idx=r.Idx,r.IsHole=n.IsHole,n==s&&(r.FirstLeft=s.FirstLeft),s.FirstLeft=r,this.m_UsingPolyTree&&this.FixupFirstLefts2(s,r)}},e.Clipper.prototype.UpdateOutPtIdxs=function(t){var e=t.Pts;do{e.Idx=t.Idx,e=e.Prev}while(e!=t.Pts)},e.Clipper.prototype.DoSimplePolygons=function(){for(var t=0;tMath.abs(t.Y-i.Y)?t.X>i.X==t.Xt.X==i.Xi.Y==t.Yt.Y==i.Y0&&o&&n.push(t.m_polygon);for(var r=0,s=t.Childs(),l=s.length,p=s[r];r0&&e.IntPoint.op_Equality(t[0],t[o]);)o--;r.m_polygon.push(t[0]);for(var s=0,l=0,p=1;p<=o;p++)e.IntPoint.op_Inequality(r.m_polygon[s],t[p])&&(s++,r.m_polygon.push(t[p]),(t[p].Y>r.m_polygon[l].Y||t[p].Y==r.m_polygon[l].Y&&t[p].Xh.Y||r.m_polygon[l].Y==h.Y&&r.m_polygon[l].X=0&&!e.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var t=0;t2?this.m_miterLim=2/(this.MiterLimit*this.MiterLimit):this.m_miterLim=.5,n=this.ArcTolerance<=0?e.ClipperOffset.def_arc_tolerance:this.ArcTolerance>Math.abs(t)*e.ClipperOffset.def_arc_tolerance?Math.abs(t)*e.ClipperOffset.def_arc_tolerance:this.ArcTolerance;var o=3.14159265358979/Math.acos(1-n/Math.abs(t));this.m_sin=Math.sin(e.ClipperOffset.two_pi/o),this.m_cos=Math.cos(e.ClipperOffset.two_pi/o),this.m_StepsPerRad=o/e.ClipperOffset.two_pi,t<0&&(this.m_sin=-this.m_sin);for(i=0;i0;f--)this.m_normals[f]=new e.DoublePoint(-this.m_normals[f-1].X,-this.m_normals[f-1].Y);this.m_normals[0]=new e.DoublePoint(-p.X,-p.Y),l=0;for(f=s-1;f>=0;f--)l=this.OffsetPoint(f,l,r.m_jointype);this.m_destPolys.push(this.m_destPoly)}else{var h;for(l=0,f=1;f0;f--)this.m_normals[f]=new e.DoublePoint(-this.m_normals[f-1].X,-this.m_normals[f-1].Y);this.m_normals[0]=new e.DoublePoint(-this.m_normals[1].X,-this.m_normals[1].Y);for(f=(l=s-1)-1;f>0;--f)l=this.OffsetPoint(f,l,r.m_jointype);r.m_endtype==e.EndType.etOpenButt?(h=new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*t),e.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*t)),this.m_destPoly.push(h),h=new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*t),e.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*t)),this.m_destPoly.push(h)):(l=1,this.m_sinA=0,r.m_endtype==e.EndType.etOpenSquare?this.DoSquare(0,1):this.DoRound(0,1)),this.m_destPolys.push(this.m_destPoly)}}else{if(r.m_jointype==e.JoinType.jtRound)for(var u=1,a=0,f=1;f<=o;f++){this.m_destPoly.push(new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[0].X+u*t),e.ClipperOffset.Round(this.m_srcPoly[0].Y+a*t)));var d=u;u=u*this.m_cos-this.m_sin*a,a=d*this.m_sin+a*this.m_cos}else{u=-1,a=-1;for(var f=0;f<4;++f)this.m_destPoly.push(new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[0].X+u*t),e.ClipperOffset.Round(this.m_srcPoly[0].Y+a*t))),u<0?u=1:a<0?a=1:u=-1}this.m_destPolys.push(this.m_destPoly)}}}},e.ClipperOffset.prototype.Execute=function(){var t=arguments;if(t[0]instanceof e.PolyTree){r=t[0],s=t[1];if(r.Clear(),this.FixOrientations(),this.DoOffset(s),(o=new e.Clipper(0)).AddPaths(this.m_destPolys,e.PolyType.ptSubject,!0),s>0)o.Execute(e.ClipType.ctUnion,r,e.PolyFillType.pftPositive,e.PolyFillType.pftPositive);else{p=e.Clipper.GetBounds(this.m_destPolys);if((l=new e.Path).push(new e.IntPoint(p.left-10,p.bottom+10)),l.push(new e.IntPoint(p.right+10,p.bottom+10)),l.push(new e.IntPoint(p.right+10,p.top-10)),l.push(new e.IntPoint(p.left-10,p.top-10)),o.AddPath(l,e.PolyType.ptSubject,!0),o.ReverseSolution=!0,o.Execute(e.ClipType.ctUnion,r,e.PolyFillType.pftNegative,e.PolyFillType.pftNegative),1==r.ChildCount()&&r.Childs()[0].ChildCount()>0){var i=r.Childs()[0];r.Childs()[0]=i.Childs()[0],r.Childs()[0].m_Parent=r;for(var n=1;n0)o.Execute(e.ClipType.ctUnion,r,e.PolyFillType.pftPositive,e.PolyFillType.pftPositive);else{var l,p=e.Clipper.GetBounds(this.m_destPolys);(l=new e.Path).push(new e.IntPoint(p.left-10,p.bottom+10)),l.push(new e.IntPoint(p.right+10,p.bottom+10)),l.push(new e.IntPoint(p.right+10,p.top-10)),l.push(new e.IntPoint(p.left-10,p.top-10)),o.AddPath(l,e.PolyType.ptSubject,!0),o.ReverseSolution=!0,o.Execute(e.ClipType.ctUnion,r,e.PolyFillType.pftNegative,e.PolyFillType.pftNegative),r.length>0&&r.splice(0,1)}}},e.ClipperOffset.prototype.OffsetPoint=function(t,i,n){if(this.m_sinA=this.m_normals[i].X*this.m_normals[t].Y-this.m_normals[t].X*this.m_normals[i].Y,Math.abs(this.m_sinA*this.m_delta)<1){if(this.m_normals[i].X*this.m_normals[t].X+this.m_normals[t].Y*this.m_normals[i].Y>0)return this.m_destPoly.push(new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[t].X+this.m_normals[i].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[t].Y+this.m_normals[i].Y*this.m_delta))),i}else this.m_sinA>1?this.m_sinA=1:this.m_sinA<-1&&(this.m_sinA=-1);if(this.m_sinA*this.m_delta<0)this.m_destPoly.push(new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[t].X+this.m_normals[i].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[t].Y+this.m_normals[i].Y*this.m_delta))),this.m_destPoly.push(new e.IntPoint(this.m_srcPoly[t])),this.m_destPoly.push(new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[t].X+this.m_normals[t].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[t].Y+this.m_normals[t].Y*this.m_delta)));else switch(n){case e.JoinType.jtMiter:var o=this.m_normals[t].X*this.m_normals[i].X+this.m_normals[t].Y*this.m_normals[i].Y+1;o>=this.m_miterLim?this.DoMiter(t,i,o):this.DoSquare(t,i);break;case e.JoinType.jtSquare:this.DoSquare(t,i);break;case e.JoinType.jtRound:this.DoRound(t,i)}return i=t},e.ClipperOffset.prototype.DoSquare=function(t,i){var n=Math.tan(Math.atan2(this.m_sinA,this.m_normals[i].X*this.m_normals[t].X+this.m_normals[i].Y*this.m_normals[t].Y)/4);this.m_destPoly.push(new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[t].X+this.m_delta*(this.m_normals[i].X-this.m_normals[i].Y*n)),e.ClipperOffset.Round(this.m_srcPoly[t].Y+this.m_delta*(this.m_normals[i].Y+this.m_normals[i].X*n)))),this.m_destPoly.push(new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[t].X+this.m_delta*(this.m_normals[t].X+this.m_normals[t].Y*n)),e.ClipperOffset.Round(this.m_srcPoly[t].Y+this.m_delta*(this.m_normals[t].Y-this.m_normals[t].X*n))))},e.ClipperOffset.prototype.DoMiter=function(t,i,n){var o=this.m_delta/n;this.m_destPoly.push(new e.IntPoint(e.ClipperOffset.Round(this.m_srcPoly[t].X+(this.m_normals[i].X+this.m_normals[t].X)*o),e.ClipperOffset.Round(this.m_srcPoly[t].Y+(this.m_normals[i].Y+this.m_normals[t].Y)*o)))},e.ClipperOffset.prototype.DoRound=function(t,i){for(var n,o=Math.atan2(this.m_sinA,this.m_normals[i].X*this.m_normals[t].X+this.m_normals[i].Y*this.m_normals[t].Y),r=Math.max(e.Cast_Int32(e.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(o))),1),s=this.m_normals[i].X,l=this.m_normals[i].Y,p=0;p1?(c=u.X,v=u.Y):y>0&&(c+=P*y,v+=m*y)),(P=a.X-c)*P+(m=a.Y-v)*m<=I&&(f[o+1]=1,o++);for(l.push({X:r[0].X,Y:r[0].Y}),o=1;o2&&_.push(l)}return t[0]instanceof Array||(_=_[0]),void 0===_&&(_=[[]]),_},e.JS.PerimeterOfPath=function(t,e,i){if(void 0===t)return 0;var n,o,r=Math.sqrt,s=0,l=0,p=0,h=0,u=0,a=t.length;if(a<2)return 0;for(e&&(t[a]=t[0],a++);--a;)l=(n=t[a]).X,p=n.Y,s+=r((l-(h=(o=t[a-1]).X))*(l-h)+(p-(u=o.Y))*(p-u));return e&&t.pop(),s/i},e.JS.PerimeterOfPaths=function(t,i,n){n||(n=1);for(var o=0,r=0;r