/*! ngcsv 31-07-2014 */
!function(a){angular.module("ngCsv.config",[]).value("ngCsv.config",{debug:!0}).config(["$compileProvider",function(a){angular.isDefined(a.urlSanitizationWhitelist)?a.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/):a.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/)}]),angular.module("ngCsv.directives",["ngCsv.services"]),angular.module("ngCsv.services",[]),angular.module("ngCsv",["ngCsv.config","ngCsv.services","ngCsv.directives","ngSanitize"]),angular.module("ngCsv.services").service("CSV",["$q",function(b){var c=encodeURIComponent("\r\n"),d="data:text/csv;charset=utf-8,";this.stringifyField=function(a,b,c){return"string"==typeof a?(a=a.replace(/"/g,'""'),(c||a.indexOf(",")>-1||a.indexOf("\n")>-1||a.indexOf("\r")>-1)&&(a=b+a+b),encodeURIComponent(a)):"boolean"==typeof a?a?"TRUE":"FALSE":a},this.stringify=function(e,f){var g,h=b.defer(),i=this,j="",k=b.when(e).then(function(b){if(b=angular.copy(b),angular.isDefined(f.header)&&f.header){var e,k;e=[],angular.forEach(f.header,function(a){this.push(i.stringifyField(a,f.txtDelim,f.quoteStrings))},e),k=e.join(f.fieldSep?f.fieldSep:","),j+=k+c}var l;l=angular.isArray(b)?b:b(),angular.forEach(l,function(a,b){var d,e;e=[],angular.forEach(a,function(a){this.push(i.stringifyField(a,f.txtDelim,f.quoteStrings))},e),d=e.join(f.fieldSep?f.fieldSep:","),j+=b<l.length?d+c:d}),g=a.navigator.msSaveOrOpenBlob?j:d+j,h.resolve(g)});return"function"==typeof k["catch"]&&k["catch"](function(a){h.reject(a)}),h.promise}}]),angular.module("ngCsv.directives").directive("ngCsv",["$parse","$q","CSV","$document","$timeout",function(b,c,d,e,f){return{restrict:"AC",scope:{data:"&ngCsv",filename:"@filename",header:"&csvHeader",txtDelim:"@textDelimiter",quoteStrings:"@quoteStrings",fieldSep:"@fieldSeparator",lazyLoad:"@lazyLoad",ngClick:"&"},controller:["$scope","$element","$attrs","$transclude",function(a,b,e){function f(){var b={txtDelim:a.txtDelim?a.txtDelim:'"',quoteStrings:a.quoteStrings};return angular.isDefined(e.csvHeader)&&(b.header=a.$eval(a.header)),b.fieldSep=a.fieldSep?a.fieldSep:",",b}a.csv="",angular.isDefined(a.lazyLoad)&&"true"==a.lazyLoad||angular.isArray(a.data)&&a.$watch("data",function(){a.buildCSV()},!0),a.getFilename=function(){return a.filename||"download.csv"},a.buildCSV=function(){var b=c.defer();return d.stringify(a.data(),f()).then(function(c){a.csv=c,b.resolve(c)}),a.$apply(),b.promise}}],link:function(b,c){function d(){if(a.navigator.msSaveOrOpenBlob){var c=new Blob([b.csv],{type:"text/csv;charset=utf-8;"});navigator.msSaveBlob(c,b.getFilename())}else{var d=angular.element("<a></a>");d.attr("href",b.csv),d.attr("download",b.getFilename()),e.find("body").append(d),f(function(){d[0].click(),d.remove()},null)}}c.bind("click",function(){b.buildCSV().then(function(){d()}),b.$apply()})}}}])}(window,document);
;var CryptoJS=CryptoJS||function(u,p){var d={},l=d.lib={},s=function(){},t=l.Base={extend:function(a){s.prototype=this;var c=new s;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},r=l.WordArray=t.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var c=this.words,e=a.words,j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var k=0;k<a;k++)c[j+k>>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535<e.length)for(k=0;k<a;k+=4)c[j+k>>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e<a;e+=4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),w=d.enc={},v=w.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++){var k=c[j>>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j+=2)e[j>>>3]|=parseInt(a.substr(j,2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++)e.push(String.fromCharCode(c[j>>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j++)e[j>>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}},q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q<a;q+=k)this._doProcessBlock(e,q);q=e.splice(0,a);c.sigBytes-=j}return new r.init(q,j)},clone:function(){var a=t.clone.call(this);a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=q.extend({cfg:t.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a,e)).finalize(b)}}});var n=d.algo={};return d}(Math);(function(){var u=CryptoJS,p=u.lib.WordArray;u.enc.Base64={stringify:function(d){var l=d.words,p=d.sigBytes,t=this._map;d.clamp();d=[];for(var r=0;r<p;r+=3)for(var w=(l[r>>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v<p;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w<l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<<j|b>>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<<j|b>>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<<j|b>>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<<j|b>>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]),f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f,m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m,E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math);(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length<q;){n&&s.update(n);var n=s.update(d).finalize(r);s.reset();for(var a=1;a<p;a++)n=s.finalize(n),s.reset();b.concat(n)}b.sigBytes=4*q;return b}});u.EvpKDF=function(d,l,p){return s.create(p).compute(d,l)}})();CryptoJS.lib.Cipher||function(u){var p=CryptoJS,d=p.lib,l=d.Base,s=d.WordArray,t=d.BufferedBlockAlgorithm,r=p.enc.Base64,w=p.algo.EvpKDF,v=d.Cipher=t.extend({cfg:l.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfg=this.cfg.extend(b);this._xformMode=e;this._key=a;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()},finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return("string"==typeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return("string"==typeof k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipher=v.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var b=p.mode={},x=function(e,a,b){var c=this._iv;c?this._iv=u:c=this._prevBlock;for(var d=0;d<b;d++)e[a+d]^=c[d]},q=(d.BlockCipherMode=l.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._cipher=e;this._iv=a}})).extend();q.Encryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlock=e.slice(a,a+c)}});q.Decryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize,d=e.slice(a,a+c);b.decryptBlock(e,a);x.call(this,e,a,c);this._prevBlock=d}});b=b.CBC=q;q=(p.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,l=[],n=0;n<c;n+=4)l.push(d);c=s.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684,1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d,b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}();(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8,16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j<a;j++)if(j<d)e[j]=c[j];else{var k=e[j-1];j%d?6<d&&4==j%d&&(k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;d<a;d++)j=a-d,k=d%4?e[j]:e[j-4],c[d]=4>d||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>>8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r<m;r++)var q=d[g>>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t=d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})();
;/**
 * Restful Resources service for AngularJS apps
 * @version v1.6.1 - 2017-01-06 * @link https://github.com/mgonto/restangular
 * @author Martin Gontovnikas <martin@gon.to>
 * @license MIT License, http://www.opensource.org/licenses/MIT
 */!function(a,b){"function"==typeof define&&define.amd?define(["lodash","angular"],b):"object"==typeof module&&module.exports?module.exports=b(require("lodash"),require("angular")):b(a._,a.angular)}(this,function(a,b){var c=b.module("restangular",[]);return c.provider("Restangular",function(){var c={};c.init=function(c,d){function e(b,c,d,e){var f={};return a.each(a.keys(e),function(g){var h=e[g];h.params=a.extend({},h.params,b.defaultRequestParams[h.method.toLowerCase()]),a.isEmpty(h.params)&&delete h.params,b.isSafe(h.method)?f[g]=function(){return c(a.extend(h,{url:d}))}:f[g]=function(b){return c(a.extend(h,{url:d,data:b}))}}),f}c.configuration=d;var f=["get","head","options","trace","getlist"];d.isSafe=function(b){return a.includes(f,b.toLowerCase())};var g=/^https?:\/\//i;d.isAbsoluteUrl=function(b){return a.isUndefined(d.absoluteUrl)||a.isNull(d.absoluteUrl)?b&&g.test(b):d.absoluteUrl},d.absoluteUrl=!!a.isUndefined(d.absoluteUrl)||d.absoluteUrl,c.setSelfLinkAbsoluteUrl=function(a){d.absoluteUrl=a},d.baseUrl=a.isUndefined(d.baseUrl)?"":d.baseUrl,c.setBaseUrl=function(a){return d.baseUrl=/\/$/.test(a)?a.substring(0,a.length-1):a,this},d.extraFields=d.extraFields||[],c.setExtraFields=function(a){return d.extraFields=a,this},d.defaultHttpFields=d.defaultHttpFields||{},c.setDefaultHttpFields=function(a){return d.defaultHttpFields=a,this},d.plainByDefault=d.plainByDefault||!1,c.setPlainByDefault=function(a){return d.plainByDefault=a===!0,this},d.withHttpValues=function(b,c){return a.defaults(c,b,d.defaultHttpFields)},d.encodeIds=!!a.isUndefined(d.encodeIds)||d.encodeIds,c.setEncodeIds=function(a){d.encodeIds=a},d.defaultRequestParams=d.defaultRequestParams||{get:{},post:{},put:{},remove:{},common:{}},c.setDefaultRequestParams=function(b,c){var e=[],f=c||b;return a.isUndefined(c)?e.push("common"):a.isArray(b)?e=b:e.push(b),a.each(e,function(a){d.defaultRequestParams[a]=f}),this},c.requestParams=d.defaultRequestParams,d.defaultHeaders=d.defaultHeaders||{},c.setDefaultHeaders=function(a){return d.defaultHeaders=a,c.defaultHeaders=d.defaultHeaders,this},c.defaultHeaders=d.defaultHeaders,d.methodOverriders=d.methodOverriders||[],c.setMethodOverriders=function(b){var c=a.extend([],b);return d.isOverridenMethod("delete",c)&&c.push("remove"),d.methodOverriders=c,this},d.jsonp=!a.isUndefined(d.jsonp)&&d.jsonp,c.setJsonp=function(a){d.jsonp=a},d.isOverridenMethod=function(b,c){var e=c||d.methodOverriders;return!a.isUndefined(a.find(e,function(a){return a.toLowerCase()===b.toLowerCase()}))},d.urlCreator=d.urlCreator||"path",c.setUrlCreator=function(b){if(!a.has(d.urlCreatorFactory,b))throw new Error("URL Path selected isn't valid");return d.urlCreator=b,this},d.restangularFields=d.restangularFields||{id:"id",route:"route",parentResource:"parentResource",restangularCollection:"restangularCollection",cannonicalId:"__cannonicalId",etag:"restangularEtag",selfLink:"href",get:"get",getList:"getList",put:"put",post:"post",remove:"remove",head:"head",trace:"trace",options:"options",patch:"patch",getRestangularUrl:"getRestangularUrl",getRequestedUrl:"getRequestedUrl",putElement:"putElement",addRestangularMethod:"addRestangularMethod",getParentList:"getParentList",clone:"clone",ids:"ids",httpConfig:"_$httpConfig",reqParams:"reqParams",one:"one",all:"all",several:"several",oneUrl:"oneUrl",allUrl:"allUrl",customPUT:"customPUT",customPATCH:"customPATCH",customPOST:"customPOST",customDELETE:"customDELETE",customGET:"customGET",customGETLIST:"customGETLIST",customOperation:"customOperation",doPUT:"doPUT",doPATCH:"doPATCH",doPOST:"doPOST",doDELETE:"doDELETE",doGET:"doGET",doGETLIST:"doGETLIST",fromServer:"fromServer",withConfig:"withConfig",withHttpConfig:"withHttpConfig",singleOne:"singleOne",plain:"plain",save:"save",restangularized:"restangularized"},c.setRestangularFields=function(b){return d.restangularFields=a.extend(d.restangularFields,b),this},d.isRestangularized=function(a){return!!a[d.restangularFields.restangularized]},d.setFieldToElem=function(b,c,d){var e=b.split("."),f=c;return a.each(a.initial(e),function(a){f[a]={},f=f[a]}),f[a.last(e)]=d,this},d.getFieldFromElem=function(c,d){var e=c.split("."),f=d;return a.each(e,function(a){f&&(f=f[a])}),b.copy(f)},d.setIdToElem=function(a,b){return d.setFieldToElem(d.restangularFields.id,a,b),this},d.getIdFromElem=function(a){return d.getFieldFromElem(d.restangularFields.id,a)},d.isValidId=function(b){return""!==b&&!a.isUndefined(b)&&!a.isNull(b)},d.setUrlToElem=function(a,b){return d.setFieldToElem(d.restangularFields.selfLink,a,b),this},d.getUrlFromElem=function(a){return d.getFieldFromElem(d.restangularFields.selfLink,a)},d.useCannonicalId=!a.isUndefined(d.useCannonicalId)&&d.useCannonicalId,c.setUseCannonicalId=function(a){return d.useCannonicalId=a,this},d.getCannonicalIdFromElem=function(a){var b=a[d.restangularFields.cannonicalId],c=d.isValidId(b)?b:d.getIdFromElem(a);return c},d.responseInterceptors=d.responseInterceptors||[],d.defaultResponseInterceptor=function(a){return a},d.responseExtractor=function(c,e,f,g,h,i){var j=b.copy(d.responseInterceptors);j.push(d.defaultResponseInterceptor);var k=c;return a.each(j,function(a){k=a(k,e,f,g,h,i)}),k},c.addResponseInterceptor=function(a){return d.responseInterceptors.push(a),this},d.errorInterceptors=d.errorInterceptors||[],c.addErrorInterceptor=function(a){return d.errorInterceptors.push(a),this},c.setResponseInterceptor=c.addResponseInterceptor,c.setResponseExtractor=c.addResponseInterceptor,c.setErrorInterceptor=c.addErrorInterceptor,d.requestInterceptors=d.requestInterceptors||[],d.defaultInterceptor=function(a,b,c,d,e,f,g){return{element:a,headers:e,params:f,httpConfig:g}},d.fullRequestInterceptor=function(c,e,f,g,h,i,j){var k=b.copy(d.requestInterceptors),l=d.defaultInterceptor(c,e,f,g,h,i,j);return a.reduce(k,function(b,c){return a.extend(b,c(b.element,e,f,g,b.headers,b.params,b.httpConfig))},l)},c.addRequestInterceptor=function(a){return d.requestInterceptors.push(function(b,c,d,e,f,g,h){return{headers:f,params:g,element:a(b,c,d,e),httpConfig:h}}),this},c.setRequestInterceptor=c.addRequestInterceptor,c.addFullRequestInterceptor=function(a){return d.requestInterceptors.push(a),this},c.setFullRequestInterceptor=c.addFullRequestInterceptor,d.onBeforeElemRestangularized=d.onBeforeElemRestangularized||function(a){return a},c.setOnBeforeElemRestangularized=function(a){return d.onBeforeElemRestangularized=a,this},c.setRestangularizePromiseInterceptor=function(a){return d.restangularizePromiseInterceptor=a,this},d.onElemRestangularized=d.onElemRestangularized||function(a){return a},c.setOnElemRestangularized=function(a){return d.onElemRestangularized=a,this},d.shouldSaveParent=d.shouldSaveParent||function(){return!0},c.setParentless=function(b){return a.isArray(b)?d.shouldSaveParent=function(c){return!a.includes(b,c)}:a.isBoolean(b)&&(d.shouldSaveParent=function(){return!b}),this},d.suffix=a.isUndefined(d.suffix)?null:d.suffix,c.setRequestSuffix=function(a){return d.suffix=a,this},d.transformers=d.transformers||{},d.matchTransformers=d.matchTransformers||[],c.addElementTransformer=function(b,e,f){var g=null,h=null;2===arguments.length?h=e:(h=f,g=e);var i=function(b,c){return a.isNull(g)||b===g?h(c):c};return a.isRegExp(b)?d.matchTransformers.push({regexp:b,transformer:i}):(d.transformers[b]||(d.transformers[b]=[]),d.transformers[b].push(i)),c},c.extendCollection=function(a,b){return c.addElementTransformer(a,!0,b)},c.extendModel=function(a,b){return c.addElementTransformer(a,!1,b)},d.transformElem=function(b,c,e,f,g){if(!g&&!d.transformLocalElements&&!b[d.restangularFields.fromServer])return b;var h=b,i=d.matchTransformers;i&&a.each(i,function(a){a.regexp.test(e)&&(h=a.transformer(c,h))});var j=d.transformers[e];return j&&a.each(j,function(a){h=a(c,h)}),d.onElemRestangularized(h,c,e,f)},d.transformLocalElements=!a.isUndefined(d.transformLocalElements)&&d.transformLocalElements,c.setTransformOnlyServerElements=function(a){d.transformLocalElements=!a},d.fullResponse=!a.isUndefined(d.fullResponse)&&d.fullResponse,c.setFullResponse=function(a){return d.fullResponse=a,this},d.urlCreatorFactory={};var h=function(){};h.prototype.setConfig=function(a){return this.config=a,this},h.prototype.parentsArray=function(a){for(var b=[];a;)b.push(a),a=a[this.config.restangularFields.parentResource];return b.reverse()},h.prototype.resource=function(b,c,f,g,h,i,j,k){var l=a.defaults(h||{},this.config.defaultRequestParams.common),m=a.defaults(g||{},this.config.defaultHeaders);j&&(d.isSafe(k)?m["If-None-Match"]=j:m["If-Match"]=j);var n=this.base(b);if(i||0===i){var o="";/\/$/.test(n)||(o+="/"),o+=i,n+=o}return this.config.suffix&&n.indexOf(this.config.suffix,n.length-this.config.suffix.length)===-1&&!this.config.getUrlFromElem(b)&&(n+=this.config.suffix),b[this.config.restangularFields.httpConfig]=void 0,e(this.config,c,n,{getList:this.config.withHttpValues(f,{method:"GET",params:l,headers:m}),get:this.config.withHttpValues(f,{method:"GET",params:l,headers:m}),jsonp:this.config.withHttpValues(f,{method:"jsonp",params:l,headers:m}),put:this.config.withHttpValues(f,{method:"PUT",params:l,headers:m}),post:this.config.withHttpValues(f,{method:"POST",params:l,headers:m}),remove:this.config.withHttpValues(f,{method:"DELETE",params:l,headers:m}),head:this.config.withHttpValues(f,{method:"HEAD",params:l,headers:m}),trace:this.config.withHttpValues(f,{method:"TRACE",params:l,headers:m}),options:this.config.withHttpValues(f,{method:"OPTIONS",params:l,headers:m}),patch:this.config.withHttpValues(f,{method:"PATCH",params:l,headers:m})})};var i=function(){};i.prototype=new h,i.prototype.normalizeUrl=function(a){var b=/((?:http[s]?:)?\/\/)?(.*)?/.exec(a);return b[2]=b[2].replace(/[\\\/]+/g,"/"),"undefined"!=typeof b[1]?b[1]+b[2]:b[2]},i.prototype.base=function(b){var c=this;return a.reduce(this.parentsArray(b),function(a,b){var e,f=c.config.getUrlFromElem(b);if(f){if(c.config.isAbsoluteUrl(f))return f;e=f}else if(e=b[c.config.restangularFields.route],b[c.config.restangularFields.restangularCollection]){var g=b[c.config.restangularFields.ids];g&&(e+="/"+g.join(","))}else{var h;h=c.config.useCannonicalId?c.config.getCannonicalIdFromElem(b):c.config.getIdFromElem(b),d.isValidId(h)&&!b.singleOne&&(e+="/"+(c.config.encodeIds?encodeURIComponent(h):h))}return a=a.replace(/\/$/,"")+"/"+e,c.normalizeUrl(a)},this.config.baseUrl)},i.prototype.fetchUrl=function(a,b){var c=this.base(a);return b&&(c+="/"+b),c},i.prototype.fetchRequestedUrl=function(a,c){function e(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b.sort()}function f(a,b,c){for(var d=e(a),f=0;f<d.length;f++)b.call(c,a[d[f]],d[f]);return d}function g(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,b?"%20":"+")}var h=this.fetchUrl(a,c),i=a[d.restangularFields.reqParams];if(!i)return h+(this.config.suffix||"");var j=[];return f(i,function(a,c){null!==a&&void 0!==a&&(b.isArray(a)||(a=[a]),b.forEach(a,function(a){b.isObject(a)&&(a=b.toJson(a)),j.push(g(c)+"="+g(a))}))}),h+(this.config.suffix||"")+(h.indexOf("?")===-1?"?":"&")+j.join("&")},d.urlCreatorFactory.path=i};var d={};c.init(this,d),this.$get=["$http","$q",function(e,f){function g(d){function h(b,c,e,f,g){if(c[d.restangularFields.route]=e,c[d.restangularFields.getRestangularUrl]=a.bind(R.fetchUrl,R,c),c[d.restangularFields.getRequestedUrl]=a.bind(R.fetchRequestedUrl,R,c),c[d.restangularFields.addRestangularMethod]=a.bind(N,c),c[d.restangularFields.clone]=a.bind(t,c,c),c[d.restangularFields.reqParams]=a.isEmpty(f)?null:f,c[d.restangularFields.withHttpConfig]=a.bind(B,c),c[d.restangularFields.plain]=a.bind(r,c,c),c[d.restangularFields.restangularized]=!0,c[d.restangularFields.one]=a.bind(i,c,c),c[d.restangularFields.all]=a.bind(j,c,c),c[d.restangularFields.several]=a.bind(k,c,c),c[d.restangularFields.oneUrl]=a.bind(l,c,c),c[d.restangularFields.allUrl]=a.bind(m,c,c),c[d.restangularFields.fromServer]=!!g,b&&d.shouldSaveParent(e)){var h=d.getIdFromElem(b),n=d.getUrlFromElem(b),o=a.union(a.values(a.pick(d.restangularFields,["route","singleOne","parentResource"])),d.extraFields),p=a.pick(b,o);d.isValidId(h)&&d.setIdToElem(p,h,e),d.isValidId(n)&&d.setUrlToElem(p,n,e),c[d.restangularFields.parentResource]=p}else c[d.restangularFields.parentResource]=null;return c}function i(b,c,e,f){var g;if(a.isNumber(c)||a.isNumber(b))throw g="You're creating a Restangular entity with the number ",g+="instead of the route or the parent. For example, you can't call .one(12).",new Error(g);if(a.isUndefined(c))throw g="You're creating a Restangular entity either without the path. ",g+="For example you can't call .one(). Please check if your arguments are valid.",new Error(g);var h={};return d.setIdToElem(h,e,c),d.setFieldToElem(d.restangularFields.singleOne,h,f),u(b,h,c,!1)}function j(a,b){return v(a,[],b,!1)}function k(a,b){var c=[];return c[d.restangularFields.ids]=Array.prototype.splice.call(arguments,2),v(a,c,b,!1)}function l(a,b,c){if(!b)throw new Error("Route is mandatory when creating new Restangular objects.");var e={};return d.setUrlToElem(e,c,b),u(a,e,b,!1)}function m(a,b,c){if(!b)throw new Error("Route is mandatory when creating new Restangular objects.");var e={};return d.setUrlToElem(e,c,b),v(a,e,b,!1)}function n(b,c,e){return b.call=a.bind(o,b),b.get=a.bind(p,b),b[d.restangularFields.restangularCollection]=c,c&&(b.push=a.bind(o,b,"push")),b.$object=e,d.restangularizePromiseInterceptor&&d.restangularizePromiseInterceptor(b),b}function o(a){var b=f.defer(),c=arguments,e={};return this.then(function(d){var f=Array.prototype.slice.call(c,1),g=d[a];g.apply(d,f),e=d,b.resolve(d)}),n(b.promise,this[d.restangularFields.restangularCollection],e)}function p(a){var b=f.defer(),c={};return this.then(function(d){c=d[a],b.resolve(c)}),n(b.promise,this[d.restangularFields.restangularCollection],c)}function q(b,c,e,f){return a.extend(f,e),d.fullResponse?b.resolve(a.extend(c,{data:e})):void b.resolve(e)}function r(b){if(a.isArray(b)){var c=[];return a.each(b,function(a){c.push(d.isRestangularized(a)?r(a):a)}),c}return a.omit(b,a.values(a.omit(d.restangularFields,"id")))}function s(b){b[d.restangularFields.customOperation]=a.bind(M,b);var c={get:M,delete:M};a.each(["put","patch","post"],function(b){c[b]=function(b,c,d,e,f){return a.bind(M,this)(b,d,e,f,c)}}),a.each(c,function(c,d){var e="delete"===d?"remove":d;a.each(["do","custom"],function(f){b[f+d.toUpperCase()]=a.bind(c,b,e)})}),b[d.restangularFields.customGETLIST]=a.bind(A,b),b[d.restangularFields.doGETLIST]=b[d.restangularFields.customGETLIST]}function t(c){var e=b.copy(c);return a.isArray(c)?v(c[d.restangularFields.parentResource],e,c[d.restangularFields.route],c[d.restangularFields.fromServer],c[d.restangularFields.reqParams]):u(c[d.restangularFields.parentResource],e,c[d.restangularFields.route],c[d.restangularFields.fromServer],c[d.restangularFields.restangularCollection],c[d.restangularFields.reqParams])}function u(b,c,e,f,g,i){var j=d.onBeforeElemRestangularized(c,!1,e),k=h(b,j,e,i,f);return d.useCannonicalId&&(k[d.restangularFields.cannonicalId]=d.getIdFromElem(k)),g&&(k[d.restangularFields.getParentList]=function(){return g}),k[d.restangularFields.restangularCollection]=!1,k[d.restangularFields.get]=a.bind(E,k),k[d.restangularFields.getList]=a.bind(A,k),k[d.restangularFields.put]=a.bind(G,k),k[d.restangularFields.post]=a.bind(H,k),k[d.restangularFields.remove]=a.bind(F,k),k[d.restangularFields.head]=a.bind(I,k),k[d.restangularFields.trace]=a.bind(J,k),k[d.restangularFields.options]=a.bind(K,k),k[d.restangularFields.patch]=a.bind(L,k),k[d.restangularFields.save]=a.bind(C,k),s(k),d.transformElem(k,!1,e,Q,!0)}function v(b,c,e,f,g){var i=d.onBeforeElemRestangularized(c,!0,e),j=h(b,i,e,g,f);return j[d.restangularFields.restangularCollection]=!0,j[d.restangularFields.post]=a.bind(H,j,null),j[d.restangularFields.remove]=a.bind(F,j),j[d.restangularFields.head]=a.bind(I,j),j[d.restangularFields.trace]=a.bind(J,j),j[d.restangularFields.putElement]=a.bind(y,j),j[d.restangularFields.options]=a.bind(K,j),j[d.restangularFields.patch]=a.bind(L,j),j[d.restangularFields.get]=a.bind(x,j),j[d.restangularFields.getList]=a.bind(A,j,null),s(j),d.transformElem(j,!0,e,Q,!0)}function w(b,c,d,e){var f=v(b,c,d,e);return a.each(f,function(a){a&&u(b,a,d,e)}),f}function x(a,b,c){return this.customGET(a.toString(),b,c)}function y(a,b,c){var e=this,g=this[a],h=f.defer(),i=[];return i=d.transformElem(i,!0,g[d.restangularFields.route],Q),g.put(b,c).then(function(b){var c=t(e);c[a]=b,i=c,h.resolve(c)},function(a){h.reject(a)}),n(h.promise,!0,i)}function z(a,b,c,e,f,g){var h=d.responseExtractor(a,b,c,e,f,g),i=f.headers("ETag");return h&&i&&(h[d.restangularFields.etag]=i),h}function A(b,c,g){var h=this,i=f.defer(),j="getList",k=R.fetchUrl(this,b),l=b||h[d.restangularFields.route],m=d.fullRequestInterceptor(null,j,l,k,g||{},c||{},this[d.restangularFields.httpConfig]||{}),o=[];o=d.transformElem(o,!0,l,Q);var p="getList";d.jsonp&&(p="jsonp");var r=function(c){var e=c.data,f=c.config.params,g=z(e,j,l,k,c,i);if((a.isUndefined(g)||""===g)&&(g=[]),!a.isArray(g))throw new Error("Response for getList SHOULD be an array and not an object or something else");if(!0===d.plainByDefault)return q(i,c,g,o);var m=a.map(g,function(a){return h[d.restangularFields.restangularCollection]?u(h[d.restangularFields.parentResource],a,h[d.restangularFields.route],!0,g):u(h,a,b,!0,g)});m=a.extend(g,m),h[d.restangularFields.restangularCollection]?q(i,c,v(h[d.restangularFields.parentResource],m,h[d.restangularFields.route],!0,f),o):q(i,c,v(h,m,b,!0,f),o)};return R.resource(this,e,m.httpConfig,m.headers,m.params,b,this[d.restangularFields.etag],j)[p]().then(r,function(b){304===b.status&&h[d.restangularFields.restangularCollection]?q(i,b,h,o):a.every(d.errorInterceptors,function(a){return a(b,i,r)!==!1})&&i.reject(b)}),n(i.promise,!0,o)}function B(a){return this[d.restangularFields.httpConfig]=a,this}function C(b,c){return this[d.restangularFields.fromServer]?this[d.restangularFields.put](b,c):a.bind(D,this)("post",void 0,b,void 0,c)}function D(b,c,g,h,i){var j=this,k=f.defer(),l=g||{},m=c||this[d.restangularFields.route],o=R.fetchUrl(this,c),p=h||this,s=p[d.restangularFields.etag]||("post"!==b?this[d.restangularFields.etag]:null);a.isObject(p)&&d.isRestangularized(p)&&(p=r(p));var t=d.fullRequestInterceptor(p,b,m,o,i||{},l||{},this[d.restangularFields.httpConfig]||{}),v={};v=d.transformElem(v,!1,m,Q);var w=function(a){var c=a.data,e=a.config.params,f=z(c,b,m,o,a,k);if(null!==f&&void 0!==f&&""!==f){var g;if(!0===d.plainByDefault)return q(k,a,f,v);"post"!==b||j[d.restangularFields.restangularCollection]?(g=u(j[d.restangularFields.parentResource],f,j[d.restangularFields.route],!0,null,e),g[d.restangularFields.singleOne]=j[d.restangularFields.singleOne],q(k,a,g,v)):(g=u(j[d.restangularFields.parentResource],f,m,!0,null,e),q(k,a,g,v))}else q(k,a,void 0,v)},x=function(c){304===c.status&&d.isSafe(b)?q(k,c,j,v):a.every(d.errorInterceptors,function(a){return a(c,k,w)!==!1})&&k.reject(c)},y=b,A=a.extend({},t.headers),B=d.isOverridenMethod(b);return B?(y="post",A=a.extend(A,{"X-HTTP-Method-Override":"remove"===b?"DELETE":b.toUpperCase()})):d.jsonp&&"get"===y&&(y="jsonp"),d.isSafe(b)?B?R.resource(this,e,t.httpConfig,A,t.params,c,s,y)[y]({}).then(w,x):R.resource(this,e,t.httpConfig,A,t.params,c,s,y)[y]().then(w,x):R.resource(this,e,t.httpConfig,A,t.params,c,s,y)[y](t.element).then(w,x),n(k.promise,!1,v)}function E(b,c){return a.bind(D,this)("get",void 0,b,void 0,c)}function F(b,c){return a.bind(D,this)("remove",void 0,b,void 0,c)}function G(b,c){return a.bind(D,this)("put",void 0,b,void 0,c)}function H(b,c,d,e){return a.bind(D,this)("post",b,d,c,e)}function I(b,c){return a.bind(D,this)("head",void 0,b,void 0,c)}function J(b,c){return a.bind(D,this)("trace",void 0,b,void 0,c)}function K(b,c){return a.bind(D,this)("options",void 0,b,void 0,c)}function L(b,c,d){return a.bind(D,this)("patch",void 0,c,b,d)}function M(b,c,d,e,f){return a.bind(D,this)(b,c,d,f,e)}function N(b,c,e,f,g,h){var i;i="getList"===c?a.bind(A,this,e):a.bind(M,this,c,e);var j=function(b,c,d){var e=a.defaults({params:b,headers:c,elem:d},{params:f,headers:g,elem:h});return i(e.params,e.headers,e.elem)};d.isSafe(c)?this[b]=j:this[b]=function(a,b,c){return j(b,c,a)}}function O(e){var f=b.copy(a.omit(d,"configuration"));return c.init(f,f),e(f),g(f)}function P(b,c){var e=a.values(d.restangularFields),f={},g=(c||Q).all(b);f.one=a.bind(i,c||Q,c,b),f.post=a.bind(g.post,g),f.getList=a.bind(g.getList,g),f.withHttpConfig=a.bind(g.withHttpConfig,g),f.get=a.bind(g.get,g);for(var h in g)g.hasOwnProperty(h)&&a.isFunction(g[h])&&!a.includes(e,h)&&(f[h]=a.bind(g[h],g));return f}var Q={},R=new d.urlCreatorFactory[d.urlCreator];return R.setConfig(d),c.init(Q,d),Q.copy=a.bind(t,Q),Q.service=a.bind(P,Q),Q.withConfig=a.bind(O,Q),Q.one=a.bind(i,Q,null),Q.all=a.bind(j,Q,null),Q.several=a.bind(k,Q,null),Q.oneUrl=a.bind(l,Q,null),Q.allUrl=a.bind(m,Q,null),Q.stripRestangular=a.bind(r,Q),Q.restangularizeElement=a.bind(u,Q),Q.restangularizeCollection=a.bind(w,Q),Q}return g(d)}]}),c.name});
;/*!
 * jsonformatter
 *
 * Version: 0.6.0 - 2016-08-27T12:58:03.306Z
 * License: Apache-2.0
 */
"use strict";angular.module("jsonFormatter",["RecursionHelper"]).provider("JSONFormatterConfig",function(){var n=!1,e=100,t=5;return{get hoverPreviewEnabled(){return n},set hoverPreviewEnabled(e){n=!!e},get hoverPreviewArrayCount(){return e},set hoverPreviewArrayCount(n){e=parseInt(n,10)},get hoverPreviewFieldCount(){return t},set hoverPreviewFieldCount(n){t=parseInt(n,10)},$get:function(){return{hoverPreviewEnabled:n,hoverPreviewArrayCount:e,hoverPreviewFieldCount:t}}}}).directive("jsonFormatter",["RecursionHelper","JSONFormatterConfig",function(n,e){function t(n){return n.replace('"','"')}function r(n){if(void 0===n)return"";if(null===n)return"Object";if("object"==typeof n&&!n.constructor)return"Object";if(void 0!==n.__proto__&&void 0!==n.__proto__.constructor&&void 0!==n.__proto__.constructor.name)return n.__proto__.constructor.name;var e=/function (.{1,})\(/,t=e.exec(n.constructor.toString());return t&&t.length>1?t[1]:""}function o(n){return null===n?"null":typeof n}function s(n,e){var r=o(n);return"null"===r||"undefined"===r?r:("string"===r&&(e='"'+t(e)+'"'),"function"===r?n.toString().replace(/[\r\n]/g,"").replace(/\{.*\}/,"")+"{…}":e)}function i(n){var e="";return angular.isObject(n)?(e=r(n),angular.isArray(n)&&(e+="["+n.length+"]")):e=s(n,n),e}function a(n){n.isArray=function(){return angular.isArray(n.json)},n.isObject=function(){return angular.isObject(n.json)},n.getKeys=function(){if(n.isObject())return Object.keys(n.json).map(function(n){return""===n?'""':n})},n.type=o(n.json),n.hasKey="undefined"!=typeof n.key,n.getConstructorName=function(){return r(n.json)},"string"===n.type&&("Invalid Date"!==new Date(n.json).toString()&&(n.isDate=!0),0===n.json.indexOf("http")&&(n.isUrl=!0)),n.isEmptyObject=function(){return n.getKeys()&&!n.getKeys().length&&n.isOpen&&!n.isArray()},n.isOpen=!!n.open,n.toggleOpen=function(){n.isOpen=!n.isOpen},n.childrenOpen=function(){return n.open>1?n.open-1:0},n.openLink=function(e){e&&(window.location.href=n.json)},n.parseValue=function(e){return s(n.json,e)},n.showThumbnail=function(){return!!e.hoverPreviewEnabled&&n.isObject()&&!n.isOpen},n.getThumbnail=function(){if(n.isArray())return n.json.length>e.hoverPreviewArrayCount?"Array["+n.json.length+"]":"["+n.json.map(i).join(", ")+"]";var t=n.getKeys(),r=t.slice(0,e.hoverPreviewFieldCount),o=r.map(function(e){return e+":"+i(n.json[e])}),s=t.length>=5?"…":"";return"{"+o.join(", ")+s+"}"}}return{templateUrl:"json-formatter.html",restrict:"E",replace:!0,scope:{json:"=",key:"=",open:"="},compile:function(e){return n.compile(e,a)}}}]),"object"==typeof module&&(module.exports="jsonFormatter"),angular.module("RecursionHelper",[]).factory("RecursionHelper",["$compile",function(n){return{compile:function(e,t){angular.isFunction(t)&&(t={post:t});var r,o=e.contents().remove();return{pre:t&&t.pre?t.pre:null,post:function(e,s){r||(r=n(o)),r(e,function(n){s.append(n)}),t&&t.post&&t.post.apply(null,arguments)}}}}}]),angular.module("jsonFormatter").run(["$templateCache",function(n){n.put("json-formatter.html",'<div ng-init="isOpen = open && open > 0" class="json-formatter-row"><a ng-click="toggleOpen()"><span class="toggler {{isOpen ? \'open\' : \'\'}}" ng-if="isObject()"></span> <span class="key" ng-if="hasKey"><span class="key-text">{{key}}</span><span class="colon">:</span></span> <span class="value"><span ng-if="isObject()"><span class="constructor-name">{{getConstructorName(json)}}</span> <span ng-if="isArray()"><span class="bracket">[</span><span class="number">{{json.length}}</span><span class="bracket">]</span></span></span> <span ng-if="!isObject()" ng-click="openLink(isUrl)" class="{{type}}" ng-class="{date: isDate, url: isUrl}">{{parseValue(json)}}</span></span> <span ng-if="showThumbnail()" class="thumbnail-text">{{getThumbnail()}}</span></a><div class="children" ng-if="getKeys().length && isOpen"><json-formatter ng-repeat="key in getKeys() track by $index" json="json[key]" key="key" open="childrenOpen()"></json-formatter></div><div class="children empty object" ng-if="isEmptyObject()"></div><div class="children empty array" ng-if="getKeys() && !getKeys().length && isOpen && isArray()"></div></div>')}]);
;/*! angular-breadcrumb - v0.4.1-dev-2016-04-12
* http://ncuillery.github.io/angular-breadcrumb
* Copyright (c) 2016 Nicolas Cuillery; Licensed MIT */
(function(window,angular,undefined){'use strict';function isAOlderThanB(scopeA,scopeB){if(angular.equals(scopeA.length,scopeB.length)){return scopeA>scopeB;}else{return scopeA.length>scopeB.length;}}
var $$optionsPool={}
var $$chunksSeparator='@@';function parseStateRef(ref){var parsed=ref.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/);if(!parsed||parsed.length!==4){throw new Error("Invalid state ref '"+ref+"'");}
return{state:parsed[1],paramExpr:parsed[3]||null};}
var $registeredListeners={};function registerListenerOnce(tag,$rootScope,event,fn){var deregisterListenerFn=$registeredListeners[tag];if(deregisterListenerFn!==undefined){deregisterListenerFn();}
deregisterListenerFn=$rootScope.$on(event,fn);$registeredListeners[tag]=deregisterListenerFn;}
function $Breadcrumb(){var $$options={prefixStateName:null,template:'bootstrap3',templateUrl:null,templateLast:'default',templateLastUrl:null,includeAbstract:false};this.setOptions=function(options){angular.extend($$options,options);};this.$get=['$state','$stateParams','$rootScope','$interpolate',function($state,$stateParams,$rootScope,$interpolate){var $lastViewScope=$rootScope;registerListenerOnce('$Breadcrumb.$viewContentLoaded',$rootScope,'$viewContentLoaded',function(event){if(!event.targetScope.ncyBreadcrumbIgnore&&isAOlderThanB(event.targetScope.$id,$lastViewScope.$id)){$lastViewScope=event.targetScope;}});var $$parentState=function(state){var parent=state.parent||(/^(.+)\.[^.]+$/.exec(state.name)||[])[1];var isObjectParent=typeof parent==="object";return isObjectParent?parent.name:parent;};var $$addStateInChain=function(chain,stateRef){var conf,parentParams,ref=parseStateRef(stateRef),force=false,skip=false;for(var i=0,l=chain.length;i<l;i+=1){if(chain[i].name===ref.state){return;}}
conf=$state.get(ref.state);if(conf.ncyBreadcrumb){if(conf.ncyBreadcrumb.force){force=true;}
if(conf.ncyBreadcrumb.skip){skip=true;}
if(conf.ncyBreadcrumb.parent&&conf.ncyBreadcrumb.parent.element){$$optionsPool[conf.ncyBreadcrumb.parent.element]=conf.ncyBreadcrumb.parent;}}
if($$optionsPool[ref.state]&&$$optionsPool[ref.state]["url"]&&($$optionsPool[ref.state]["url"]||$$optionsPool[ref.state]["label"])){skip=false;}
if((!conf.abstract||$$options.includeAbstract||force)&&!skip){if(ref.paramExpr){parentParams=$lastViewScope.$eval(ref.paramExpr);}
if(conf.ncyBreadcrumb&&conf.ncyBreadcrumb.url){conf.ncyBreadcrumbLink=conf.ncyBreadcrumb.url;}
if($$optionsPool[ref.state]&&$$optionsPool[ref.state]["url"]){conf.ncyBreadcrumbLink=$$optionsPool[ref.state]["url"];}else if(!conf.ncyBreadcrumbLink){conf.ncyBreadcrumbLink=$state.href(ref.state,parentParams||$stateParams||{});}
conf.ncyBreadcrumbStateRef=stateRef;chain.unshift(conf);}};var $$breadcrumbParentState=function(stateRef){var ref=parseStateRef(stateRef),conf=$state.get(ref.state);if(conf.ncyBreadcrumb&&conf.ncyBreadcrumb.parent&&conf.ncyBreadcrumb.parent.element){var isFunction=typeof conf.ncyBreadcrumb.parent.element==='function';var parentStateRef=isFunction?conf.ncyBreadcrumb.parent($lastViewScope):conf.ncyBreadcrumb.parent.element;if(parentStateRef){return parentStateRef;}}
return $$parentState(conf);};return{getTemplate:function(templates){if($$options.templateUrl){return null;}else if(templates[$$options.template]){return templates[$$options.template];}else{return $$options.template;}},getTemplateUrl:function(){return $$options.templateUrl;},getTemplateLast:function(templates){if($$options.templateLastUrl){return null;}else if(templates[$$options.templateLast]){return templates[$$options.templateLast];}else{return $$options.templateLast;}},getTemplateLastUrl:function(){return $$options.templateLastUrl;},getStatesChain:function(exitOnFirst){var chain=[];for(var stateRef=$state.$current.self.name;stateRef;stateRef=$$breadcrumbParentState(stateRef)){$$addStateInChain(chain,stateRef);if(exitOnFirst&&chain.length){return chain;}}
if($$options.prefixStateName){$$addStateInChain(chain,$$options.prefixStateName);}
return chain;},getLastStep:function(){var chain=this.getStatesChain(true);return chain.length?chain[0]:undefined;},$getLastViewScope:function(){return $lastViewScope;},$getChunksSeparator:function(){return $$chunksSeparator;}};}];}
var getExpression=function(interpolationFunction){if(interpolationFunction.expressions){return interpolationFunction.expressions;}else{var expressions=[];angular.forEach(interpolationFunction.parts,function(part){if(angular.isFunction(part)){expressions.push(part.exp);}});return expressions;}};var registerWatchers=function(labelWatcherArray,interpolationFunction,viewScope,step,allSteps,$compile){if(!getExpression(interpolationFunction)){return;}
angular.forEach(getExpression(interpolationFunction),function(expression){var watcher=viewScope.$watch(expression,function(){var stepLabel=interpolationFunction(viewScope);if(allSteps&&step.ncyBreadcrumb&&step.ncyBreadcrumb.chunks&&stepLabel){var labelChunks=stepLabel.split($$chunksSeparator)
step.ncyBreadcrumb.chunks.forEach(function(element,elementIndex){var clonedStep=JSON.parse(JSON.stringify({},step));clonedStep.ncyBreadcrumbChunkId=step.name+elementIndex;if(element.type==='directive'){clonedStep.ncyBreadcrumbRenderable=true;clonedStep.ncyBreadcrumbDirective=element.directive;}
clonedStep.ncyBreadcrumbLabel=labelChunks[elementIndex];var forOvverideIndex=allSteps.findIndex(function(existingStep){if(existingStep&&existingStep.ncyBreadcrumbChunkId){return existingStep.ncyBreadcrumbChunkId===clonedStep.ncyBreadcrumbChunkId;}});if(forOvverideIndex!==-1){allSteps[forOvverideIndex]=clonedStep;}else{allSteps.push(clonedStep);}
var stepToRemoveIndex=allSteps.findIndex(function(existingStep){if(existingStep&&existingStep.name&&step&&step.name){return existingStep.name===step.name;}});delete allSteps[stepToRemoveIndex];});}else{step.ncyBreadcrumbLabel=stepLabel;}});labelWatcherArray.push(watcher);});};var deregisterWatchers=function(labelWatcherArray){angular.forEach(labelWatcherArray,function(deregisterWatch){deregisterWatch();});};function BreadcrumbDirective($interpolate,$breadcrumb,$rootScope,$compile){var $$templates={bootstrap2:'<ul class="breadcrumb">'+'<li ng-repeat="step in steps" ng-switch="$last || !!step.abstract" ng-class="{active: $last}">'+'<a ng-switch-when="false" href="{{step.ncyBreadcrumbLink}}">{{step.ncyBreadcrumbLabel}}</a>'+'<span ng-switch-when="true">{{step.ncyBreadcrumbLabel}}</span>'+'<span class="divider" ng-hide="$last">/</span>'+'</li>'+'</ul>',bootstrap3:'<ol id="breadcrumb-bar" class="breadcrumb">'+'<li ng-if="step.ncyBreadcrumbLabel" ng-repeat="step in steps" ng-class="{active: $last || !step.ncyBreadcrumbLink}" '+'ng-switch="$last || !!step.abstract || !step.ncyBreadcrumbLink">'+'<span ng-if="step.ncyBreadcrumbRenderable">'+'<ncy-breadcrumb-renderable '+'directive="{{step.ncyBreadcrumbDirective}}" '+'title="{{ step.ncyBreadcrumbLabel}}" '+'></ncy-breadcrumb-renderable>'+'</span>'+'<span ng-if="!step.ncyBreadcrumbRenderable">'+'<a ng-switch-when="false" href="{{step.ncyBreadcrumbLink}}">{{step.ncyBreadcrumbLabel}}</a>'+'<span ng-switch-when="true">{{step.ncyBreadcrumbLabel}}</span>'+'</span>'+'</li>'+'</ol>'};return{restrict:'AE',replace:true,scope:{},template:$breadcrumb.getTemplate($$templates),templateUrl:$breadcrumb.getTemplateUrl(),link:{post:function postLink(scope){var labelWatchers=[];var renderBreadcrumb=function(){deregisterWatchers(labelWatchers);labelWatchers=[];var viewScope=$breadcrumb.$getLastViewScope();scope.steps=$breadcrumb.getStatesChain();angular.forEach(scope.steps,function(step){if($$optionsPool[step.name]&&$$optionsPool[step.name]["label"]){var parseLabel=$interpolate($$optionsPool[step.name]["label"]);delete $$optionsPool[step.name];step.ncyBreadcrumbLabel=parseLabel(viewScope);registerWatchers(labelWatchers,parseLabel,viewScope,step);}else if(step.ncyBreadcrumb&&step.ncyBreadcrumb.label){var parseLabel=$interpolate(step.ncyBreadcrumb.label);step.ncyBreadcrumbLabel=parseLabel(viewScope);registerWatchers(labelWatchers,parseLabel,viewScope,step,scope.steps,$compile);}else{step.ncyBreadcrumbLabel=step.name;}});};registerListenerOnce('BreadcrumbDirective.$viewContentLoaded',$rootScope,'$viewContentLoaded',function(event){if(!event.targetScope.ncyBreadcrumbIgnore){renderBreadcrumb();}});var viewScope=$breadcrumb.$getLastViewScope();var removeListener=viewScope.$on('BreadcrumbDirectiveRenderTabs',function(event){if(!event.targetScope.ncyBreadcrumbIgnore){renderBreadcrumb();}});viewScope.$on("$destroy",removeListener);renderBreadcrumb();}}};}
BreadcrumbDirective.$inject=['$interpolate','$breadcrumb','$rootScope','$compile'];function BreadcrumbLastDirective($interpolate,$breadcrumb,$rootScope){var $$templates={'default':'{{ncyBreadcrumbLabel}}'};return{restrict:'A',scope:{},template:$breadcrumb.getTemplateLast($$templates),templateUrl:$breadcrumb.getTemplateLastUrl(),compile:function(cElement,cAttrs){var template=cElement.attr(cAttrs.$attr.ncyBreadcrumbLast);if(template){cElement.html(template);}
return{post:function postLink(scope){var labelWatchers=[];var renderLabel=function(){deregisterWatchers(labelWatchers);labelWatchers=[];var viewScope=$breadcrumb.$getLastViewScope();var lastStep=$breadcrumb.getLastStep();if(lastStep){scope.ncyBreadcrumbLink=lastStep.ncyBreadcrumbLink;if(lastStep.ncyBreadcrumb&&lastStep.ncyBreadcrumb.label){var parseLabel=$interpolate(lastStep.ncyBreadcrumb.label);scope.ncyBreadcrumbLabel=parseLabel(viewScope);registerWatchers(labelWatchers,parseLabel,viewScope,scope);}else{scope.ncyBreadcrumbLabel=lastStep.name;}}};registerListenerOnce('BreadcrumbLastDirective.$viewContentLoaded',$rootScope,'$viewContentLoaded',function(event){if(!event.targetScope.ncyBreadcrumbIgnore){renderLabel();}});renderLabel();}};}};}
BreadcrumbLastDirective.$inject=['$interpolate','$breadcrumb','$rootScope'];function BreadcrumbTextDirective($interpolate,$breadcrumb,$rootScope){return{restrict:'A',scope:{},template:'{{ncyBreadcrumbChain}}',compile:function(cElement,cAttrs){var template=cElement.attr(cAttrs.$attr.ncyBreadcrumbText);if(template){cElement.html(template);}
var separator=cElement.attr(cAttrs.$attr.ncyBreadcrumbTextSeparator)||' / ';return{post:function postLink(scope){var labelWatchers=[];var registerWatchersText=function(labelWatcherArray,interpolationFunction,viewScope){angular.forEach(getExpression(interpolationFunction),function(expression){var watcher=viewScope.$watch(expression,function(newValue,oldValue){if(newValue!==oldValue){renderLabel();}});labelWatcherArray.push(watcher);});};var renderLabel=function(){deregisterWatchers(labelWatchers);labelWatchers=[];var viewScope=$breadcrumb.$getLastViewScope();var steps=$breadcrumb.getStatesChain();var combinedLabels=[];angular.forEach(steps,function(step){if(step.ncyBreadcrumb&&step.ncyBreadcrumb.label){var parseLabel=$interpolate(step.ncyBreadcrumb.label);combinedLabels.push(parseLabel(viewScope));registerWatchersText(labelWatchers,parseLabel,viewScope);}else{combinedLabels.push(step.name);}});scope.ncyBreadcrumbChain=combinedLabels.join(separator);};registerListenerOnce('BreadcrumbTextDirective.$viewContentLoaded',$rootScope,'$viewContentLoaded',function(event){if(!event.targetScope.ncyBreadcrumbIgnore){renderLabel();}});renderLabel();}};}};}
BreadcrumbTextDirective.$inject=['$interpolate','$breadcrumb','$rootScope'];angular.module('ncy-angular-breadcrumb',['ui.router.state']).provider('$breadcrumb',$Breadcrumb).directive('ncyBreadcrumb',BreadcrumbDirective).directive('ncyBreadcrumbLast',BreadcrumbLastDirective).directive('ncyBreadcrumbText',BreadcrumbTextDirective);})(window,window.angular);
;"use strict";angular.module("avJsonFormatter",["RecursionHelper"]).provider("JSONFormatterConfig",function n(){var e=!1,t=100,r=5;return{get hoverPreviewEnabled(){return e},set hoverPreviewEnabled(value){e=!!value},get hoverPreviewArrayCount(){return t},set hoverPreviewArrayCount(value){t=parseInt(value,10)},get hoverPreviewFieldCount(){return r},set hoverPreviewFieldCount(value){r=parseInt(value,10)},$get:function(){return{hoverPreviewEnabled:e,hoverPreviewArrayCount:t,hoverPreviewFieldCount:r}}}}).directive("avJsonFormatterOtb",["RecursionHelper","JSONFormatterConfig",function n(e,t){function r(n){if(void 0===n)return"";if(null===n||"object"==typeof n&&!n.constructor)return"Object";if(void 0!==n.__proto__&&void 0!==n.__proto__.constructor&&void 0!==n.__proto__.constructor.name)return n.__proto__.constructor.name;var e=/function (.{1,})\(/.exec(n.constructor.toString());return e&&e.length>1?e[1]:""}function o(n){return null===n?"null":typeof n}function s(n,e){var t,r=o(n);return"null"===r||"undefined"===r?r:("string"===r&&(e='"'+(t=e).replace('"','"')+'"'),"function"===r?n.toString().replace(/[\r\n]/g,"").replace(/\{.*\}/,"")+"{…}":e)}function i(n){var e="";return angular.isObject(n)?(e=r(n),angular.isArray(n)&&(e+="["+n.length+"]")):e=s(n,n),e}function a(n){n.isArray=function(){return angular.isArray(n.json)},n.isObject=function(){return angular.isObject(n.json)},n.getKeys=function(){if(n.isObject())return Object.keys(n.json).map(function(n){return""===n?'""':n})},n.internalInterface={};var e=n.getKeys();for(var a in e)(n.isObject(n.json[e[a]])||n.isArray(n.json[e[a]]))&&(n.internalInterface[e[a]]={});function c(e){for(var t in n.internalInterface)try{n.internalInterface[t].invoke(e,n.open)}catch(r){}}n.externalInterface&&(n.externalInterface.internalInterface=n.internalInterface),n.type=o(n.json),n.hasKey=void 0!==n.key,n.getConstructorName=function(){return r(n.json)},"string"===n.type&&("Invalid Date"!==new Date(n.json).toString()&&(n.isDate=!0),0===n.json.indexOf("http")&&(n.isUrl=!0)),n.isEmptyObject=function(){return n.getKeys()&&!n.getKeys().length&&n.isOpen&&!n.isArray()},n.isOpen=!!n.open,n.toggleOpen=function(){n.isOpen=!n.isOpen},n.childrenOpen=function(){return n.open>1?n.open-1:0},n.openChild=n.childrenOpen(),n.openLink=function(e){e&&(window.location.href=n.json)},n.parseValue=function(e){return s(n.json,e)},void 0!==n.externalInterface&&(n.externalInterface.invoke=function(e,t){if(void 0!==n[e])return n[e](t)}),n.setClose=function(e){n.open=0,n.isOpen=!1,c("setClose")},n.setOpen=function(e){isNaN(e)||(n.open=e,n.isOpen=e>0,n.openChild=n.childrenOpen(),c("setOpen",n.openChild))},n.showThumbnail=function(){return!!t.hoverPreviewEnabled&&n.isObject()&&!n.isOpen},n.key&&(n.path?n.path+="-"+n.key:n.path="path-"+n.key),n.getPath=function(){return n.path},n.getThumbnail=function(){if(n.isArray())return n.json.length>t.hoverPreviewArrayCount?"Array["+n.json.length+"]":"["+n.json.map(i).join(", ")+"]";var e=n.getKeys(),r=e.slice(0,t.hoverPreviewFieldCount).map(function(e){return e+":"+i(n.json[e])}),o=e.length>=5?"…":"";return"{"+r.join(", ")+o+"}"}}return{templateUrl:"av-json-formatter-otb.html",restrict:"E",replace:!0,scope:{externalInterface:"=?",json:"=",key:"=",open:"=",path:"=?"},compile:function(n){return e.compile(n,a)}}}]).directive("avJsonFormatter",["RecursionHelper","JSONFormatterConfig",function n(e,t){function r(n){if(void 0===n)return"";if(null===n||"object"==typeof n&&!n.constructor)return"Object";if(void 0!==n.__proto__&&void 0!==n.__proto__.constructor&&void 0!==n.__proto__.constructor.name)return n.__proto__.constructor.name;var e=/function (.{1,})\(/.exec(n.constructor.toString());return e&&e.length>1?e[1]:""}function o(n){return null===n?"null":typeof n}function s(n,e){var t,r=o(n);return"null"===r||"undefined"===r?r:("string"===r&&(e='"'+(t=e).replace('"','"')+'"'),"function"===r?n.toString().replace(/[\r\n]/g,"").replace(/\{.*\}/,"")+"{…}":e)}function i(n){var e="";return angular.isObject(n)?(e=r(n),angular.isArray(n)&&(e+="["+n.length+"]")):e=s(n,n),e}function a(n){n.isArray=function(){return angular.isArray(n.json)},n.isObject=function(){return angular.isObject(n.json)},n.getKeys=function(){if(n.isObject())return Object.keys(n.json).map(function(n){return""===n?'""':n})},n.type=o(n.json),n.hasKey=void 0!==n.key,n.getConstructorName=function(){return r(n.json)},"string"===n.type&&("Invalid Date"!==new Date(n.json).toString()&&(n.isDate=!0),0===n.json.indexOf("http")&&(n.isUrl=!0)),n.isEmptyObject=function(){return n.getKeys()&&!n.getKeys().length&&n.isOpen&&!n.isArray()},n.isOpen=!!n.open,n.toggleOpen=function(){n.isOpen=!n.isOpen},n.childrenOpen=function(){return n.open>1?n.open-1:0},n.openLink=function(e){e&&(window.location.href=n.json)},n.parseValue=function(e){return s(n.json,e)},n.showThumbnail=function(){return!!t.hoverPreviewEnabled&&n.isObject()&&!n.isOpen},n.key&&(n.path?n.path+="-"+n.key:n.path="path-"+n.key),n.getPath=function(){return n.path},n.getThumbnail=function(){if(n.isArray())return n.json.length>t.hoverPreviewArrayCount?"Array["+n.json.length+"]":"["+n.json.map(i).join(", ")+"]";var e=n.getKeys(),r=e.slice(0,t.hoverPreviewFieldCount).map(function(e){return e+":"+i(n.json[e])}),o=e.length>=5?"…":"";return"{"+r.join(", ")+o+"}"}}return{templateUrl:"av-json-formatter.html",restrict:"E",replace:!0,scope:{json:"=",key:"=",open:"=",path:"=?"},compile:function(n){return e.compile(n,a)}}}]),"object"==typeof module&&(module.exports="avJsonFormatter"),angular.module("RecursionHelper",[]).factory("RecursionHelper",["$compile",function(n){return{compile:function(e,t){angular.isFunction(t)&&(t={post:t});var r,o=e.contents().remove();return{pre:t&&t.pre?t.pre:null,post:function(e,s){r||(r=n(o)),r(e,function(n){s.append(n)}),t&&t.post&&t.post.apply(null,arguments)}}}}}]),angular.module("avJsonFormatter").run(["$templateCache",function(n){n.put("av-json-formatter.html",'<div ng-init="isOpen = open && open > 0" class="json-formatter-row"><a ng-click="toggleOpen()"><span class="toggler {{isOpen ? \'open\' : \'\'}}" ng-if="isObject()"></span> <span class="key" ng-if="hasKey"><span class="key-text {{getPath()}}">{{key}}</span><span class="colon">:</span></span> <span class="value {{getPath()}}"><span ng-if="isObject()"><span class="constructor-name">{{getConstructorName(json)}}</span> <span ng-if="isArray()"><span class="bracket">[</span><span class="number">{{json.length}}</span><span class="bracket">]</span></span></span> <span ng-if="!isObject()" ng-click="openLink(isUrl)" class="{{type}} {{getPath()}}" ng-class="{date: isDate, url: isUrl}">{{parseValue(json)}}</span></span> <span ng-if="showThumbnail()" class="thumbnail-text">{{getThumbnail()}}</span></a><div class="children" ng-show="getKeys().length && isOpen"><json-formatter ng-repeat="key in getKeys() track by $index" path="path" json="json[key]" key="key" open="childrenOpen()"></json-formatter></div><div class="children empty object" ng-if="isEmptyObject()"></div><div class="children empty array" ng-show="getKeys() && !getKeys().length && isOpen && isArray()"></div></div>')}]),angular.module("avJsonFormatter").run(["$templateCache",function(n){n.put("av-json-formatter-otb.html",'<div ng-init="isOpen = open && open > 0" class="json-formatter-row"><a ng-click="toggleOpen()"><span class="toggler {{isOpen ? \'open\' : \'\'}}" ng-if=":: isObject()"></span> <span class="key" ng-if=":: hasKey"><span class="key-text {{:: getPath()}}">{{:: key}}</span><span class="colon">:</span></span> <span class="value {{:: getPath()}}"><span ng-if=":: isObject()"><span class="constructor-name">{{:: getConstructorName(json)}}</span> <span ng-if=":: isArray()"><span class="bracket">[</span><span class="number">{{:: json.length}}</span><span class="bracket">]</span></span></span> <span ng-if=":: !isObject()" ng-click="openLink(isUrl)" class="{{:: type}} {{:: getPath()}}" ng-class="{date: isDate, url: isUrl}">{{:: parseValue(json)}}</span></span> <span ng-if="showThumbnail()" class="thumbnail-text">{{:: getThumbnail()}}</span></a><div class="children" ng-show="getKeys().length && isOpen"><av-json-formatter-otb ng-repeat="key in ::getKeys() track by $index" path="path" json="json[key]" key="key" external-interface="internalInterface[key]" open="openChild"></av-json-formatter-otb></div><div class="children empty object" ng-if=":: isEmptyObject()"></div><div class="children empty array" ng-show="getKeys() && !getKeys().length && isOpen && isArray()"></div></div>')}]);
;/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
var saveAs=saveAs||(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob&&navigator.msSaveOrOpenBlob.bind(navigator))||(function(view){"use strict";if(typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return;}
var
doc=view.document,get_URL=function(){return view.URL||view.webkitURL||view;},save_link=doc.createElementNS("http://www.w3.org/1999/xhtml","a"),can_use_save_link="download"in save_link,click=function(node){var event=doc.createEvent("MouseEvents");event.initMouseEvent("click",true,false,view,0,0,0,0,0,false,false,false,false,0,null);node.dispatchEvent(event);},webkit_req_fs=view.webkitRequestFileSystem,req_fs=view.requestFileSystem||webkit_req_fs||view.mozRequestFileSystem,throw_outside=function(ex){(view.setImmediate||view.setTimeout)(function(){throw ex;},0);},force_saveable_type="application/octet-stream",fs_min_size=0,arbitrary_revoke_timeout=10,revoke=function(file){var revoker=function(){if(typeof file==="string"){get_URL().revokeObjectURL(file);}else{file.remove();}};if(view.chrome){revoker();}else{setTimeout(revoker,arbitrary_revoke_timeout);}},dispatch=function(filesaver,event_types,event){event_types=[].concat(event_types);var i=event_types.length;while(i--){var listener=filesaver["on"+event_types[i]];if(typeof listener==="function"){try{listener.call(filesaver,event||filesaver);}catch(ex){throw_outside(ex);}}}},FileSaver=function(blob,name){var
filesaver=this,type=blob.type,blob_changed=false,object_url,target_view,dispatch_all=function(){dispatch(filesaver,"writestart progress write writeend".split(" "));},fs_error=function(){if(blob_changed||!object_url){object_url=get_URL().createObjectURL(blob);}
if(target_view){target_view.location.href=object_url;}else{var new_tab=view.open(object_url,"_blank");if(new_tab==undefined&&typeof safari!=="undefined"){view.location.href=object_url}}
filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url);},abortable=function(func){return function(){if(filesaver.readyState!==filesaver.DONE){return func.apply(this,arguments);}};},create_if_not_found={create:true,exclusive:false},slice;filesaver.readyState=filesaver.INIT;if(!name){name="download";}
if(can_use_save_link){object_url=get_URL().createObjectURL(blob);save_link.href=object_url;save_link.download=name;click(save_link);filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url);return;}
if(view.chrome&&type&&type!==force_saveable_type){slice=blob.slice||blob.webkitSlice;blob=slice.call(blob,0,blob.size,force_saveable_type);blob_changed=true;}
if(webkit_req_fs&&name!=="download"){name+=".download";}
if(type===force_saveable_type||webkit_req_fs){target_view=view;}
if(!req_fs){fs_error();return;}
fs_min_size+=blob.size;req_fs(view.TEMPORARY,fs_min_size,abortable(function(fs){fs.root.getDirectory("saved",create_if_not_found,abortable(function(dir){var save=function(){dir.getFile(name,create_if_not_found,abortable(function(file){file.createWriter(abortable(function(writer){writer.onwriteend=function(event){target_view.location.href=file.toURL();filesaver.readyState=filesaver.DONE;dispatch(filesaver,"writeend",event);revoke(file);};writer.onerror=function(){var error=writer.error;if(error.code!==error.ABORT_ERR){fs_error();}};"writestart progress write abort".split(" ").forEach(function(event){writer["on"+event]=filesaver["on"+event];});writer.write(blob);filesaver.abort=function(){writer.abort();filesaver.readyState=filesaver.DONE;};filesaver.readyState=filesaver.WRITING;}),fs_error);}),fs_error);};dir.getFile(name,{create:false},abortable(function(file){file.remove();save();}),abortable(function(ex){if(ex.code===ex.NOT_FOUND_ERR){save();}else{fs_error();}}));}),fs_error);}),fs_error);},FS_proto=FileSaver.prototype,saveAs=function(blob,name){return new FileSaver(blob,name);};FS_proto.abort=function(){var filesaver=this;filesaver.readyState=filesaver.DONE;dispatch(filesaver,"abort");};FS_proto.readyState=FS_proto.INIT=0;FS_proto.WRITING=1;FS_proto.DONE=2;FS_proto.error=FS_proto.onwritestart=FS_proto.onprogress=FS_proto.onwrite=FS_proto.onabort=FS_proto.onerror=FS_proto.onwriteend=null;return saveAs;}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content));if(typeof module!=="undefined"&&module!==null){module.exports=saveAs;}else if((typeof define!=="undefined"&&define!==null)&&(define.amd!=null)){define([],function(){return saveAs;});}