!function(){"use strict";function n(t){if(void 0===t)throw new error('pathformer [constructor]: "element" parameter is required');if(t.constructor===string&&!(t=document.getelementbyid(t)))throw new error('pathformer [constructor]: "element" parameter is not related to an existing id');if(!(t instanceof window.svgelement||t instanceof window.svggelement||/^svg$/i.test(t.nodename)))throw new error('pathformer [constructor]: "element" parameter must be a string or a svgelement');this.el=t,this.scan(t)}var r,e,t,p;function i(t,e,n){r(),this.isready=!1,this.setelement(t,e),this.setoptions(e),this.setcallback(n),this.isready&&this.init()}n.prototype.types=["line","ellipse","circle","polygon","polyline","rect"],n.prototype.attr_watch=["cx","cy","points","r","rx","ry","x","x1","x2","y","y1","y2"],n.prototype.scan=function(t){for(var e,n,r,i=t.queryselectorall(this.types.join(",")),a=0;a=this.duration)throw new error("vivus [constructor]: delay must be shorter than duration")},i.prototype.setcallback=function(t){if(t&&t.constructor!==function)throw new error('vivus [constructor]: "callback" parameter must be a function');this.callback=t||function(){}},i.prototype.mapping=function(){var t,e,n,r,i,a,o,s,h,l;for(s=a=o=0,e=this.el.queryselectorall("path"),l=!1,t=0;t=this.framelength))return this.trace(),void(this.handle=e(function(){t.draw()}));this.stop(),this.currentframe=this.framelength,this.trace(),this.selfdestroy&&this.destroy()}this.callback(this),this.instancecallback&&(this.instancecallback(this),this.instancecallback=null)},i.prototype.trace=function(){var t,e,n,r;for(r=this.animtimingfunction(this.currentframe/this.framelength)*this.framelength,t=0;t