One Hat Cyber Team
Your IP :
216.73.216.135
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
opt
/
UniFi
/
webapps
/
ROOT
/
app-unifi
/
js
/
Edit File:
main.hotspot.js
!function(){return function t(e,n,o){function r(a,s){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){return r(e[a][1][t]||t)},c,c.exports,t,e,n,o)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<o.length;a++)r(o[a]);return r}}()({1:[function(t,e,n){},{}],2:[function(t,e,n){"use strict";var o=Object.prototype.hasOwnProperty;function r(t,e){return Array.isArray(t)?function(t,e){for(var n,o="",i="",a=Array.isArray(e),s=0;s<t.length;s++)(n=r(t[s]))&&(a&&e[s]&&(n=l(n)),o=o+i+n,i=" ");return o}(t,e):t&&"object"==typeof t?function(t){var e="",n="";for(var r in t)r&&t[r]&&o.call(t,r)&&(e=e+n+r,n=" ");return e}(t):t||""}function i(t){if(!t)return"";if("object"==typeof t){var e="";for(var n in t)o.call(t,n)&&(e=e+n+":"+t[n]+";");return e}return t+""}function a(t,e,n,o){return!1!==e&&null!=e&&(e||"class"!==t&&"style"!==t)?!0===e?" "+(o?t:t+'="'+t+'"'):("function"==typeof e.toJSON&&(e=e.toJSON()),"string"==typeof e||(e=JSON.stringify(e),n||-1===e.indexOf('"'))?(n&&(e=l(e))," "+t+'="'+e+'"'):" "+t+"='"+e.replace(/'/g,"'")+"'"):""}n.merge=function t(e,n){if(1===arguments.length){for(var o=e[0],r=1;r<e.length;r++)o=t(o,e[r]);return o}for(var a in n)if("class"===a){var s=e[a]||[];e[a]=(Array.isArray(s)?s:[s]).concat(n[a]||[])}else if("style"===a){var s=i(e[a]);s=s&&";"!==s[s.length-1]?s+";":s;var l=i(n[a]);l=l&&";"!==l[l.length-1]?l+";":l,e[a]=s+l}else e[a]=n[a];return e},n.classes=r,n.style=i,n.attr=a,n.attrs=function(t,e){var n="";for(var s in t)if(o.call(t,s)){var l=t[s];if("class"===s){l=r(l),n=a(s,l,!1,e)+n;continue}"style"===s&&(l=i(l)),n+=a(s,l,!1,e)}return n};var s=/["&<>]/;function l(t){var e=""+t,n=s.exec(e);if(!n)return t;var o,r,i,a="";for(o=n.index,r=0;o<e.length;o++){switch(e.charCodeAt(o)){case 34:i=""";break;case 38:i="&";break;case 60:i="<";break;case 62:i=">";break;default:continue}r!==o&&(a+=e.substring(r,o)),r=o+1,a+=i}return r!==o?a+e.substring(r,o):a}n.escape=l,n.rethrow=function e(n,o,r,i){if(!(n instanceof Error))throw n;if(!("undefined"==typeof window&&o||i))throw n.message+=" on line "+r,n;try{i=i||t("fs").readFileSync(o,"utf8")}catch(t){e(n,null,r)}var a=3,s=i.split("\n"),l=Math.max(r-a,0),u=Math.min(s.length,r+a);var a=s.slice(l,u).map(function(t,e){var n=e+l+1;return(n==r?" > ":" ")+n+"| "+t}).join("\n");n.path=o;n.message=(o||"Pug")+":"+r+"\n"+a+"\n\n"+n.message;throw n}},{fs:1}],3:[function(t,e,n){var o,r;o=this,r=function(t){"use strict";var e=function(t){return t},n=function(t){if(null==t)return e;var n,o,r=t.scale[0],i=t.scale[1],a=t.translate[0],s=t.translate[1];return function(t,e){e||(n=o=0);var l=2,u=t.length,c=new Array(u);for(c[0]=(n+=t[0])*r+a,c[1]=(o+=t[1])*i+s;l<u;)c[l]=t[l],++l;return c}},o=function(t){var e,o=n(t.transform),r=1/0,i=r,a=-r,s=-r;function l(t){(t=o(t))[0]<r&&(r=t[0]),t[0]>a&&(a=t[0]),t[1]<i&&(i=t[1]),t[1]>s&&(s=t[1])}function u(t){switch(t.type){case"GeometryCollection":t.geometries.forEach(u);break;case"Point":l(t.coordinates);break;case"MultiPoint":t.coordinates.forEach(l)}}for(e in t.arcs.forEach(function(t){for(var e,n=-1,l=t.length;++n<l;)(e=o(t[n],n))[0]<r&&(r=e[0]),e[0]>a&&(a=e[0]),e[1]<i&&(i=e[1]),e[1]>s&&(s=e[1])}),t.objects)u(t.objects[e]);return[r,i,a,s]},r=function(t,e){for(var n,o=t.length,r=o-e;r<--o;)n=t[r],t[r++]=t[o],t[o]=n};function i(t,e){var n=e.id,o=e.bbox,r=null==e.properties?{}:e.properties,i=a(t,e);return null==n&&null==o?{type:"Feature",properties:r,geometry:i}:null==o?{type:"Feature",id:n,properties:r,geometry:i}:{type:"Feature",id:n,bbox:o,properties:r,geometry:i}}function a(t,e){var o=n(t.transform),i=t.arcs;function a(t,e){e.length&&e.pop();for(var n=i[t<0?~t:t],a=0,s=n.length;a<s;++a)e.push(o(n[a],a));t<0&&r(e,s)}function s(t){return o(t)}function l(t){for(var e=[],n=0,o=t.length;n<o;++n)a(t[n],e);return e.length<2&&e.push(e[0]),e}function u(t){for(var e=l(t);e.length<4;)e.push(e[0]);return e}function c(t){return t.map(u)}return function t(e){var n,o=e.type;switch(o){case"GeometryCollection":return{type:o,geometries:e.geometries.map(t)};case"Point":n=s(e.coordinates);break;case"MultiPoint":n=e.coordinates.map(s);break;case"LineString":n=l(e.arcs);break;case"MultiLineString":n=e.arcs.map(l);break;case"Polygon":n=c(e.arcs);break;case"MultiPolygon":n=e.arcs.map(c);break;default:return null}return{type:o,coordinates:n}}(e)}var s=function(t,e){var n={},o={},r={},i=[],a=-1;function s(t,e){for(var o in t){var r=t[o];delete e[r.start],delete r.start,delete r.end,r.forEach(function(t){n[t<0?~t:t]=1}),i.push(r)}}return e.forEach(function(n,o){var r,i=t.arcs[n<0?~n:n];i.length<3&&!i[1][0]&&!i[1][1]&&(r=e[++a],e[a]=n,e[o]=r)}),e.forEach(function(e){var n,i,a=function(e){var n,o=t.arcs[e<0?~e:e],r=o[0];t.transform?(n=[0,0],o.forEach(function(t){n[0]+=t[0],n[1]+=t[1]})):n=o[o.length-1];return e<0?[n,r]:[r,n]}(e),s=a[0],l=a[1];if(n=r[s])if(delete r[n.end],n.push(e),n.end=l,i=o[l]){delete o[i.start];var u=i===n?n:n.concat(i);o[u.start=n.start]=r[u.end=i.end]=u}else o[n.start]=r[n.end]=n;else if(n=o[l])if(delete o[n.start],n.unshift(e),n.start=s,i=r[s]){delete r[i.end];var c=i===n?n:i.concat(n);o[c.start=i.start]=r[c.end=n.end]=c}else o[n.start]=r[n.end]=n;else o[(n=[e]).start=s]=r[n.end=l]=n}),s(r,o),s(o,r),e.forEach(function(t){n[t<0?~t:t]||i.push([t])}),i};function l(t,e,n){var o,r,i;if(arguments.length>1)o=function(t,e,n){var o,r=[],i=[];function a(t){var e=t<0?~t:t;(i[e]||(i[e]=[])).push({i:t,g:o})}function s(t){t.forEach(a)}function l(t){t.forEach(s)}return function t(e){switch(o=e,e.type){case"GeometryCollection":e.geometries.forEach(t);break;case"LineString":s(e.arcs);break;case"MultiLineString":case"Polygon":l(e.arcs);break;case"MultiPolygon":e.arcs.forEach(l)}}(e),i.forEach(null==n?function(t){r.push(t[0].i)}:function(t){n(t[0].g,t[t.length-1].g)&&r.push(t[0].i)}),r}(0,e,n);else for(r=0,o=new Array(i=t.arcs.length);r<i;++r)o[r]=r;return{type:"MultiLineString",arcs:s(t,o)}}function u(t,e){var n={},o=[],r=[];function i(t){t.forEach(function(e){e.forEach(function(e){(n[e=e<0?~e:e]||(n[e]=[])).push(t)})}),o.push(t)}function l(e){return function(t){for(var e,n=-1,o=t.length,r=t[o-1],i=0;++n<o;)e=r,r=t[n],i+=e[0]*r[1]-e[1]*r[0];return Math.abs(i)}(a(t,{type:"Polygon",arcs:[e]}).coordinates[0])}return e.forEach(function t(e){switch(e.type){case"GeometryCollection":e.geometries.forEach(t);break;case"Polygon":i(e.arcs);break;case"MultiPolygon":e.arcs.forEach(i)}}),o.forEach(function(t){if(!t._){var e=[],o=[t];for(t._=1,r.push(e);t=o.pop();)e.push(t),t.forEach(function(t){t.forEach(function(t){n[t<0?~t:t].forEach(function(t){t._||(t._=1,o.push(t))})})})}}),o.forEach(function(t){delete t._}),{type:"MultiPolygon",arcs:r.map(function(e){var o,r=[];if(e.forEach(function(t){t.forEach(function(t){t.forEach(function(t){n[t<0?~t:t].length<2&&r.push(t)})})}),(o=(r=s(t,r)).length)>1)for(var i,a,u=1,c=l(r[0]);u<o;++u)(i=l(r[u]))>c&&(a=r[0],r[0]=r[u],r[u]=a,c=i);return r})}}var c=function(t,e){for(var n=0,o=t.length;n<o;){var r=n+o>>>1;t[r]<e?n=r+1:o=r}return n},p=function(t){if(null==t)return e;var n,o,r=t.scale[0],i=t.scale[1],a=t.translate[0],s=t.translate[1];return function(t,e){e||(n=o=0);var l=2,u=t.length,c=new Array(u),p=Math.round((t[0]-a)/r),d=Math.round((t[1]-s)/i);for(c[0]=p-n,n=p,c[1]=d-o,o=d;l<u;)c[l]=t[l],++l;return c}};t.bbox=o,t.feature=function(t,e){return"GeometryCollection"===e.type?{type:"FeatureCollection",features:e.geometries.map(function(e){return i(t,e)})}:i(t,e)},t.mesh=function(t){return a(t,l.apply(this,arguments))},t.meshArcs=l,t.merge=function(t){return a(t,u.apply(this,arguments))},t.mergeArcs=u,t.neighbors=function(t){var e={},n=t.map(function(){return[]});function o(t,n){t.forEach(function(t){t<0&&(t=~t);var o=e[t];o?o.push(n):e[t]=[n]})}function r(t,e){t.forEach(function(t){o(t,e)})}var i={LineString:o,MultiLineString:r,Polygon:r,MultiPolygon:function(t,e){t.forEach(function(t){r(t,e)})}};for(var a in t.forEach(function t(e,n){"GeometryCollection"===e.type?e.geometries.forEach(function(e){t(e,n)}):e.type in i&&i[e.type](e.arcs,n)}),e)for(var s=e[a],l=s.length,u=0;u<l;++u)for(var p=u+1;p<l;++p){var d,f=s[u],h=s[p];(d=n[f])[a=c(d,h)]!==h&&d.splice(a,0,h),(d=n[h])[a=c(d,f)]!==f&&d.splice(a,0,f)}return n},t.quantize=function(t,e){if(t.transform)throw new Error("already quantized");if(e&&e.scale)l=t.bbox;else{if(!((n=Math.floor(e))>=2))throw new Error("n must be ≥2");var n,r=(l=t.bbox||o(t))[0],i=l[1],a=l[2],s=l[3];e={scale:[a-r?(a-r)/(n-1):1,s-i?(s-i)/(n-1):1],translate:[r,i]}}var l,u,c=p(e),d=t.objects,f={};function h(t){return c(t)}function g(t){var e;switch(t.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:t.geometries.map(g)};break;case"Point":e={type:"Point",coordinates:h(t.coordinates)};break;case"MultiPoint":e={type:"MultiPoint",coordinates:t.coordinates.map(h)};break;default:return t}return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),null!=t.properties&&(e.properties=t.properties),e}for(u in d)f[u]=g(d[u]);return{type:"Topology",bbox:l,transform:e,objects:f,arcs:t.arcs.map(function(t){var e,n=0,o=1,r=t.length,i=new Array(r);for(i[0]=c(t[0],0);++n<r;)((e=c(t[n],n))[0]||e[1])&&(i[o++]=e);return 1===o&&(i[o++]=[0,0]),i.length=o,i})}},t.transform=n,t.untransform=p,Object.defineProperty(t,"__esModule",{value:!0})},"object"==typeof n&&void 0!==e?r(n):"function"==typeof define&&define.amd?define(["exports"],r):r(o.topojson=o.topojson||{})},{}],4:[function(t,e,n){var o,r;o=this,r=function(t){"use strict";var e=function(t,e,n,o,r,i){3===arguments.length&&(o=i=Array,r=null);for(var a=new o(t=1<<Math.max(4,Math.ceil(Math.log(t)/Math.LN2))),s=new i(t),l=t-1,u=0;u<t;++u)a[u]=r;return{set:function(o,i){for(var u=e(o)&l,c=a[u],p=0;c!=r;){if(n(c,o))return s[u]=i;if(++p>=t)throw new Error("full hashmap");c=a[u=u+1&l]}return a[u]=o,s[u]=i,i},maybeSet:function(o,i){for(var u=e(o)&l,c=a[u],p=0;c!=r;){if(n(c,o))return s[u];if(++p>=t)throw new Error("full hashmap");c=a[u=u+1&l]}return a[u]=o,s[u]=i,i},get:function(o,i){for(var u=e(o)&l,c=a[u],p=0;c!=r;){if(n(c,o))return s[u];if(++p>=t)break;c=a[u=u+1&l]}return i},keys:function(){for(var t=[],e=0,n=a.length;e<n;++e){var o=a[e];o!=r&&t.push(o)}return t}}},n=function(t,e){return t[0]===e[0]&&t[1]===e[1]},o=new ArrayBuffer(16),r=new Float64Array(o),i=new Uint32Array(o),a=function(t){r[0]=t[0],r[1]=t[1];var e=i[0]^i[1];return 2147483647&(e=e<<5^e>>7^i[2]^i[3])},s=function(t){var o,r,i,s,l=t.coordinates,u=t.lines,c=t.rings,p=function(){for(var t=e(1.4*l.length,A,O,Int32Array,-1,Int32Array),n=new Int32Array(l.length),o=0,r=l.length;o<r;++o)n[o]=t.maybeSet(o,o);return n}(),d=new Int32Array(l.length),f=new Int32Array(l.length),h=new Int32Array(l.length),g=new Int8Array(l.length),v=0;for(o=0,r=l.length;o<r;++o)d[o]=f[o]=h[o]=-1;for(o=0,r=u.length;o<r;++o){var m=u[o],y=m[0],b=m[1];for(i=p[y],s=p[++y],++v,g[i]=1;++y<=b;)T(o,i,i=s,s=p[y]);++v,g[s]=1}for(o=0,r=l.length;o<r;++o)d[o]=-1;for(o=0,r=c.length;o<r;++o){var _=c[o],C=_[0]+1,E=_[1];for(T(o,p[E-1],i=p[C-1],s=p[C]);++C<=E;)T(o,i,i=s,s=p[C])}function T(t,e,n,o){if(d[n]!==t){d[n]=t;var r=f[n];if(r>=0){var i=h[n];r===e&&i===o||r===o&&i===e||(++v,g[n]=1)}else f[n]=e,h[n]=o}}function A(t){return a(l[t])}function O(t,e){return n(l[t],l[e])}d=f=h=null;var w,P=function(t,e,n,o,r){3===arguments.length&&(o=Array,r=null);for(var i=new o(t=1<<Math.max(4,Math.ceil(Math.log(t)/Math.LN2))),a=t-1,s=0;s<t;++s)i[s]=r;return{add:function(o){for(var s=e(o)&a,l=i[s],u=0;l!=r;){if(n(l,o))return!0;if(++u>=t)throw new Error("full hashset");l=i[s=s+1&a]}return i[s]=o,!0},has:function(o){for(var s=e(o)&a,l=i[s],u=0;l!=r;){if(n(l,o))return!0;if(++u>=t)break;l=i[s=s+1&a]}return!1},values:function(){for(var t=[],e=0,n=i.length;e<n;++e){var o=i[e];o!=r&&t.push(o)}return t}}}(1.4*v,a,n);for(o=0,r=l.length;o<r;++o)g[w=p[o]]&&P.add(l[w]);return P};function l(t,e,n){for(var o,r=e+(n---e>>1);e<r;++e,--n)o=t[e],t[e]=t[n],t[n]=o}function u(t){var e,n=c(t.geometry);for(e in null!=t.id&&(n.id=t.id),null!=t.bbox&&(n.bbox=t.bbox),t.properties){n.properties=t.properties;break}return n}function c(t){if(null==t)return{type:null};var e="GeometryCollection"===t.type?{type:"GeometryCollection",geometries:t.geometries.map(c)}:"Point"===t.type||"MultiPoint"===t.type?{type:t.type,coordinates:t.coordinates}:{type:t.type,arcs:t.coordinates};return null!=t.bbox&&(e.bbox=t.bbox),e}function p(t){var e,n=t[0],o=t[1];return o<n&&(e=n,n=o,o=e),n+31*o}function d(t,e){var n,o=t[0],r=t[1],i=e[0],a=e[1];return r<o&&(n=o,o=r,r=n),a<i&&(n=i,i=a,a=n),o===i&&r===a}t.topology=function(t,o){var r=function(t){var e=1/0,n=1/0,o=-1/0,r=-1/0;function i(t){null!=t&&a.hasOwnProperty(t.type)&&a[t.type](t)}var a={GeometryCollection:function(t){t.geometries.forEach(i)},Point:function(t){s(t.coordinates)},MultiPoint:function(t){t.coordinates.forEach(s)},LineString:function(t){l(t.arcs)},MultiLineString:function(t){t.arcs.forEach(l)},Polygon:function(t){t.arcs.forEach(l)},MultiPolygon:function(t){t.arcs.forEach(u)}};function s(t){var i=t[0],a=t[1];i<e&&(e=i),i>o&&(o=i),a<n&&(n=a),a>r&&(r=a)}function l(t){t.forEach(s)}function u(t){t.forEach(l)}for(var c in t)i(t[c]);return o>=e&&r>=n?[e,n,o,r]:void 0}(t=function(t){var e,n,o={};for(e in t)o[e]=null==(n=t[e])?{type:null}:("FeatureCollection"===n.type?function(t){var e={type:"GeometryCollection",geometries:t.features.map(u)};return null!=t.bbox&&(e.bbox=t.bbox),e}:"Feature"===n.type?u:c)(n);return o}(t)),i=o>0&&r&&function(t,e,n){var o=e[0],r=e[1],i=e[2],a=e[3],s=i-o?(n-1)/(i-o):1,l=a-r?(n-1)/(a-r):1;function u(t){return[Math.round((t[0]-o)*s),Math.round((t[1]-r)*l)]}function c(t,e){for(var n,i,a,u,c,p=-1,d=0,f=t.length,h=new Array(f);++p<f;)n=t[p],u=Math.round((n[0]-o)*s),c=Math.round((n[1]-r)*l),u===i&&c===a||(h[d++]=[i=u,a=c]);for(h.length=d;d<e;)d=h.push([h[0][0],h[0][1]]);return h}function p(t){return c(t,2)}function d(t){return c(t,4)}function f(t){return t.map(d)}function h(t){null!=t&&g.hasOwnProperty(t.type)&&g[t.type](t)}var g={GeometryCollection:function(t){t.geometries.forEach(h)},Point:function(t){t.coordinates=u(t.coordinates)},MultiPoint:function(t){t.coordinates=t.coordinates.map(u)},LineString:function(t){t.arcs=p(t.arcs)},MultiLineString:function(t){t.arcs=t.arcs.map(p)},Polygon:function(t){t.arcs=f(t.arcs)},MultiPolygon:function(t){t.arcs=t.arcs.map(f)}};for(var v in t)h(t[v]);return{scale:[1/s,1/l],translate:[o,r]}}(t,r,o),f=function(t){var o,r,i,s,l=t.coordinates,u=t.lines,c=t.rings,p=u.length+c.length;for(delete t.lines,delete t.rings,i=0,s=u.length;i<s;++i)for(o=u[i];o=o.next;)++p;for(i=0,s=c.length;i<s;++i)for(r=c[i];r=r.next;)++p;var d=e(2*p*1.4,a,n),f=t.arcs=[];for(i=0,s=u.length;i<s;++i){o=u[i];do{h(o)}while(o=o.next)}for(i=0,s=c.length;i<s;++i)if((r=c[i]).next)do{h(r)}while(r=r.next);else g(r);function h(t){var e,n,o,r,i,a,s,u;if(o=d.get(e=l[t[0]]))for(s=0,u=o.length;s<u;++s)if(v(r=o[s],t))return t[0]=r[0],void(t[1]=r[1]);if(i=d.get(n=l[t[1]]))for(s=0,u=i.length;s<u;++s)if(m(a=i[s],t))return t[1]=a[0],void(t[0]=a[1]);o?o.push(t):d.set(e,[t]),i?i.push(t):d.set(n,[t]),f.push(t)}function g(t){var e,n,o,r,i;if(n=d.get(l[t[0]]))for(r=0,i=n.length;r<i;++r){if(y(o=n[r],t))return t[0]=o[0],void(t[1]=o[1]);if(b(o,t))return t[0]=o[1],void(t[1]=o[0])}if(n=d.get(e=l[t[0]+_(t)]))for(r=0,i=n.length;r<i;++r){if(y(o=n[r],t))return t[0]=o[0],void(t[1]=o[1]);if(b(o,t))return t[0]=o[1],void(t[1]=o[0])}n?n.push(t):d.set(e,[t]),f.push(t)}function v(t,e){var o=t[0],r=e[0],i=t[1];if(o-i!=r-e[1])return!1;for(;o<=i;++o,++r)if(!n(l[o],l[r]))return!1;return!0}function m(t,e){var o=t[0],r=e[0],i=t[1],a=e[1];if(o-i!=r-a)return!1;for(;o<=i;++o,--a)if(!n(l[o],l[a]))return!1;return!0}function y(t,e){var o=t[0],r=e[0],i=t[1]-o;if(i!==e[1]-r)return!1;for(var a=_(t),s=_(e),u=0;u<i;++u)if(!n(l[o+(u+a)%i],l[r+(u+s)%i]))return!1;return!0}function b(t,e){var o=t[0],r=e[0],i=t[1],a=e[1],s=i-o;if(s!==a-r)return!1;for(var u=_(t),c=s-_(e),p=0;p<s;++p)if(!n(l[o+(p+u)%s],l[a-(p+c)%s]))return!1;return!0}function _(t){for(var e=t[0],n=t[1],o=e,r=o,i=l[o];++o<n;){var a=l[o];(a[0]<i[0]||a[0]===i[0]&&a[1]<i[1])&&(r=o,i=a)}return r-e}return t}(function(t){var e,n,o,r,i,a,u,c=s(t),p=t.coordinates,d=t.lines,f=t.rings;for(n=0,o=d.length;n<o;++n)for(var h=d[n],g=h[0],v=h[1];++g<v;)c.has(p[g])&&(e={0:g,1:h[1]},h[1]=g,h=h.next=e);for(n=0,o=f.length;n<o;++n)for(var m=f[n],y=m[0],b=y,_=m[1],C=c.has(p[y]);++b<_;)c.has(p[b])&&(C?(e={0:b,1:m[1]},m[1]=b,m=m.next=e):(u=_-b,l(r=p,i=y,a=_),l(r,i,i+u),l(r,i+u,a),p[_]=p[y],C=!0,b=y));return t}(function(t){var e=-1,n=[],o=[],r=[];function i(t){t&&a.hasOwnProperty(t.type)&&a[t.type](t)}var a={GeometryCollection:function(t){t.geometries.forEach(i)},LineString:function(t){t.arcs=s(t.arcs)},MultiLineString:function(t){t.arcs=t.arcs.map(s)},Polygon:function(t){t.arcs=t.arcs.map(l)},MultiPolygon:function(t){t.arcs=t.arcs.map(u)}};function s(t){for(var o=0,i=t.length;o<i;++o)r[++e]=t[o];var a={0:e-i+1,1:e};return n.push(a),a}function l(t){for(var n=0,i=t.length;n<i;++n)r[++e]=t[n];var a={0:e-i+1,1:e};return o.push(a),a}function u(t){return t.map(l)}for(var c in t)i(t[c]);return{type:"Topology",coordinates:r,lines:n,rings:o,objects:t}}(t))),h=f.coordinates,g=e(1.4*f.arcs.length,p,d);function v(t){t&&m.hasOwnProperty(t.type)&&m[t.type](t)}t=f.objects,f.bbox=r,f.arcs=f.arcs.map(function(t,e){return g.set(t,e),h.slice(t[0],t[1]+1)}),delete f.coordinates,h=null;var m={GeometryCollection:function(t){t.geometries.forEach(v)},LineString:function(t){t.arcs=y(t.arcs)},MultiLineString:function(t){t.arcs=t.arcs.map(y)},Polygon:function(t){t.arcs=t.arcs.map(y)},MultiPolygon:function(t){t.arcs=t.arcs.map(b)}};function y(t){var e=[];do{var n=g.get(t);e.push(t[0]<t[1]?n:~n)}while(t=t.next);return e}function b(t){return t.map(y)}for(var _ in t)v(t[_]);return i&&(f.transform=i,f.arcs=function(t){for(var e=-1,n=t.length;++e<n;){for(var o,r,i=t[e],a=0,s=1,l=i.length,u=i[0],c=u[0],p=u[1];++a<l;)o=(u=i[a])[0],r=u[1],o===c&&r===p||(i[s++]=[o-c,r-p],c=o,p=r);1===s&&(i[s++]=[0,0]),i.length=s}return t}(f.arcs)),f},Object.defineProperty(t,"__esModule",{value:!0})},"object"==typeof n&&void 0!==e?r(n):"function"==typeof define&&define.amd?define(["exports"],r):r(o.topojson=o.topojson||{})},{}],5:[function(t,e,n){var o,r;o=this,r=function(t,e){"use strict";function n(){return!0}function o(t){return t}function r(t){return null!=t.type}var i=function(t){var e,n=new Array(t.arcs.length),o=0;function r(t){switch(t.type){case"GeometryCollection":t.geometries.forEach(r);break;case"Polygon":i(t.arcs);break;case"MultiPolygon":t.arcs.forEach(i)}}function i(t){for(var e=0,r=t.length;e<r;++e,++o)for(var i=t[e],a=0,s=i.length;a<s;++a){var l=i[a];l<0&&(l=~l);var u=n[l];null==u?n[l]=o:u!==o&&(n[l]=-1)}}for(e in t.objects)r(t.objects[e]);return function(t){for(var e,o=0,r=t.length;o<r;++o)if(-1===n[(e=t[o])<0?~e:e])return!0;return!1}};function a(t){var e=t[0],n=t[1],o=t[2];return Math.abs((e[0]-o[0])*(n[1]-e[1])-(e[0]-n[0])*(o[1]-e[1]))/2}function s(t){for(var e,n=-1,o=t.length,r=t[o-1],i=0;++n<o;)e=r,r=t[n],i+=e[0]*r[1]-e[1]*r[0];return Math.abs(i)/2}var l=function(t,n,o){return n=null==n?Number.MIN_VALUE:+n,null==o&&(o=s),function(r,i){return o(e.feature(t,{type:"Polygon",arcs:[r]}).geometry.coordinates[0],i)>=n}};function u(t,e){return t[1][2]-e[1][2]}function c(t){return[t[0],t[1],0]}function p(t,e){return e-t}var d=Math.PI,f=2*d,h=d/4,g=d/180,v=Math.abs,m=Math.atan2,y=Math.cos,b=Math.sin;function _(t,e){for(var n,o,r,i=0,a=t.length,s=0,l=t[e?i++:a-1],u=l[0]*g,c=l[1]*g/2+h,p=y(c),d=b(c);i<a;++i){n=u,u=(l=t[i])[0]*g,c=l[1]*g/2+h,o=p,p=y(c),r=d,d=b(c);var f=u-n,v=f>=0?1:-1,_=v*f,C=r*d,E=o*p+C*y(_),T=C*v*b(_);s+=m(T,E)}return s}t.filter=function(t,e){var i,a=t.objects,s={};function l(t){var e,n;switch(t.type){case"Polygon":e=(n=u(t.arcs))?{type:"Polygon",arcs:n}:{type:null};break;case"MultiPolygon":e=(n=t.arcs.map(u).filter(o)).length?{type:"MultiPolygon",arcs:n}:{type:null};break;case"GeometryCollection":e=(n=t.geometries.map(l).filter(r)).length?{type:"GeometryCollection",geometries:n}:{type:null};break;default:return t}return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),null!=t.properties&&(e.properties=t.properties),e}function u(t){return t.length&&(n=t[0],e(n,!1))?[t[0]].concat(t.slice(1).filter(c)):null;var n}function c(t){return e(t,!0)}for(i in null==e&&(e=n),a)s[i]=l(a[i]);return function(t){var e,n,o=t.objects,r={},i=t.arcs,a=i.length,s=-1,l=new Array(a),u=0,c=-1;function p(t){switch(t.type){case"GeometryCollection":t.geometries.forEach(p);break;case"LineString":f(t.arcs);break;case"MultiLineString":case"Polygon":t.arcs.forEach(f);break;case"MultiPolygon":t.arcs.forEach(h)}}function d(t){t<0&&(t=~t),l[t]||(l[t]=1,++u)}function f(t){t.forEach(d)}function h(t){t.forEach(f)}function g(t){var e;switch(t.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:t.geometries.map(g)};break;case"LineString":e={type:"LineString",arcs:m(t.arcs)};break;case"MultiLineString":e={type:"MultiLineString",arcs:t.arcs.map(m)};break;case"Polygon":e={type:"Polygon",arcs:t.arcs.map(m)};break;case"MultiPolygon":e={type:"MultiPolygon",arcs:t.arcs.map(y)};break;default:return t}return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),null!=t.properties&&(e.properties=t.properties),e}function v(t){return t<0?~l[~t]:l[t]}function m(t){return t.map(v)}function y(t){return t.map(m)}for(n in o)p(o[n]);for(e=new Array(u);++s<a;)l[s]&&(l[s]=++c,e[c]=i[s]);for(n in o)r[n]=g(o[n]);return{type:"Topology",bbox:t.bbox,transform:t.transform,objects:r,arcs:e}}({type:"Topology",bbox:t.bbox,transform:t.transform,objects:s,arcs:t.arcs})},t.filterAttached=i,t.filterAttachedWeight=function(t,e,n){var o=i(t),r=l(t,e,n);return function(t,e){return o(t,e)||r(t,e)}},t.filterWeight=l,t.planarRingArea=s,t.planarTriangleArea=a,t.presimplify=function(t,n){var o=t.transform?e.transform(t.transform):c,r=function(){var t={},e=[],n=0;function o(t,n){for(;n>0;){var o=(n+1>>1)-1,r=e[o];if(u(t,r)>=0)break;e[r._=n]=r,e[t._=n=o]=t}}function r(t,o){for(;;){var r=o+1<<1,i=r-1,a=o,s=e[a];if(i<n&&u(e[i],s)<0&&(s=e[a=i]),r<n&&u(e[r],s)<0&&(s=e[a=r]),a===o)break;e[s._=o]=s,e[t._=o=a]=t}}return t.push=function(t){return o(e[t._=n]=t,n++),n},t.pop=function(){if(!(n<=0)){var t,o=e[0];return--n>0&&(t=e[n],r(e[t._=0]=t,0)),o}},t.remove=function(t){var i,a=t._;if(e[a]===t)return a!==--n&&(u(i=e[n],t)<0?o:r)(e[i._=a]=i,a),a},t}();null==n&&(n=a);var i=t.arcs.map(function(t){var e,i,a,l=[],u=0;for(i=1,a=(t=t.map(o)).length-1;i<a;++i)(e=[t[i-1],t[i],t[i+1]])[1][2]=n(e),l.push(e),r.push(e);for(t[0][2]=t[a][2]=1/0,i=0,a=l.length;i<a;++i)(e=l[i]).previous=l[i-1],e.next=l[i+1];for(;e=r.pop();){var c=e.previous,p=e.next;e[1][2]<u?e[1][2]=u:u=e[1][2],c&&(c.next=p,c[2]=e[2],s(c)),p&&(p.previous=c,p[0]=e[0],s(p))}return t});function s(t){r.remove(t),t[1][2]=n(t),r.push(t)}return{type:"Topology",bbox:t.bbox,objects:t.objects,arcs:i}},t.quantile=function(t,e){var n=[];return t.arcs.forEach(function(t){t.forEach(function(t){isFinite(t[2])&&n.push(t[2])})}),n.length&&function(t,e){if(n=t.length){if((e=+e)<=0||n<2)return t[0];if(e>=1)return t[n-1];var n,o=(n-1)*e,r=Math.floor(o),i=t[r],a=t[r+1];return i+(a-i)*(o-r)}}(n.sort(p),e)},t.simplify=function(t,e){e=null==e?Number.MIN_VALUE:+e;var n=t.arcs.map(function(t){for(var n,o=-1,r=0,i=t.length,a=new Array(i);++o<i;)(n=t[o])[2]>=e&&(a[r++]=[n[0],n[1]]);return a.length=r,a});return{type:"Topology",transform:t.transform,bbox:t.bbox,objects:t.objects,arcs:n}},t.sphericalRingArea=function(t,e){var n=_(t,!0);return e&&(n*=-1),2*(n<0?f+n:n)},t.sphericalTriangleArea=function(t){return 2*v(_(t,!1))},Object.defineProperty(t,"__esModule",{value:!0})},"object"==typeof n&&void 0!==e?r(n,t("topojson-client")):"function"==typeof define&&define.amd?define(["exports","topojson-client"],r):r(o.topojson=o.topojson||{},o.topojson)},{"topojson-client":3}],6:[function(t,e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var o=t("topojson-client"),r=t("topojson-server"),i=t("topojson-simplify");Object.keys(o).forEach(function(t){n[t]=o[t]}),Object.keys(r).forEach(function(t){n[t]=r[t]}),Object.keys(i).forEach(function(t){n[t]=i[t]})},{"topojson-client":3,"topojson-server":4,"topojson-simplify":5}],7:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("AgeChartController",["hotspotAnalyticsUtils","transactions",function(t,e){return new(function(){function n(){var t=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),this.chartData=[],this._INITIAL_AGE_DATA={users:0,males:0,females:0},this._INITIAL_AGE_RANGES=["< 13","13-17","18-20","21+"].reduce(function(e,n){return e[n]=t._INITIAL_AGE_DATA,e},{}),this.initConfig(),this.prepareCharts()}return o(n,[{key:"$onInit",value:function(){e.repository.collection.on("sync",this.prepareCharts,this)}},{key:"$onDestroy",value:function(){e.repository.collection.off("sync",this.prepareCharts,this)}},{key:"initConfig",value:function(){this.chartConfig={valueProperties:["users"],withXLabels:!0,unit:"",getXLabel:function(t){return t.ageRange},getYLabel:function(t){return t}}}},{key:"updateConfig",value:function(){}},{key:"prepareCharts",value:function(){this.prepareData(e.repository.collection),this.updateConfig()}},{key:"prepareData",value:function(){var n=this,o=e.repository.collection.filter(function(t){return!!t.get("age_range")}).reduce(function(e,o){var r=t.formatAgeRange(o.get("age_range"));return e[r]||(e[r]=angular.copy(n._INITIAL_AGE_DATA)),e[r]={users:e[r].users+1,males:e[r].males+("male"===o.get("gender")?1:0),females:e[r].females+("female"===o.get("gender")?1:0)},e},angular.copy(this._INITIAL_AGE_RANGES));this.chartData=Object.keys(o).map(function(t){return{ageRange:t,users:o[t].users,males:o[t].males,females:o[t].females}})}}]),n}())}])},{}],8:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiAgeChart",[function(){return{controller:"AgeChartController",controllerAs:"ageChartCtrl",template:t("./ageChart.pug")(),replace:!0}}])},{"./ageChart.pug":9}],9:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="unifiColumnChart unifiHotspotAnalyticsAge unifiColumnGraph--danger"><div class="verticalRhythmTop--cozy"><unifi-column-chart class="unifiColumnGraph unifiHotspotAnalyticsAge__chart" unifi-column-chart-config="ageChartCtrl.chartConfig" unifi-column-chart-data="ageChartCtrl.chartData"><unifi-column-chart-transclude-tooltip><div class="alignCenter"><div>{{$parent.entry.ageRange}}</div><div><strong translate="HOTSPOT_ANALYTICS_LABEL_USERS" translate-values="{count: $parent.entry.users}" translate-interpolation="messageformat"></strong><strong class="unifiHotspotAnalytics__valueSeparator" translate="HOTSPOT_ANALYTICS_LABEL_MALES" translate-values="{count: $parent.entry.males}" translate-interpolation="messageformat"></strong><strong class="unifiHotspotAnalytics__valueSeparator" translate="HOTSPOT_ANALYTICS_LABEL_FEMALES" translate-values="{count: $parent.entry.females}" translate-interpolation="messageformat"></strong></div></div></unifi-column-chart-transclude-tooltip></unifi-column-chart></div></div>'}},{"pug-runtime":2}],10:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("BreakdownGraphController",["$interval","$translate","guests","hotspotConfig",function(t,e,n,r){return new(function(){function i(){var n=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,i),this.chartConfig={dataProperty:"value",quantifyData:!1,label:{main:"?",secondary:e.instant("HOTSPOT_ANALYTICS_LABEL_BREAKDOWN_TOTAL")}},this.legendConfig={labelProperty:"key",valueProperty:"value"},this.datasets={newVsReturning:{key:"RETURNING",data:{},displayMapping:function(t){return{key:e.instant("HOTSPOT_ANALYTICS_VALUE_RETURNING_"+t.toUpperCase()),value:n.datasets.newVsReturning.data[t]}}},breakdown:{key:"BREAKDOWN",data:{},displayMapping:function(t){return{key:e.instant("HOTSPOT_ANALYTICS_VALUE_BREAKDOWN_"+t.toUpperCase()),value:n.datasets.breakdown.data[t]}}}},this.currentDataset=this.datasets.newVsReturning,this.chartData=[],this.collectData(),r.hasPaymentsEnabled()&&(this.rotateData(),this.rotateInterval=t(this.rotateData.bind(this),5e3))}return o(i,[{key:"addEventHandlers",value:function(){n.repository.collection.on("sync",this.collectData,this)}},{key:"removeEventHandlers",value:function(){n.repository.collection.off("sync",this.collectData,this)}},{key:"collectData",value:function(){var t=n.repository.collection.length,e=n.repository.collection.filter(function(t){return t.get("is_returning")}).length;if(this.datasets.newVsReturning.data={new:t-e,returning:e},r.hasPaymentsEnabled()){var o=n.repository.collection.filter(function(t){return"credit"===t.get("authorized_by")}).length;this.datasets.breakdown.data={paid:o,free:t-o}}this.chartConfig.label.main=t,this.renderChartData()}},{key:"rotateData",value:function(){this.currentDataset="BREAKDOWN"===this.currentDataset.key?this.datasets.newVsReturning:this.datasets.breakdown,this.renderChartData()}},{key:"renderChartData",value:function(){this.chartData=Object.keys(this.currentDataset.data).map(this.currentDataset.displayMapping)}},{key:"stopRotating",value:function(){t.cancel(this.rotateInterval)}}]),i}())}])},{}],11:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiBreakdownGraph",[function(){return{controller:"BreakdownGraphController",controllerAs:"breakdownGraphCtrl",template:t("./breakdownGraph.pug")(),replace:!0,link:function(t,e,n,o){o.addEventHandlers(),t.$on("$destroy",function(){o.removeEventHandlers(),o.stopRotating()})}}}])},{"./breakdownGraph.pug":12}],12:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="unifiHotspotAnalyticsBreakdownGraph"><div class="appRow"><div class="col--md12 shelf unifiHotspotAnalyticsBreakdownGraph__chart"><unifi-donut-chart unifi-donut-chart-config="breakdownGraphCtrl.chartConfig" unifi-donut-chart-data="breakdownGraphCtrl.chartData"></unifi-donut-chart><unifi-donut-chart-binary-legend unifi-donut-chart-binary-legend-config="breakdownGraphCtrl.legendConfig" unifi-donut-chart-binary-legend-data="breakdownGraphCtrl.chartData"></unifi-donut-chart-binary-legend></div></div></div>'}},{"pug-runtime":2}],13:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("CountriesChartController",["$translate","bowser","currencyUtils","hotspotAnalytics","transactions",function(t,e,n,r,i){return new(function(){function a(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,a),this.chartData=[],this._COUNTRIES_TO_POPULATE=["CN","US","IN","JP","DE","RU","BR","ID","GB","FR","MX","IT","SA","ES","CA"],e.mobile&&(this._COUNTRIES_TO_POPULATE=this._COUNTRIES_TO_POPULATE.slice(0,7)),this.initConfig(),this.prepareCharts()}return o(a,[{key:"$onInit",value:function(){i.repository.collection.on("sync",this.prepareCharts,this)}},{key:"$onDestroy",value:function(){i.repository.collection.off("sync",this.prepareCharts,this)}},{key:"initConfig",value:function(){this.chartConfig={valueProperties:["amount"],withXLabels:!0,unit:"",getXLabel:function(t){return t.countryCode},getYLabel:function(t,e){return n.formatAmount(void 0===t?0:t,e)}}}},{key:"updateConfig",value:function(){this.chartConfig.unit=r.getCurrency()}},{key:"prepareCharts",value:function(){this.prepareData(i.repository.collection),this.updateConfig()}},{key:"prepareData",value:function(){var e=r.getCurrency(),n=i.repository.collection.filter(function(t){return!!t.get("country")}).reduce(function(t,n){var o=n.get("country");return t[o]={amount:0,currency:e,users:0},n.get("amount")&&n.get("currency")===e&&(t[o].amount+=parseFloat(n.get("amount"))),t[o].users+=1,t},{});this.chartData=Object.keys(n).map(function(e){return{countryCode:e,countryLabel:t.instant("COUNTRY_"+e),users:n[e].users,amount:n[e].amount,currency:n[e].currency}});var o=this._COUNTRIES_TO_POPULATE.length-this.chartData.length;if(o>0){var a=this._COUNTRIES_TO_POPULATE.filter(function(t){return!n[t]}).slice(0,o).map(function(e){return{countryCode:e,countryLabel:t.instant("COUNTRY_"+e),value:0}});this.chartData=this.chartData.concat(a)}this.chartData=this.chartData.map(function(t){return t.value=t.value||null,t}).sort(function(t,e){return t.countryCode.localeCompare(e.countryCode)})}}]),a}())}])},{}],14:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiCountriesChart",[function(){return{controller:"CountriesChartController",controllerAs:"countriesChartCtrl",template:t("./countriesChart.pug")(),replace:!0}}])},{"./countriesChart.pug":15}],15:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="unifiColumnChart unifiHotspotAnalyticsCountries unifiColumnGraph--danger"><div class="verticalRhythmTop--cozy"><unifi-column-chart class="unifiColumnGraph unifiHotspotAnalyticsCountries__chart" unifi-column-chart-config="countriesChartCtrl.chartConfig" unifi-column-chart-data="countriesChartCtrl.chartData"><unifi-column-chart-transclude-tooltip><div class="alignCenter"><div class="noWrap">{{$parent.entry.countryLabel}}</div><div class="noWrap"><strong translate="HOTSPOT_ANALYTICS_LABEL_USERS" translate-values="{count: $parent.entry.users}" translate-interpolation="messageformat"></strong><strong class="unifiHotspotAnalytics__valueSeparator" ng-show="revenueChartCtrl.hotspotConfig.hasPaymentsEnabled()">{{$parent.entry | currency}}</strong></div></div></unifi-column-chart-transclude-tooltip></unifi-column-chart></div></div>'}},{"pug-runtime":2}],16:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("CountriesMapController",["$translate","transactions",function(t,e){return new(function(){function n(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),this.legendConfig={labelProperty:"countryLabel",valueProperty:"count"},this.mapConfig={height:230},this.mapData=[],this.collectData()}return o(n,[{key:"$onInit",value:function(){e.repository.collection.on("sync",this.collectData,this)}},{key:"$onDestroy",value:function(){e.repository.collection.off("sync",this.collectData,this)}},{key:"collectData",value:function(){var n=e.repository.collection.filter(function(t){return!!t.get("country")}).reduce(function(t,e){var n=e.get("country");return t[n]=(t[n]||0)+1,t},{});this.mapData=Object.keys(n).map(function(e){return{countryCode:e,countryLabel:t.instant("COUNTRY_"+e),count:n[e],color:"#1D86BF"}})}}]),n}())}])},{}],17:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiCountriesMap",[function(){return{controller:"CountriesMapController",controllerAs:"countriesMapCtrl",template:t("./countriesMap.pug")(),replace:!0}}])},{"./countriesMap.pug":18}],18:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="unifiHotspotAnalyticsCountriesMap"><div class="appRow"><div class="unifiHotspotAnalyticsCountriesMap__container"><div class="col--xlg8 col--xlgOffset2 col--lg10 col--lgOffset1 col--md12 shelf unifiHotspotAnalyticsCountriesMap__map"><unifi-data-map unifi-data-map-config="countriesMapCtrl.mapConfig" unifi-data-map-data="countriesMapCtrl.mapData"></unifi-data-map></div></div></div></div>'}},{"pug-runtime":2}],19:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("DataMapController",["$compile","Datamap","mergeDefaults","CHART_COLORS","COUNTRY_MAP",function(e,n,r,i,a){return new(function(){function s(){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),this.TOOLTIP_TEMPLATE=t("./dataMapTooltip.pug")(),this.dataMapConfig={scope:"world",responsive:!0,fills:{defaultFill:"#dddddd"},height:250,geographyConfig:{highlightOnHover:!1,highlightBorderWidth:0,popupTemplate:function(t,n){return e.tooltipScope.count=n.count,e.tooltipScope.countryLabel=n.countryLabel,e.tooltipScope.$apply(),e.tooltipElement.html()}}},this.datamap=null,this.data=[]}return o(s,[{key:"initialize",value:function(t,o){var i=r({element:o},t.config);this.updateConfig(i),this.datamap=new n(this.dataMapConfig),this.resize=this.datamap.resize.bind(this.datamap),this.tooltipScope=t.$new(),this.tooltipElement=e(this.TOOLTIP_TEMPLATE)(this.tooltipScope)}},{key:"updateConfig",value:function(t){this.dataMapConfig=r(t,this.dataMapConfig)}},{key:"updateData",value:function(t){var e=t.reduce(function(t,e,n){var o=a[e.countryCode]&&a[e.countryCode].longCode;return o&&(t[o]={countryLabel:e.countryLabel,count:e.count,color:e.color||i[n%i.length]}),t},{});this.datamap.updateChoropleth(e,{reset:!0})}}]),s}())}])},{"./dataMapTooltip.pug":22}],20:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiDataMap",["$window","inhibitor",function(e,n){return{controller:"DataMapController",controllerAs:"dataMapCtrl",template:t("./dataMap.pug")(),replace:!0,scope:{config:"=unifiDataMapConfig",data:"=unifiDataMapData"},link:function(t,o,r,i){i.initialize(t,o[0]),i.updateData(t.data),t.$watch("config",function(e,n){e!==n&&i.updateConfig(t.config)}),t.$watch("data",function(t,e){t!==e&&i.updateData(t)});var a=n(i.resize);e.addEventListener("resize",a,!1),t.$on("$destroy",function(){e.removeEventListener("resize",a,!1)})}}}])},{"./dataMap.pug":21}],21:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="unifiDataMap"></div>'}},{"pug-runtime":2}],22:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="ubntTooltipContainer"><div class="ubntTooltip ubntTooltip--topCenter" style="bottom: calc(100% + 45px);" ng-if="count > 0"><div class="alignCenter"><div>{{countryLabel}}</div><div><strong translate="HOTSPOT_ANALYTICS_LABEL_USERS" translate-values="{count: $parent.count}" translate-interpolation="messageformat"></strong></div></div></div></div>'}},{"pug-runtime":2}],23:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("DeviceTypeColumnChartController",["$translate","chartUtils","currencyUtils","guests","hotspotAnalytics","hotspotAnalyticsUtils","hotspotConfig","moment",function(t,e,n,r,i,a,s,l){return new(function(){function u(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,u),this.hotspotConfig=s,this.isNumber=angular.isNumber,this.chartData=[]}return o(u,[{key:"$onInit",value:function(){r.repository.collection.on("sync",this.prepareCharts,this),this.initConfig(),this.prepareCharts()}},{key:"$onDestroy",value:function(){r.repository.collection.off("sync",this.prepareCharts,this)}},{key:"initConfig",value:function(){var t=this.hotspotConfig.hasPaymentsEnabled();this.legendConfig={labelProperty:"label",valueProperty:"count",entryCss:function(t,e){var n=[];return-1!==e&&n.push("unifiColumnChartLegendEntry__item"+e),i.getDeviceType()===t.deviceType&&n.push("unifiColumnChartLegendEntry__active"),n.join(" ")}},this.chartConfig={valueProperties:[t?"amount":"users"],withXLabels:!0,unit:i.getCurrency(),getXLabel:function(t){return l.utc(t.x,"x").format("D")},getYLabel:function(e,o){return t?n.formatAmount(void 0===e?0:e,o):e}}}},{key:"updateConfig",value:function(){this.chartConfig.unit=i.getCurrency()}},{key:"prepareCharts",value:function(){this.prepareChartData(r.repository.collection),this.prepareLegendData(r.repository.collection),this.updateConfig()}},{key:"prepareChartData",value:function(t){var n=i.getCurrency(),o=parseInt(i.getStart()),r=parseInt(i.getEnd()),s=t.filter(function(t){var e=t.get("user_agent");return a.detectDeviceType(e)===i.getDeviceType()}).reduce(function(t,o){var r=1e3*o.get("start"),i=e.normalizeTime(r);return t[i]||(t[i]={x:i,amount:0,currency:n,paid:0,users:0}),"credit"===o.get("authorized_by")&&(t[i].paid+=1,o.get("currency")===n&&(t[i].amount+=parseFloat(o.get("amount")))),t[i].users+=1,t},{}),l=i.getDeviceType(),u=Object.keys(s).map(function(t){return{x:s[t].x,amount:s[t].amount,currency:s[t].currency,deviceType:l,paid:s[t].paid,users:s[t].users}}).sort(function(t,e){return t.x-e.x});this.chartData=e.fillWithPaddingDataPoints(u,o,r,!0).map(function(t){return t.amount=t.amount||(t.users>0?0:null),t})}},{key:"prepareLegendData",value:function(e){var n=e.map(function(t){var e=t.get("user_agent");return a.detectDeviceType(e)}).reduce(function(t,e){return t[e]=(t[e]||0)+1,t},{});this.legendData=Object.keys(n).map(function(e){return{deviceType:e,label:t.instant("HOTSPOT_ANALYTICS_LABEL_DEVICE_TYPE_"+e.toUpperCase()),count:n[e]}}).sort(function(t,e){return e.count-t.count})}},{key:"onClick",value:function(t){i.setDeviceType(t.deviceType)}},{key:"getColorClass",value:function(){return"unifiHotspotAnalyticsDeviceTypeColumnGraph--color"+(this.legendData.findIndex(function(t){return t.deviceType===i.getDeviceType()})+1)}}]),u}())}])},{}],24:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiDeviceTypeColumnChart",["hotspotAnalytics",function(e){return{controller:"DeviceTypeColumnChartController",controllerAs:"deviceTypeColumnChartCtrl",template:t("./deviceTypeColumnChart.pug")(),replace:!0,link:function(t,n,o,r){t.$watch(function(){return e.getDeviceType()},function(){r.prepareCharts()})}}}])},{"./deviceTypeColumnChart.pug":25}],25:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e=e+'<div class="unifiColumnChart unifiHotspotAnalyticsDeviceTypeColumnGraph" ng-class="deviceTypeColumnChartCtrl.getColorClass()"><div class="verticalRhythmTop--cozy"><unifi-column-chart class="unifiColumnGraph unifiHotspotAnalyticsDeviceTypeColumnGraph__chart" unifi-column-chart-config="deviceTypeColumnChartCtrl.chartConfig" unifi-column-chart-data="deviceTypeColumnChartCtrl.chartData"><unifi-column-chart-transclude-tooltip><div class="alignCenter"><div class="noWrap">{{$parent.entry.x | moment: [\'utc\', \'format\']: \'dddd, MMMM D YYYY\'}}</div><div class="noWrap"><strong ng-switch="$parent.entry.deviceType"><span ng-switch-when="mobile" translate="HOTSPOT_ANALYTICS_LABEL_MOBILE_USERS" translate-values="{count: $parent.$parent.entry.users}" translate-interpolation="messageformat"></span><span ng-switch-when="tablet" translate="HOTSPOT_ANALYTICS_LABEL_TABLET_USERS" translate-values="{count: $parent.$parent.entry.users}" translate-interpolation="messageformat"></span><span ng-switch-when="desktop" translate="HOTSPOT_ANALYTICS_LABEL_DESKTOP_USERS" translate-values="{count: $parent.$parent.entry.users}" translate-interpolation="messageformat"></span><span'+(n="ng-switch-default",r=!0,i=!0,a=!0,!1!==r&&null!=r&&(r||"class"!==n&&"style"!==n)?!0===r?" "+(a?n:n+'="'+n+'"'):("function"==typeof r.toJSON&&(r=r.toJSON()),"string"==typeof r||(r=JSON.stringify(r),i||-1===r.indexOf('"'))?(i&&(r=function(t){var e=""+t,n=o.exec(e);if(!n)return t;var r,i,a,s="";for(r=n.index,i=0;r<e.length;r++){switch(e.charCodeAt(r)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==r&&(s+=e.substring(i,r)),i=r+1,s+=a}return i!==r?s+e.substring(i,r):s}(r))," "+n+'="'+r+'"'):" "+n+"='"+r.replace(/'/g,"'")+"'"):"")+' translate="HOTSPOT_ANALYTICS_LABEL_USERS" translate-values="{count: $parent.$parent.entry.users}" translate-interpolation="messageformat"></span></strong><strong class="unifiHotspotAnalytics__valueSeparator" ng-show="deviceTypeColumnChartCtrl.hotspotConfig.hasPaymentsEnabled()" translate="HOTSPOT_ANALYTICS_LABEL_PAID_USERS" translate-values="{count: $parent.$parent.entry.paid}" translate-interpolation="messageformat"></strong><strong class="unifiHotspotAnalytics__valueSeparator" ng-show="deviceTypeColumnChartCtrl.hotspotConfig.hasPaymentsEnabled()">{{$parent.entry | currency}}</strong></div></div></unifi-column-chart-transclude-tooltip><unifi-column-chart-transclude-legend><unifi-column-chart-legend unifi-column-chart-legend-config="deviceTypeColumnChartCtrl.legendConfig" unifi-column-chart-legend-data="deviceTypeColumnChartCtrl.legendData" unifi-column-chart-legend-on-click="deviceTypeColumnChartCtrl.onClick(entry)"></unifi-column-chart-legend></unifi-column-chart-transclude-legend></unifi-column-chart></div></div>';var n,r,i,a};var o=/["&<>]/},{"pug-runtime":2}],26:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("DeviceTypeGraphController",["$translate","guests","hotspotAnalytics","hotspotAnalyticsUtils",function(t,e,n,r){return new(function(){function i(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,i);var e=t.instant("HOTSPOT_ANALYTICS_LABEL_DEVICE_TYPE"),n=e,o=null,r=n.lastIndexOf(" ");-1!==r&&(n=e.slice(0,r),o=e.slice(r)),this.chartConfig={dataProperty:"value",quantifyData:!1,label:{main:n,secondary:o}},this.legendConfig={labelProperty:"label",valueProperty:"value"},this.chartData=[],this.collectData()}return o(i,[{key:"$onInit",value:function(){e.repository.collection.on("sync",this.collectData,this)}},{key:"$onDestroy",value:function(){e.repository.collection.off("sync",this.collectData,this)}},{key:"collectData",value:function(){var o=e.repository.collection.map(function(t){var e=t.get("user_agent");return r.detectDeviceType(e)}).reduce(function(t,e){return t[e]=(t[e]||0)+1,t},{});this.chartData=Object.keys(o).map(function(e){return{deviceType:e,label:t.instant("HOTSPOT_ANALYTICS_LABEL_DEVICE_TYPE_"+e.toUpperCase()),value:o[e]}}).sort(function(t,e){return e.value-t.value}),this.chartData.length>0&&!n.getDeviceType()&&n.setDeviceType(this.chartData[0].deviceType)}},{key:"onClick",value:function(t){n.setDeviceType(t.deviceType)}}]),i}())}])},{}],27:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiDeviceTypeGraph",[function(){return{controller:"DeviceTypeGraphController",controllerAs:"deviceTypeGraphCtrl",template:t("./deviceTypeGraph.pug")(),replace:!0}}])},{"./deviceTypeGraph.pug":28}],28:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e=e+'<div class="unifiHotspotAnalyticsDeviceTypeGraph"><div class="appRow verticalRhythmTop verticalRhythm unifiHotspotAnalyticsDeviceTypeGraph__flexContainer"><div class="col--md5 col--mdOffset1 shelf unifiHotspotAnalyticsDeviceTypeGraph__chart"><unifi-donut-chart-with-tooltip unifi-donut-chart-with-tooltip-config="deviceTypeGraphCtrl.chartConfig" unifi-donut-chart-with-tooltip-data="deviceTypeGraphCtrl.chartData"><div class="ubntTooltip noPointerEvents"'+(n="unifi-position-absolutely",r=!0,i=!0,a=!0,!1!==r&&null!=r&&(r||"class"!==n&&"style"!==n)?!0===r?" "+(a?n:n+'="'+n+'"'):("function"==typeof r.toJSON&&(r=r.toJSON()),"string"==typeof r||(r=JSON.stringify(r),i||-1===r.indexOf('"'))?(i&&(r=function(t){var e=""+t,n=o.exec(e);if(!n)return t;var r,i,a,s="";for(r=n.index,i=0;r<e.length;r++){switch(e.charCodeAt(r)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==r&&(s+=e.substring(i,r)),i=r+1,s+=a}return i!==r?s+e.substring(i,r):s}(r))," "+n+'="'+r+'"'):" "+n+"='"+r.replace(/'/g,"'")+"'"):"")+' ng-if="tooltipVisible" ng-class="cssTooltipPosition"><div class="type-ubnt-title mb-1">{{::focusedData.deviceType}}</div><span>{{::focusedData.value}}</span></div></unifi-donut-chart-with-tooltip></div><div class="col--md4 col--mdOffset1 unifiHotspotAnalyticsDeviceTypeGraph__legend"><unifi-chart-legend class="ubntTable--list ubntTable--cozy" unifi-chart-legend-config="deviceTypeGraphCtrl.legendConfig" unifi-chart-legend-data="deviceTypeGraphCtrl.chartData" unifi-chart-legend-on-click="deviceTypeGraphCtrl.onClick(entry)"></unifi-chart-legend></div></div></div>';var n,r,i,a};var o=/["&<>]/},{"pug-runtime":2}],29:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("GenderGraphController",["$translate","transactions",function(t,e){return new(function(){function n(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),this.chartConfig={dataProperty:"value",quantifyData:!1,label:{main:t.instant("HOTSPOT_ANALYTICS_LABEL_GENDER")}},this.legendConfig={labelProperty:"gender",valueProperty:"value"},this.chartData=[]}return o(n,[{key:"$onInit",value:function(){e.repository.collection.on("sync",this.collectData,this),this.collectData()}},{key:"$onDestroy",value:function(){e.repository.collection.off("sync",this.collectData,this)}},{key:"collectData",value:function(){var n=e.repository.collection.filter(function(t){return!!t.get("gender")}).map(function(t){return t.get("gender")}).reduce(function(t,e){return t[e]=(t[e]||0)+1,t},{male:0,female:0});this.chartData=Object.keys(n).map(function(e){return{gender:t.instant("HOTSPOT_ANALYTICS_LABEL_GENDER_"+e.toUpperCase()),value:n[e]}})}}]),n}())}])},{}],30:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiGenderGraph",[function(){return{controller:"GenderGraphController",controllerAs:"genderGraphCtrl",template:t("./genderGraph.pug")(),replace:!0}}])},{"./genderGraph.pug":31}],31:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e=e+'<div class="unifiHotspotAnalyticsGenderGraph"><div class="appRow"><div class="col--md11 col--mdOffset1 shelf unifiHotspotAnalyticsGenderGraph__chart"><unifi-donut-chart-with-tooltip unifi-donut-chart-with-tooltip-config="genderGraphCtrl.chartConfig" unifi-donut-chart-with-tooltip-data="genderGraphCtrl.chartData"><div class="ubntTooltip"'+(n="unifi-position-absolutely",r=!0,i=!0,a=!0,!1!==r&&null!=r&&(r||"class"!==n&&"style"!==n)?!0===r?" "+(a?n:n+'="'+n+'"'):("function"==typeof r.toJSON&&(r=r.toJSON()),"string"==typeof r||(r=JSON.stringify(r),i||-1===r.indexOf('"'))?(i&&(r=function(t){var e=""+t,n=o.exec(e);if(!n)return t;var r,i,a,s="";for(r=n.index,i=0;r<e.length;r++){switch(e.charCodeAt(r)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==r&&(s+=e.substring(i,r)),i=r+1,s+=a}return i!==r?s+e.substring(i,r):s}(r))," "+n+'="'+r+'"'):" "+n+"='"+r.replace(/'/g,"'")+"'"):"")+' ng-if="tooltipVisible" ng-class="cssTooltipPosition"><div class="appSubHeading appSubHeading--small">{{focusedData.gender}}</div><div class="noPaddingBottom">{{focusedData.value}}</div></div></unifi-donut-chart-with-tooltip><unifi-donut-chart-binary-legend unifi-donut-chart-binary-legend-config="genderGraphCtrl.legendConfig" unifi-donut-chart-binary-legend-data="genderGraphCtrl.chartData"></unifi-donut-chart-binary-legend></div></div></div>';var n,r,i,a};var o=/["&<>]/},{"pug-runtime":2}],32:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("GuestButtonDisconnectController",["BaseButtonController","guestUtils","heyToasts",function(t,e,n){return new(function(r){function i(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,i),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(i.__proto__||Object.getPrototypeOf(i)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(i,t),o(i,[{key:"onModelChange",value:function(){}},{key:"disconnect",value:function(){n.handlePromise(e.disconnect(this.model))}},{key:"isExpired",value:function(){return this.model&&this.model.get("expired")}}]),i}())}])},{}],33:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiGuestButtonDisconnect",[function(){return{scope:{model:"=unifiGuestButtonDisconnect",isResponsive:"=unifiGuestButtonDisconnectIsResponsive"},controller:"GuestButtonDisconnectController",controllerAs:"guestButtonDisconnectCtrl",template:t("./guestButtonDisconnect.pug")(),replace:!0,link:function(t,e,n,o){t.$watch("model",function(t){o.updateModel(t)})}}}])},{"./guestButtonDisconnect.pug":34}],34:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<button ng-click="guestButtonDisconnectCtrl.disconnect($event)" ng-class="{\'is-responsive\': isResponsive}" ng-disabled="guestButtonDisconnectCtrl.isExpired() || guestButtonDisconnectCtrl.isPending" title="{{\'GUEST_ACTIONS_DISCONNECT\' | translate}}"><span class="button__icon icon" ng-class="guestButtonDisconnectCtrl.isPending ? \'ubnt-icon--clock-2\' : \'ubnt-icon--link-broken\'"></span><span class="button__label" translate="GUEST_ACTIONS_DISCONNECT"></span></button>'}},{"pug-runtime":2}],35:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("GuestButtonExtendController",["BaseButtonController","guestUtils","heyToasts",function(t,e,n){return new(function(r){function i(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,i),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(i.__proto__||Object.getPrototypeOf(i)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(i,t),o(i,[{key:"onModelChange",value:function(){}},{key:"extend",value:function(){e.extend(this.model).then(function(t){n.pushSuccess(t)}).catch(function(t){n.pushError(t)})}}]),i}())}])},{}],36:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiGuestButtonExtend",[function(){return{scope:{model:"=unifiGuestButtonExtend",isResponsive:"=unifiGuestButtonExtendIsResponsive"},controller:"GuestButtonExtendController",controllerAs:"guestButtonExtendCtrl",template:t("./guestButtonExtend.pug")(),replace:!0,link:function(t,e,n,o){t.$watch("model",function(t){o.updateModel(t)})}}}])},{"./guestButtonExtend.pug":37}],37:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<button ng-click="guestButtonExtendCtrl.extend($event)" ng-class="{\'is-responsive\': isResponsive}" ng-disabled="guestButtonExtendCtrl.isPending" title="{{\'GUEST_ACTIONS_EXTEND\' | translate}}"><span class="button__icon icon" ng-class="guestButtonExtendCtrl.isPending ? \'ubnt-icon--clock-2\' : \'ubnt-icon--refresh-2\'"></span><span class="button__label" translate="GUEST_ACTIONS_EXTEND"></span></button>'}},{"pug-runtime":2}],38:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),r=function t(e,n,o){null===e&&(e=Function.prototype);var r=Object.getOwnPropertyDescriptor(e,n);if(void 0===r){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,o)}if("value"in r)return r.value;var a=r.get;return void 0!==a?a.call(o):void 0};angular.module("app-unifi-hotspot").controller("GuestListController",["BasePaginatedListController","CollectionView","preferences","guests","GuestFilter","guestListColumnStore",function(t,e,n,i,a,s){return new(function(e){function n(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n);var t=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return t.guests=i,t.filter=new a,t.defaultSortBy="start",t.defaultSortDesc=!0,t.columnStore=s,t.isColumnVisible=t.columnStore.isColumnVisible.bind(t.columnStore),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(n,t),o(n,[{key:"$onInit",value:function(){r(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"$onInit",this).call(this)}},{key:"initFilters",value:function(){this.isFiltered=this.filter.isFiltered.bind(this.filter)}},{key:"getCollection",value:function(){return i.repository.collection}},{key:"getWithin",value:function(){return this.guests.getWithin()}},{key:"onUpdateWithin",value:function(t){this.listState.addFilter("within",t),this.guests.updateWithin(t)}},{key:"refresh",value:function(t){this.refreshColumns(),r(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"refresh",this).call(this,t)}},{key:"refreshColumns",value:function(){this.isStateChanging()||this.columnStore.setColumns()}}]),n}())}])},{}],39:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiGuestList",["PaginatedListDirective",function(e){return new e("guest",t("./guestList.pug")())}])},{"./guestList.pug":40}],40:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e=e+'<div class="ubntPanelContainer ubntPanelContainer--withHeaderPanel"><div class="ubntHeaderPanel ubntHeaderPanel--primary ubntHeaderPanel--expandable"><div class="ubntHeader overflow-visible"><div class="appActionBarFilters"><div class="appActionBarFilter"><unifi-time-filter-dropdown unifi-time-filter-dropdown-default-hours="guestListCtrl.getWithin()" unifi-time-filter-dropdown-callback="guestListCtrl.onUpdateWithin(hours)"></unifi-time-filter-dropdown></div></div><div class="appActionBarFilter appActionBarFilter--search"><unifi-search class="ubntFormGroup--headerSearch" unifi-search-on-change="guestListCtrl.onSearchQueryChange(searchQuery)" unifi-search-config-group="\'header\'" unifi-search-is-busy="guestListCtrl.view.isRefreshing()"></unifi-search></div></div></div><div class="ubntMainPanel ubntMainPanel--feature"><div class="ubntPanelContent ubntPanelContent--scrollable"><table class="ubntTable ubntTable--hoverable ubntTable--noWrap mt-1" id="guestsTable" collection-view-sort="guestListCtrl.view" ng-class="{ \'is-not-responsive\': guestListCtrl.columnStore.getCustomized() || !guestListCtrl.isResponsive() }" ng-show="guestListCtrl.view.getModels().length"><thead><tr><th class="guestName" collection-view-sort-by="name" ng-if="guestListCtrl.isColumnVisible(\'name\')"><span translate="GUEST_TABLE_HEADER_NAME"></span></th><th class="guestPackage visible--mdUp" collection-view-sort-by="package" ng-if="guestListCtrl.isColumnVisible(\'package\')"><span translate="GUEST_TABLE_HEADER_PACKAGE"></span></th><th class="guestAmount visible--mdUp" collection-view-sort-by="amount" ng-if="guestListCtrl.isColumnVisible(\'amount\')"><span translate="GUEST_TABLE_HEADER_AMOUNT"></span></th><th class="guestAuthorizedBy visible--smUp" ng-if="guestListCtrl.isColumnVisible(\'authorized_by\')"><span translate="GUEST_TABLE_HEADER_AUTHORIZED_BY"></span></th><th class="guestDownload visible--lgUp" collection-view-sort-by="tx_bytes" ng-if="guestListCtrl.isColumnVisible(\'tx_bytes\')"><span translate="GUEST_TABLE_HEADER_DOWNLOAD"></span></th><th class="guestUpload visible--lgUp" collection-view-sort-by="rx_bytes" ng-if="guestListCtrl.isColumnVisible(\'rx_bytes\')"><span translate="GUEST_TABLE_HEADER_UPLOAD"></span></th><th class="guestStart visible--mdUp" collection-view-sort-by="start" ng-if="guestListCtrl.isColumnVisible(\'start\')"><span translate="GUEST_TABLE_HEADER_START"></span></th><th class="guestStatus visible--smUp" collection-view-sort-by="expired" ng-if="guestListCtrl.isColumnVisible(\'status\')"><span translate="GUEST_TABLE_HEADER_STATUS"></span></th><th class="guestRadiusUsername visible--smUp" collection-view-sort-by="radius_username" ng-if="guestListCtrl.isColumnVisible(\'radius_username\')"><span translate="GUEST_TABLE_HEADER_RADIUS_USERNAME"></span></th><th class="guestRadiusSessionId visible--smUp" collection-view-sort-by="radius_session_id" ng-if="guestListCtrl.isColumnVisible(\'radius_session_id\')"><span translate="GUEST_TABLE_HEADER_RADIUS_SESSION_ID"></span></th><th class="transactionActions ubntTableCell--withActions ubntTableCell--smash"><unifi-aura-list-column-selector unifi-aura-list-column-selector-column-store="guestListCtrl.columnStore"></unifi-aura-list-column-selector></th></tr></thead><tfoot ng-if="guestListCtrl.view.getModels().length"><tr><td class="ubntForm ubnt-mod-cozy" colspan="10"><unifi-aura-pagination unifi-aura-pagination-current-page="guestListCtrl.currentPage" unifi-aura-pagination-rows-per-page="guestListCtrl.rowsPerPage" unifi-aura-pagination-total-rows="guestListCtrl.view.getModels().length"></unifi-aura-pagination></td></tr></tfoot><tbody><tr collection-view-repeat="model in guestListCtrl.view.getModels(), startFrom (guestListCtrl.currentPage - 1) * guestListCtrl.rowsPerPage, limitTo guestListCtrl.rowsPerPage" collection-view-repeat-watch="guestListCtrl.columnStore.getColumns()" data-id="{{::model.id}}"><td class="guestName" ng-attr-title="{{::model.get(\'mac\')}}" ng-if="::guestListCtrl.isColumnVisible(\'name\')">{{::model.getDisplayName()}}</td><td class="guestPackage visible--mdUp" ng-if="::guestListCtrl.isColumnVisible(\'package\')">{{::model.get(\'package\') | orEmptyPlaceholder}}</td><td class="guestAmount visible--mdUp" ng-if="::guestListCtrl.isColumnVisible(\'amount\')">{{::(model | currency) | orEmptyPlaceholder}}</td><td class="guestAuthorizedBy visible--smUp" ng-if="::guestListCtrl.isColumnVisible(\'authorized_by\')">{{::model | guestAuthorization}}</td><td class="guestDownload visible--lgUp" ng-if="::guestListCtrl.isColumnVisible(\'tx_bytes\')">{{::model.get(\'tx_bytes\') | bytes}}</td><td class="guestUpload visible--lgUp" ng-if="::guestListCtrl.isColumnVisible(\'rx_bytes\')">{{::model.get(\'rx_bytes\') | bytes}}</td><td class="guestUpload visible--lgUp" ng-if="::guestListCtrl.isColumnVisible(\'start\')">{{::model.get(\'start\') * 1000 | moment: \'format\': \'datetime\'}}</td><td class="guestStatus visible--smUp" ng-if="::guestListCtrl.isColumnVisible(\'status\')" ng-switch="model.get(\'authorized_by\') === \'facebook_wifi\'"><span ng-switch-when="false">{{(model.get(\'expired\') ? \'GUEST_STATUS_EXPIRED\' : \'GUEST_STATUS_VALID_UNTIL\') | translate:\'{date: "\' + model.getEnd() + \'"}\'}}</span><span ng-switch-when="true">{{(model.get(\'expired\') ? \'GUEST_STATUS_EXPIRED\' : \'GUEST_STATUS_MANAGED_BY_FACEBOOK\') | translate:\'{date: "\' + model.getEnd() + \'"}\'}}</span></td><td class="guestRadiusUsername visible--smUp" ng-if="::guestListCtrl.isColumnVisible(\'radius_username\')">{{::model.get(\'radius_username\') | orEmptyPlaceholder}}</td><td class="guestRadiusSessionId visible--smUp" ng-if="::guestListCtrl.isColumnVisible(\'radius_session_id\')">{{::model.get(\'radius_session_id\') | orEmptyPlaceholder}}</td><td class="guestActions ubntTableCell--withActions ubntTableCell--smash"><div class="ubntTableCell__actions ubntTableCell__actions--inline"><div class="ubntButtonGroup ubntButtonGroup--cozy mr-2"'+(n="unifi-if-role-admin",r=!0,i=!0,a=!0,!1!==r&&null!=r&&(r||"class"!==n&&"style"!==n)?!0===r?" "+(a?n:n+'="'+n+'"'):("function"==typeof r.toJSON&&(r=r.toJSON()),"string"==typeof r||(r=JSON.stringify(r),i||-1===r.indexOf('"'))?(i&&(r=function(t){var e=""+t,n=o.exec(e);if(!n)return t;var r,i,a,s="";for(r=n.index,i=0;r<e.length;r++){switch(e.charCodeAt(r)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==r&&(s+=e.substring(i,r)),i=r+1,s+=a}return i!==r?s+e.substring(i,r):s}(r))," "+n+'="'+r+'"'):" "+n+"='"+r.replace(/'/g,"'")+"'"):"")+'><button class="ubntButton ubntButton--link ubntButton--noWrap" unifi-guest-button-extend="model"></button><button class="ubntButton ubntButton--link ubntButton--noWrap" unifi-guest-button-disconnect="model"></button></div></div></td></tr></tbody></table><div class="ubntNoContent" ng-if="!guestListCtrl.view.getModels().length"><div class="ubntNoContent__icon"><unifi-no-content-icon unifi-no-content-icon="\'default\'" unifi-no-content-icon-class="[\'ubntIcon\']"></unifi-no-content-icon></div><div class="ubntNoContent__title" translate="GUEST_TABLE_EMPTY_HEADER"></div><div class="ubntNoContent__details" ng-if="!guestListCtrl.isFiltered()" translate="GUEST_TABLE_EMPTY_NO_GUESTS"></div><div class="ubntNoContent__details" ng-if="guestListCtrl.isFiltered()" translate="GUEST_TABLE_EMPTY_NO_MATCHES"></div></div></div></div></div>';var n,r,i,a};var o=/["&<>]/},{"pug-runtime":2}],41:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").controller("HotspotAnalyticsOverviewController",[function(){return new function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}}])},{}],42:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiHotspotAnalyticsOverview",[function(){return{controller:"HotspotAnalyticsOverviewController",controllerAs:"hotspotAnalyticsOverviewCtrl",template:t("./hotspotAnalyticsOverview.pug")(),replace:!0}}])},{"./hotspotAnalyticsOverview.pug":43}],43:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="unifiHotspotAnalyticsOverview"><div class="appContainer appContainer--centered"><div class="appRow appRow--comfy verticalRhythmTop--cozy"><div class="col--xs12 col--smash"><div class="alignCenter">TODO</div></div></div></div></div>'}},{"pug-runtime":2}],44:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("OperatorButtonDeleteController",["BaseButtonController","$translate","account","frame","heyToasts","operators",function(t,e,n,r,i,a){return new(function(n){function s(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(s.__proto__||Object.getPrototypeOf(s)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(s,t),o(s,[{key:"onModelChange",value:function(){}},{key:"remove",value:function(t){var n=this;return t.preventDefault(),t.stopPropagation(),r.show("confirm",{title:function(){return e.instant("OPERATOR_ACTIONS_DELETE_CONFIRM_TITLE",{name:n.model.get("name")})},message:function(){return e.instant("OPERATOR_ACTIONS_DELETE_CONFIRM_MESSAGE",{name:n.model.get("name")})},options:angular.noop}).then(function(){return n.isPending=!0,i.handlePromise(a.remove(n.model))}).finally(function(){n.isPending=!1})}}]),s}())}])},{}],45:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiOperatorButtonDelete",[function(){return{scope:{model:"=unifiOperatorButtonDelete",isResponsive:"=unifiOperatorButtonDeleteIsResponsive"},controller:"OperatorButtonDeleteController",controllerAs:"operatorButtonDeleteCtrl",template:t("./operatorButtonDelete.pug")(),replace:!0,link:function(t,e,n,o){t.$watch("model",function(t){o.updateModel(t)})}}}])},{"./operatorButtonDelete.pug":46}],46:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<button ng-click="operatorButtonDeleteCtrl.remove($event)" ng-class="{\'is-responsive\': isResponsive}" ng-disabled="operatorButtonDeleteCtrl.isPending" title="{{\'OPERATOR_ACTIONS_DELETE\' | translate}}"><span class="button__icon icon" ng-class="operatorButtonDeleteCtrl.isPending ? \'ubnt-icon--clock-2\' : \'ubnt-icon--trashcan\'"></span><span class="button__label" translate="OPERATOR_ACTIONS_DELETE"></span></button>'}},{"pug-runtime":2}],47:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("OperatorListController",["BasePaginatedListController","operators","OperatorFilter","site","UseWebrtc",function(t,e,n,r,i){return new(function(a){function s(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s);var t=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(s.__proto__||Object.getPrototypeOf(s)).call(this));return t.operators=e,t.site=r,t.filter=new n,t.defaultSortBy="name",t.defaultSortDesc=!1,t.UseWebrtc=i,t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(s,t),o(s,[{key:"initFilters",value:function(){this.isFiltered=this.filter.isFiltered.bind(this.filter)}},{key:"getCollection",value:function(){return e.repository.collection}},{key:"isWebrtc",value:function(){return i}},{key:"getOperatorLoginUrl",value:function(){return["hotspot","account","login",r.getActiveSite()].join("/")}}]),s}())}])},{}],48:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiOperatorList",["PaginatedListDirective",function(e){return new e("operator",t("./operatorList.pug")())}])},{"./operatorList.pug":49}],49:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="ubntPanelContainer ubntPanelContainer--withHeaderPanel"><div class="ubntHeaderPanel ubntHeaderPanel--primary ubntHeaderPanel--expandable"><div class="ubntHeader overflow-visible"><div class="appActionBarFilters"><div class="ubntButtonGroup ubntButtonGroup--cozy"><button class="ubntButton ubntButton--primary" type="button" title="{{\'OPERATOR_ACTIONS_CREATE_NEW_OPERATOR\' | translate}}" frame-show="createOperator"><span class="button__icon icon ubnt-icon--plus"></span><span translate="OPERATOR_ACTIONS_CREATE_NEW_OPERATOR"></span></button><a class="ubntButton ubntButton--primary visible--smUp" ng-if="!operatorListCtrl.isWebrtc()" ng-href="{{operatorListCtrl.getOperatorLoginUrl()}}" target="_blank" title="{{\'OPERATOR_ACTIONS_OPEN_LOGIN\' | translate}}"><span class="button__icon icon ubnt-icon--key"></span><span translate="OPERATOR_ACTIONS_OPEN_LOGIN"></span></a></div></div><div class="appActionBarFilters"><div class="appActionBarFilter appActionBarFilter--search"><unifi-search class="ubntFormGroup--headerSearch" unifi-search-on-change="operatorListCtrl.onSearchQueryChange(searchQuery)" unifi-search-config-group="\'header\'" unifi-search-is-busy="operatorListCtrl.view.isRefreshing()"></unifi-search></div></div></div></div><div class="ubntMainPanel ubntMainPanel--feature"><div class="ubntPanelContent ubntPanelContent--scrollable"><table class="ubntTable ubntTable--hoverable ubntTable--noWrap mt-1" id="operatorsTable" collection-view-sort="operatorListCtrl.view" ng-show="operatorListCtrl.view.getModels().length"><thead><tr><th class="operatorName" collection-view-sort-by="name"><span translate="OPERATOR_TABLE_HEADER_NAME"></span></th><th class="operatorPassword" collection-view-sort-by="x_password"><span translate="OPERATOR_TABLE_HEADER_PASSWORD"></span></th><th class="operatorNotes visible--smUp" collection-view-sort-by="note"><span translate="OPERATOR_TABLE_HEADER_NOTES"></span></th><th class="operatorActions ubntTableCell--smash"></th></tr></thead><tfoot ng-if="operatorListCtrl.view.getModels().length"><tr><td class="ubntForm ubnt-mod-cozy" colspan="9"><unifi-aura-pagination unifi-aura-pagination-current-page="operatorListCtrl.currentPage" unifi-aura-pagination-rows-per-page="operatorListCtrl.rowsPerPage" unifi-aura-pagination-total-rows="operatorListCtrl.view.getModels().length"></unifi-aura-pagination></td></tr></tfoot><tbody><tr collection-view-repeat="model in operatorListCtrl.view.getModels(), startFrom (operatorListCtrl.currentPage - 1) * operatorListCtrl.rowsPerPage, limitTo operatorListCtrl.rowsPerPage" data-id="{{::model.id}}"><td class="operatorName">{{::model.get(\'name\')}}</td><td class="operatorPassword">{{::model.get(\'x_password\')}}</td><td class="operatorNotes visible--smUp">{{::model.get(\'note\') | orEmptyPlaceholder}}</td><td class="operatorActions ubntTableCell--withActions ubntTableCell--smash"><div class="ubntTableCell__actions ubntTableCell__actions--inline"><div class="ubntButtonGroup ubntButtonGroup--cozy mr-2"><button class="ubntButton ubntButton--link" unifi-operator-button-delete="::model" unifi-operator-button-delete-is-labeled="true"></button></div></div></td></tr></tbody></table><div class="ubntNoContent" ng-if="!operatorListCtrl.view.getModels().length"><div class="ubntNoContent__icon"><unifi-no-content-icon unifi-no-content-icon="\'default\'" unifi-no-content-icon-class="[\'ubntIcon\']"></unifi-no-content-icon></div><div class="ubntNoContent__title" translate="OPERATOR_TABLE_EMPTY_HEADER"></div><div class="ubntNoContent__details" ng-if="!operatorListCtrl.isFiltered()" translate="OPERATOR_TABLE_EMPTY_NO_OPERATORS"></div><div class="ubntNoContent__details" ng-if="operatorListCtrl.isFiltered()" translate="OPERATOR_TABLE_EMPTY_NO_MATCHES"></div></div></div></div></div>'}},{"pug-runtime":2}],50:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("PaymentButtonRefundController",["BaseButtonController","$translate","frame","heyToasts","paymentUtils",function(t,e,n,r,i){return new(function(a){function s(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(s.__proto__||Object.getPrototypeOf(s)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(s,t),o(s,[{key:"onModelChange",value:function(){}},{key:"isVoided",value:function(){return this.model&&"paid"!==this.model.get("status")}},{key:"refund",value:function(t){var o=this;return t.preventDefault(),t.stopPropagation(),n.show("confirm",{title:function(){return e.instant("PAYMENT_ACTIONS_REFUND_CONFIRM_TITLE")},message:function(){return e.instant("PAYMENT_ACTIONS_REFUND_CONFIRM_MESSAGE")},options:angular.noop}).then(function(){return o.isPending=!0,r.handlePromise(i.refund(o.model)).finally(function(){o.isPending=!1})})}}]),s}())}])},{}],51:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiPaymentButtonRefund",[function(){return{scope:{model:"=unifiPaymentButtonRefund",isResponsive:"=unifiPaymentButtonRefundIsResponsive"},controller:"PaymentButtonRefundController",controllerAs:"paymentButtonRefundCtrl",template:t("./paymentButtonRefund.pug")(),replace:!0,link:function(t,e,n,o){t.$watch("model",function(t){o.updateModel(t)}),t.$on("$destroy",function(){o.removeEventHandlers()})}}}])},{"./paymentButtonRefund.pug":52}],52:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<button ng-click="paymentButtonRefundCtrl.refund($event)" ng-class="{\'is-responsive\': isResponsive}" ng-disabled="paymentButtonRefundCtrl.isVoided() || paymentButtonRefundCtrl.isPending" title="{{\'PAYMENT_ACTIONS_REFUND\' | translate}}"><span class="button__icon icon" ng-class="paymentButtonRefundCtrl.isPending ? \'ubnt-icon--clock-2\' : \'ubnt-icon--arrow-drag\'"></span><span class="button__label" translate="PAYMENT_ACTIONS_REFUND"></span></button>'}},{"pug-runtime":2}],53:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("PaymentButtonRemoveController",["BaseButtonController","$translate","frame","heyToasts","paymentUtils",function(t,e,n,r,i){return new(function(a){function s(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(s.__proto__||Object.getPrototypeOf(s)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(s,t),o(s,[{key:"onModelChange",value:function(){}},{key:"remove",value:function(){var t=this;return n.show("confirm",{title:function(){return e.instant("PAYMENT_ACTIONS_REMOVE_CONFIRM_TITLE")},message:function(){return e.instant("PAYMENT_ACTIONS_REMOVE_CONFIRM_MESSAGE")},options:angular.noop}).then(function(){return t.isPending=!0,r.handlePromise(i.remove(t.model)).finally(function(){t.isPending=!1})})}}]),s}())}])},{}],54:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiPaymentButtonRemove",[function(){return{scope:{model:"=unifiPaymentButtonRemove"},controller:"PaymentButtonRemoveController",controllerAs:"paymentButtonRemoveCtrl",template:t("./paymentButtonRemove.pug")(),replace:!0,link:function(t,e,n,o){t.$watch("model",function(t){o.updateModel(t)}),t.$on("$destroy",function(){o.removeEventHandlers()})}}}])},{"./paymentButtonRemove.pug":55}],55:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<button ng-click="paymentButtonRemoveCtrl.remove()" ng-class="{\'is-responsive\': isResponsive}" ng-disabled="paymentButtonRemoveCtrl.isPending" title="{{\'PAYMENT_ACTIONS_REMOVE\' | translate}}"><span class="button__icon icon" ng-class="paymentButtonRemoveCtrl.isPending ? \'ubnt-icon--clock-2\' : \'ubnt-icon--trash\'"></span><span class="button__label" translate="PAYMENT_ACTIONS_REMOVE"></span></button>'}},{"pug-runtime":2}],56:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("PaymentButtonRemovePersonalController",["BaseButtonController","$translate","frame","heyToasts","paymentUtils",function(t,e,n,r,i){return new(function(a){function s(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(s.__proto__||Object.getPrototypeOf(s)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(s,t),o(s,[{key:"onModelChange",value:function(){}},{key:"hasPersonalData",value:function(){var t=this;return this.model&&["first_name","last_name","name","email","info"].some(function(e){return!!t.model.get(e)})}},{key:"remove",value:function(){var t=this;return n.show("confirm",{title:function(){return e.instant("PAYMENT_ACTIONS_REMOVE_PERSONAL_DATA_CONFIRM_TITLE")},message:function(){return e.instant("PAYMENT_ACTIONS_REMOVE_PERSONAL_DATA_CONFIRM_MESSAGE")},options:angular.noop}).then(function(){return t.isPending=!0,r.handlePromise(i.removePersonalData(t.model)).finally(function(){t.isPending=!1})})}}]),s}())}])},{}],57:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiPaymentButtonRemovePersonal",[function(){return{scope:{model:"=unifiPaymentButtonRemovePersonal"},controller:"PaymentButtonRemovePersonalController",controllerAs:"paymentButtonRemovePersonalCtrl",template:t("./paymentButtonRemovePersonal.pug")(),replace:!0,link:function(t,e,n,o){t.$watch("model",function(t){o.updateModel(t)}),t.$on("$destroy",function(){o.removeEventHandlers()})}}}])},{"./paymentButtonRemovePersonal.pug":58}],58:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<button ng-click="paymentButtonRemovePersonalCtrl.remove()" ng-class="{\'is-responsive\': isResponsive}" ng-disabled="paymentButtonRemovePersonalCtrl.isPending || !paymentButtonRemovePersonalCtrl.hasPersonalData()" title="{{\'PAYMENT_ACTIONS_REMOVE_PERSONAL_DATA\' | translate}}"><span class="button__icon icon" ng-class="paymentButtonRemovePersonalCtrl.isPending ? \'ubnt-icon--clock-2\' : \'ubnt-icon--trash\'"></span><span class="button__label" translate="PAYMENT_ACTIONS_REMOVE_PERSONAL_DATA"></span></button>'}},{"pug-runtime":2}],59:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("RevenueChartController",["chartUtils","currencyUtils","guests","hotspotAnalytics","hotspotConfig","moment",function(t,e,n,r,i,a){return new(function(){function s(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s)}return o(s,[{key:"$onInit",value:function(){this.chartData=[],n.repository.collection.on("sync",this.prepareCharts,this),this.initConfig(),this.prepareCharts()}},{key:"$onDestroy",value:function(){n.repository.collection.off("sync",this.prepareCharts,this)}},{key:"initConfig",value:function(){var t=i.hasPaymentsEnabled();this.chartConfig={valueProperties:[t?"amount":"users"],withXLabels:!0,unit:r.getCurrency(),getXLabel:function(t){return a.utc(t.x,"x").format("D")},getYLabel:function(n,o){return t?e.formatAmount(void 0===n?0:n,o):n}}}},{key:"updateConfig",value:function(){this.chartConfig.unit=r.getCurrency()}},{key:"prepareCharts",value:function(){this.prepareData(n.repository.collection),this.updateConfig()}},{key:"prepareData",value:function(e){var n=r.getCurrency(),o=parseInt(r.getStart()),i=parseInt(r.getEnd()),a=e.reduce(function(e,o){var r=1e3*o.get("start"),i=t.normalizeTime(r);return e[i]||(e[i]={x:i,amount:0,currency:n,paid:0,users:0}),"credit"===o.get("authorized_by")&&(e[i].paid+=1,o.get("currency")===n&&(e[i].amount+=parseFloat(o.get("amount")))),e[i].users+=1,e},{}),s=Object.keys(a).map(function(t){return{x:a[t].x,amount:a[t].amount,currency:a[t].currency,paid:a[t].paid,users:a[t].users}}).sort(function(t,e){return t.x-e.x});this.chartData=t.fillWithPaddingDataPoints(s,o,i,!0).map(function(t){return t.amount=t.amount||(t.users>0?0:null),t})}}]),s}())}])},{}],60:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiRevenueChart",["hotspotAnalytics",function(e){return{controller:"RevenueChartController",controllerAs:"revenueChartCtrl",template:t("./revenueChart.pug")(),replace:!0,link:function(t,n,o,r){t.$watch(function(){return e.getCurrency()},function(){r.prepareCharts()})}}}])},{"./revenueChart.pug":61}],61:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="unifiColumnChart unifiHotspotAnalyticsRevenueGraph unifiColumnGraph--success"><div class="verticalRhythmTop--cozy"><unifi-column-chart class="unifiColumnGraph unifiHotspotAnalyticsRevenueGraph__chart" unifi-column-chart-config="revenueChartCtrl.chartConfig" unifi-column-chart-data="revenueChartCtrl.chartData"><unifi-column-chart-transclude-tooltip><div class="alignCenter"><div class="noWrap">{{$parent.entry.x | moment: [\'utc\', \'format\']: \'dddd, MMMM D YYYY\'}}</div><div class="noWrap"><strong translate="HOTSPOT_ANALYTICS_LABEL_USERS" translate-values="{count: $parent.entry.users}" translate-interpolation="messageformat"></strong><strong class="unifiHotspotAnalytics__valueSeparator" ng-show="revenueChartCtrl.hotspotConfig.hasPaymentsEnabled()" translate="HOTSPOT_ANALYTICS_LABEL_PAID_USERS" translate-values="{count: $parent.$parent.entry.paid}" translate-interpolation="messageformat"></strong><strong class="unifiHotspotAnalytics__valueSeparator" ng-show="revenueChartCtrl.hotspotConfig.hasPaymentsEnabled()">{{$parent.entry | currency}}</strong></div></div></unifi-column-chart-transclude-tooltip></unifi-column-chart></div></div>'}},{"pug-runtime":2}],62:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),r=function t(e,n,o){null===e&&(e=Function.prototype);var r=Object.getOwnPropertyDescriptor(e,n);if(void 0===r){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,o)}if("value"in r)return r.value;var a=r.get;return void 0!==a?a.call(o):void 0};angular.module("app-unifi-hotspot").controller("TransactionListController",["BasePaginatedListController","transactions","TransactionFilter","transactionListColumnStore",function(t,e,n,i){return new(function(a){function s(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s);var t=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(s.__proto__||Object.getPrototypeOf(s)).call(this));return t.columnGroup=null,t.filter=new n,t.defaultSortBy="datetime",t.defaultSortDesc=!0,t.columnStore=i,t.isColumnVisible=t.columnStore.isColumnVisible.bind(t.columnStore),t.isCustomized=t.columnStore.getCustomized.bind(t.columnStore),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(s,t),o(s,[{key:"initView",value:function(){r(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"initView",this).call(this),this.filterCountsListener=e.repository.collection.onEvent("update",this.setFilterCounts.bind(this),{leading:!1}),this.setFilterCounts()}},{key:"destroyView",value:function(){r(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"destroyView",this).call(this),this.filterCountsListener.stopListening()}},{key:"initFilters",value:function(){var t=this.listState.getFilter("transactionType");"all"!==t&&(this.columnGroup=t,this.filter.setTransactionTypeFilter(t)),this.isFiltered=this.filter.isFiltered.bind(this.filter),this.initFilterView()}},{key:"initFilterView",value:function(){var t=this;this.filterViewGroups=[{id:"transactionType",translationKey:"PAYMENT_FILTER_TRANSACTION_TYPE",items:[{id:"all",translationKey:"PAYMENT_FILTER_TRANSACTION_TYPE_ALL",excludeFromSummary:!0,getCount:function(){return t.counts.payment+t.counts.social},isSelected:function(){return!t.filter.hasTransactionTypeFilter()},onSelect:function(){return t.clearTransactionTypeFilter()}},{id:"payment",translationKey:"PAYMENT_FILTER_TRANSACTION_TYPE_PAYMENTS",getCount:function(){return t.counts.payment},isSelected:function(){return"payments"===t.filter.getTransactionTypeFilter()},onSelect:function(){return t.setTransactionTypeFilter("payments")}},{id:"social",translationKey:"PAYMENT_FILTER_TRANSACTION_TYPE_SOCIAL",getCount:function(){return t.counts.social},isSelected:function(){return"social"===t.filter.getTransactionTypeFilter()},onSelect:function(){return t.setTransactionTypeFilter("social")}}]}]}},{key:"getCollection",value:function(){return e.repository.collection}},{key:"getWithin",value:function(){return e.getWithin()}},{key:"onUpdateWithin",value:function(t){this.listState.addFilter("within",t),e.updateWithin(t)}},{key:"setFilterCounts",value:function(){var t=this;this.counts={payment:0,social:0},e.repository.collection.each(function(e){e.isSocial()?++t.counts.social:++t.counts.payment})}},{key:"clearTransactionTypeFilter",value:function(){this.beginStateChange(),this.columnGroup=null,this.listState.removeFilter("transactionType"),this.filter.clearTransactionTypeFilter(),this.commitStateChange()}},{key:"setTransactionTypeFilter",value:function(t){this.beginStateChange(),this.columnGroup=t,this.listState.addFilter("transactionType",t),this.filter.setTransactionTypeFilter(t),this.commitStateChange()}},{key:"refreshColumns",value:function(){this.isStateChanging()||(this.columnStore.setColumnGroup(this.columnGroup),this.columnStore.setColumns())}},{key:"refresh",value:function(t){return this.refreshColumns(t),r(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"refresh",this).call(this)}},{key:"commitStateChange",value:function(){var t=this;r(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"commitStateChange",this).call(this).then(function(){t.setFilterCounts()})}}]),s}())}])},{}],63:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiTransactionList",["PaginatedListDirective",function(e){return new e("transaction",t("./transactionList.pug")())}])},{"./transactionList.pug":64}],64:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e=e+'<div class="ubntPanelContainer ubntPanelContainer--withHeaderPanel"><div class="ubntHeaderPanel ubntHeaderPanel--primary ubntHeaderPanel--expandable"><div class="ubntHeader overflow-visible"><div class="appActionBarFilters"><div class="appActionBarFilter"><unifi-time-filter-dropdown unifi-time-filter-dropdown-default-hours="transactionListCtrl.getWithin()" unifi-time-filter-dropdown-callback="transactionListCtrl.onUpdateWithin(hours)"></unifi-time-filter-dropdown></div><unifi-ui-list-filter-dropdown class="visible--mdDown" unifi-ui-list-filter-dropdown-config="transactionListCtrl.filterViewGroups" unifi-ui-list-filter-dropdown-filter-by-label="{{\'COMMON_LABEL_FILTER_BY\' | translate}}" unifi-ui-list-filter-dropdown-filter-by-all-label="{{\'COMMON_LABEL_FILTER_ALL\' | translate}}"></unifi-ui-list-filter-dropdown><unifi-ui-list-filter-buttons class="visible--lgUp" unifi-ui-list-filter-buttons-config="transactionListCtrl.filterViewGroups"></unifi-ui-list-filter-buttons></div><div class="appActionBarFilters"><div class="appActionBarFilter appActionBarFilter--search"><unifi-search class="ubntFormGroup--headerSearch" unifi-search-on-change="transactionListCtrl.onSearchQueryChange(searchQuery)" unifi-search-config-group="\'header\'" unifi-search-is-busy="transactionListCtrl.view.isRefreshing()"></unifi-search></div></div></div></div><div class="ubntMainPanel ubntMainPanel--feature"><div class="ubntPanelContent ubntPanelContent--scrollable"><table class="ubntTable ubntTable--hoverable ubntTable--noWrap mt-1" id="transactionsTable" collection-view-sort="transactionListCtrl.view" ng-show="transactionListCtrl.view.getModels().length"><thead><tr><th class="transactionTime visible--smUp" ng-if="transactionListCtrl.isColumnVisible(\'datetime\')" collection-view-sort-by="datetime"><span translate="PAYMENT_TABLE_HEADER_TIME"></span></th><th class="transactionLastName" ng-if="transactionListCtrl.isColumnVisible(\'last_name\')" collection-view-sort-by="last_name"><span translate="PAYMENT_TABLE_HEADER_LAST_NAME"></span></th><th class="transactionFirstName" ng-if="transactionListCtrl.isColumnVisible(\'first_name\')" collection-view-sort-by="first_name"><span translate="PAYMENT_TABLE_HEADER_FIRST_NAME"></span></th><th class="transactionEmail" ng-if="transactionListCtrl.isColumnVisible(\'email\')" collection-view-sort-by="email"><span translate="PAYMENT_TABLE_HEADER_EMAIL"></span></th><th class="transactionPackage visible--mdUp" ng-if="transactionListCtrl.isColumnVisible(\'package\')" collection-view-sort-by="package"><span translate="PAYMENT_TABLE_HEADER_PACKAGE"></span></th><th class="transactionAmount" ng-if="transactionListCtrl.isColumnVisible(\'amount\')" collection-view-sort-by="amount"><span translate="PAYMENT_TABLE_HEADER_AMOUNT"></span></th><th class="transactionExtraInfo visible--lgUp" ng-if="transactionListCtrl.isColumnVisible(\'info\')"><span translate="PAYMENT_TABLE_HEADER_EXTRA_INFO"></span></th><th class="transactionGateway" ng-if="transactionListCtrl.isColumnVisible(\'gateway\')" collection-view-sort-by="gateway"><span translate="PAYMENT_TABLE_HEADER_GATEWAY"></span></th><th class="transactionStatus visible--lgUp" ng-if="transactionListCtrl.isColumnVisible(\'status\')" collection-view-sort-by="status"><span translate="PAYMENT_TABLE_HEADER_STATUS"></span></th><th class="transactionActions ubntTableCell--withActions ubntTableCell--smash"><unifi-aura-list-column-selector unifi-aura-list-column-selector-column-store="transactionListCtrl.columnStore"></unifi-aura-list-column-selector></th></tr></thead><tfoot ng-if="transactionListCtrl.view.getModels().length"><tr><td class="ubntForm ubnt-mod-cozy" colspan="8"><unifi-aura-pagination unifi-aura-pagination-current-page="transactionListCtrl.currentPage" unifi-aura-pagination-rows-per-page="transactionListCtrl.rowsPerPage" unifi-aura-pagination-total-rows="transactionListCtrl.view.getModels().length"></unifi-aura-pagination></td></tr></tfoot><tbody><tr collection-view-repeat="model in transactionListCtrl.view.getModels(), startFrom (transactionListCtrl.currentPage - 1) * transactionListCtrl.rowsPerPage, limitTo transactionListCtrl.rowsPerPage" collection-view-repeat-watch="transactionListCtrl.columnStore.getColumns()" data-id="{{::model.id}}"><td class="transactionTime visible--smUp" ng-if="::transactionListCtrl.isColumnVisible(\'datetime\')">{{::model.get(\'datetime\') | moment: \'format\': \'datetime\'}}</td><td class="transactionLastName" ng-if="::transactionListCtrl.isColumnVisible(\'last_name\')">{{::model.get(\'last_name\') | orEmptyPlaceholder}}</td><td class="transactionFirstName" ng-if="::transactionListCtrl.isColumnVisible(\'first_name\')">{{::model.get(\'first_name\') | orEmptyPlaceholder}}</td><td class="transactionEmail" ng-if="::transactionListCtrl.isColumnVisible(\'email\')">{{::model.get(\'email\') | orEmptyPlaceholder}}</td><td class="transactionPackage visible--mdUp" ng-if="::transactionListCtrl.isColumnVisible(\'package\')">{{::model.get(\'package\') | orEmptyPlaceholder}}</td><td class="transactionAmount" ng-if="::transactionListCtrl.isColumnVisible(\'amount\')">{{::(model | currency) | orEmptyPlaceholder}}</td><td class="transactionExtraInfo visible--lgUp" ng-if="::transactionListCtrl.isColumnVisible(\'info\')">{{::model.get(\'info\') | orEmptyPlaceholder}}</td><td class="transactionGateway" ng-if="::transactionListCtrl.isColumnVisible(\'gateway\')">{{::model.get(\'gateway\') | transactionGateway}}</td><td class="transactionStatus visible--lgUp" ng-if="::transactionListCtrl.isColumnVisible(\'status\')">{{::model.get(\'status\') | paymentStatus}}</td><td class="transactionActions ubntTableCell--withActions ubntTableCell--smash"><div class="ubntTableCell__actions ubntTableCell__actions--inline"><div class="ubntButtonGroup ubntButtonGroup--cozy mr-2"'+(n="unifi-if-role-admin",r=!0,i=!0,a=!0,!1!==r&&null!=r&&(r||"class"!==n&&"style"!==n)?!0===r?" "+(a?n:n+'="'+n+'"'):("function"==typeof r.toJSON&&(r=r.toJSON()),"string"==typeof r||(r=JSON.stringify(r),i||-1===r.indexOf('"'))?(i&&(r=function(t){var e=""+t,n=o.exec(e);if(!n)return t;var r,i,a,s="";for(r=n.index,i=0;r<e.length;r++){switch(e.charCodeAt(r)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==r&&(s+=e.substring(i,r)),i=r+1,s+=a}return i!==r?s+e.substring(i,r):s}(r))," "+n+'="'+r+'"'):" "+n+"='"+r.replace(/'/g,"'")+"'"):"")+'><button class="ubntButton ubntButton--link" ng-if="::!model.isSocial()" unifi-payment-button-refund="model"></button><button class="ubntButton ubntButton--link" unifi-payment-button-remove="model"></button><button class="ubntButton ubntButton--link" unifi-payment-button-remove-personal="model"></button></div></div></td></tr></tbody></table><div class="ubntNoContent" ng-if="!transactionListCtrl.view.getModels().length"><div class="ubntNoContent__icon"><unifi-no-content-icon unifi-no-content-icon="\'default\'" unifi-no-content-icon-class="[\'ubntIcon\']"></unifi-no-content-icon></div><div class="ubntNoContent__title" translate="PAYMENT_TABLE_EMPTY_HEADER"></div><div class="ubntNoContent__details" ng-if="!transactionListCtrl.isFiltered()" translate="PAYMENT_TABLE_EMPTY_NO_TRANSACTIONS"></div><div class="ubntNoContent__details" ng-if="transactionListCtrl.isFiltered()" translate="PAYMENT_TABLE_EMPTY_NO_MATCHES"></div></div></div></div></div>';var n,r,i,a};var o=/["&<>]/},{"pug-runtime":2}],65:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("VoucherButtonPrintAllController",["heyToasts","vouchers",function(t,e){return new(function(){function n(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),this.isPending=!1}return o(n,[{key:"printAllVouchers",value:function(){var n=this;this.isPending=!0,e.printVouchers().catch(function(e){t.pushError(e)}).finally(function(){n.isPending=!1})}}]),n}())}])},{}],66:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiVoucherButtonPrintAll",[function(){return{scope:{isResponsive:"=unifiVoucherButtonPrintAllIsResponsive"},controller:"VoucherButtonPrintAllController",controllerAs:"voucherButtonPrintAllCtrl",template:t("./voucherButtonPrintAll.pug")(),replace:!0}}])},{"./voucherButtonPrintAll.pug":67}],67:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<button ng-click="voucherButtonPrintAllCtrl.printAllVouchers()" ng-class="{\'is-responsive\': isResponsive}" title="{{\'VOUCHER_ACTIONS_PRINT_ALL_UNUSED\' | translate}}" ng-disabled="voucherButtonPrintAllCtrl.isPending"><span class="button__icon icon ubnt-icon--printer"></span><span class="button__label" translate="VOUCHER_ACTIONS_PRINT_ALL_UNUSED"></span></button>'}},{"pug-runtime":2}],68:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("VoucherButtonPrintOneController",["BaseButtonController","vouchers","heyToasts",function(t,e,n){return new(function(r){function i(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,i);var t=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(i.__proto__||Object.getPrototypeOf(i)).call(this));return t.isPending=!1,t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(i,t),o(i,[{key:"onModelChange",value:function(){}},{key:"print",value:function(){var t=this;this.isPending=!0,e.printVouchers({_id:this.model.id}).catch(function(t){n.pushError(t)}).finally(function(){t.isPending=!1})}},{key:"isValid",value:function(){return this.model&&0===this.model.get("used")}}]),i}())}])},{}],69:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiVoucherButtonPrintOne",[function(){return{scope:{model:"=unifiVoucherButtonPrintOne",isLabeled:"=unifiVoucherButtonPrintOneIsLabeled",isResponsive:"=unifiVoucherButtonPrintOneIsResponsive"},controller:"VoucherButtonPrintOneController",controllerAs:"voucherButtonPrintOneCtrl",template:t("./voucherButtonPrintOne.pug")(),replace:!0,link:function(t,e,n,o){t.$watch("model",function(t){o.updateModel(t)}),t.$on("$destroy",function(){o.removeEventHandlers()})}}}])},{"./voucherButtonPrintOne.pug":70}],70:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<button ng-click="voucherButtonPrintOneCtrl.print()" ng-class="{\'is-responsive\': isResponsive}" ng-disabled="!voucherButtonPrintOneCtrl.isValid() || voucherButtonPrintOneCtrl.isPending" title="{{\'VOUCHER_ACTIONS_PRINT_ONE\' | translate}}"><span class="button__icon icon" ng-class="voucherButtonPrintOneCtrl.isPending && isLabeled ? \'ubnt-icon--clock-2\' : \'ubnt-icon--printer\'"></span><span class="button__label" ng-if="::isLabeled" translate="VOUCHER_ACTIONS_PRINT_ONE"></span></button>'}},{"pug-runtime":2}],71:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("VoucherButtonRevokeController",["BaseButtonController","$translate","frame","heyToasts","vouchers","voucherUtils",function(t,e,n,r,i,a){return new(function(s){function l(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,l),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(l.__proto__||Object.getPrototypeOf(l)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(l,t),o(l,[{key:"onModelChange",value:function(){}},{key:"revoke",value:function(t){var o=this;return t.preventDefault(),t.stopPropagation(),n.show("confirm",{title:function(){return e.instant("VOUCHER_ACTIONS_REVOKE_CONFIRM_TITLE",{code:a.formatCode(o.model.get("code"))})},message:function(){return e.instant("VOUCHER_ACTIONS_REVOKE_CONFIRM_MESSAGE",{code:a.formatCode(o.model.get("code"))})},options:angular.noop}).then(function(){return o.isPending=!0,r.handlePromise(i.revoke(o.model))}).finally(function(){o.isPending=!1})}}]),l}())}])},{}],72:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiVoucherButtonRevoke",[function(){return{scope:{model:"=unifiVoucherButtonRevoke",isLabeled:"=unifiVoucherButtonRevokeIsLabeled",isResponsive:"=unifiVoucherButtonRevokeIsResponsive"},controller:"VoucherButtonRevokeController",controllerAs:"voucherButtonRevokeCtrl",template:t("./voucherButtonRevoke.pug")(),replace:!0,link:function(t,e,n,o){t.$watch("model",function(t){o.updateModel(t)}),t.$on("$destroy",function(){o.removeEventHandlers()})}}}])},{"./voucherButtonRevoke.pug":73}],73:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<button ng-click="voucherButtonRevokeCtrl.revoke($event)" ng-class="{\'is-responsive\': isResponsive}" ng-disabled="voucherButtonRevokeCtrl.isPending" title="{{\'VOUCHER_ACTIONS_REVOKE\' | translate}}"><span class="button__icon icon" ng-class="voucherButtonRevokeCtrl.isPending && isLabeled ? \'ubnt-icon--clock-2\' : \'ubnt-icon--trashcan\'"></span><span class="button__label" ng-if="::isLabeled" translate="VOUCHER_ACTIONS_REVOKE"></span></button>'}},{"pug-runtime":2}],74:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("VoucherDropdownPrintBatchController",["heyToasts","vouchers",function(t,e){return new(function(){function n(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),this.isPending=!1}return o(n,[{key:"getBatches",value:function(){return e.batches}},{key:"printBatch",value:function(n){var o=this;this.isPending=!0,e.printVouchers({create_time:n}).catch(function(e){t.pushError(e)}).finally(function(){o.isPending=!1})}}]),n}())}])},{}],75:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiVoucherDropdownPrintBatch",[function(){return{controller:"VoucherDropdownPrintBatchController",controllerAs:"voucherDropdownPrintBatchCtrl",template:t("./voucherDropdownPrintBatch.pug")(),replace:!0}}])},{"./voucherDropdownPrintBatch.pug":76}],76:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div on-outside-element-click="voucherDropdownPrintBatchCtrl.printBatchDropdownVisible = false" ng-click="voucherDropdownPrintBatchCtrl.printBatchDropdownVisible = !voucherDropdownPrintBatchCtrl.printBatchDropdownVisible" ng-disabled="voucherDropdownPrintBatchCtrl.isPending"><span class="button__icon icon ubnt-icon--printer"></span><span translate="VOUCHER_ACTIONS_PRINT_BATCH"></span><span class="button__icon button__icon--right icon ubnt-icon--pointer-down"></span><div class="ubntPopover ubntPopover--bottomRight type-reset" ng-class="voucherDropdownPrintBatchCtrl.printBatchDropdownVisible ? \'is-visible\' : \'\'"><div class="ubntPopover__main"><div class="ubntPopoverContent"><table class="ubntTable ubntTable--list ubntTable--actionable ubntTable--hoverable mb-0"><tr class="clickable" ng-repeat="batch in voucherDropdownPrintBatchCtrl.getBatches()" ng-click="voucherDropdownPrintBatchCtrl.printBatch(batch.createTime)"><td>{{ batch.name }}</td></tr></table></div></div></div></div>'}},{"pug-runtime":2}],77:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("VoucherListController",["$translate","BasePaginatedListController","BatchVoucherModel","frame","heyToasts","listBatchEditControllerMixin","listCollapsibleColumnControllerMixin","VoucherCollection","voucherListColumnStore","VoucherFilter","vouchers",function(t,e,n,r,i,a,s,l,u,c,p){return new(function(d){function f(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,f);var t=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(f.__proto__||Object.getPrototypeOf(f)).call(this));return t.columnStore=u,t.filter=new c,t.collapsibleColumnKeyActions="collapse:voucher:actions",t.defaultSortBy="create_time",t.defaultSortDesc=!0,t.isColumnVisible=t.columnStore.isColumnVisible.bind(t.columnStore),t.isCustomized=t.columnStore.getCustomized.bind(t.columnStore),s(t),a(t),t.initBatchEditModel("batch:voucher","batch:voucher",l,n),t.useBatchEditId("batch:voucher"),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(f,e),o(f,[{key:"batchRemove",value:function(){var e=this;return r.show("confirm",{title:function(){return t.instant("VOUCHER_ACTIONS_BATCH_REVOKE_CONFIRM_TITLE")},message:function(){return t.instant("VOUCHER_ACTIONS_BATCH_REVOKE_CONFIRM_MESSAGE",{count:e.getBatchEditDestination().length},"messageformat")},options:angular.noop}).then(function(){return e.isPending=!0,p.batchRevoke(e.getBatchEditModel()).then(function(e){return i.pushSuccess(t.instant("VOUCHER_ACTIONS_BATCH_REVOKE_SUCCESS",{count:e},"messageformat"))}).catch(function(){return i.pushError(t.instant("VOUCHER_ACTIONS_BATCH_REVOKE_ERROR"))})}).finally(function(){e.isPending=!1})}},{key:"initFilters",value:function(){this.isFiltered=this.filter.isFiltered.bind(this.filter)}},{key:"refresh",value:function(t){return this.refreshColumns(),e.prototype.refresh.call(this,t)}},{key:"refreshColumns",value:function(){this.isStateChanging()||this.columnStore.setColumns()}},{key:"getCollection",value:function(){return p.repository.collection}},{key:"getBytesFromMbytes",value:function(t){return t?1024*t*1024:""}},{key:"getBytesFromKbytes",value:function(t){return t?1024*t:""}}]),f}())}])},{}],78:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").directive("unifiVoucherList",["listBatchEditDirectiveMixin","PaginatedListDirective",function(e,n){var o=new n("voucher",t("./voucherList.pug")());return o.addMixin(e),o}])},{"./voucherList.pug":79}],79:[function(t,e,n){t("pug-runtime");function o(t,e,n,o){return!1!==e&&null!=e&&(e||"class"!==t&&"style"!==t)?!0===e?" "+(o?t:t+'="'+t+'"'):("function"==typeof e.toJSON&&(e=e.toJSON()),"string"==typeof e||(e=JSON.stringify(e),n||-1===e.indexOf('"'))?(n&&(e=function(t){var e=""+t,n=r.exec(e);if(!n)return t;var o,i,a,s="";for(o=n.index,i=0;o<e.length;o++){switch(e.charCodeAt(o)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==o&&(s+=e.substring(i,o)),i=o+1,s+=a}return i!==o?s+e.substring(i,o):s}(e))," "+t+'="'+e+'"'):" "+t+"='"+e.replace(/'/g,"'")+"'"):""}e.exports=function(t){var e="";return e=e+'<div class="ubntPanelContainer ubntPanelContainer--withHeaderPanel"><div class="ubntHeaderPanel ubntHeaderPanel--primary ubntHeaderPanel--expandable"><div class="ubntHeader overflow-visible"><div class="appActionBarFilters"><div class="ubntButtonGroup ubntButtonGroup--cozy"><button class="ubntButton ubntButton--primary" type="button"'+o("unifi-if-role-writeable",!0,!0,!0)+' frame-show="createVouchers" title="{{\'VOUCHER_ACTIONS_CREATE_VOUCHERS\' | translate}}"><span class="button__icon icon ubnt-icon--plus"></span><span translate="VOUCHER_ACTIONS_CREATE_VOUCHERS"></span></button><button class="ubntButton ubntButton--primary" ng-if="voucherListCtrl.getCollection().length"'+o("unifi-voucher-button-print-all",!0,!0,!0)+'></button><button class="ubntButton ubntButton--primary visible--mdUp" ng-if="voucherListCtrl.getCollection().length"'+o("unifi-voucher-dropdown-print-batch",!0,!0,!0)+'></button></div></div><div class="appActionBarFilters"><div class="appActionBarFilter"><div class="ubntButtonGroup ubntButtonGroup--cozy"><button class="ubntButton ubntButton--primary editBatchVouchers" type="button" ng-if="voucherListCtrl.isBatchEditable()" ng-disabled="!voucherListCtrl.getBatchEditDestination().length" ng-click="voucherListCtrl.batchRemove()"><span class="button__icon icon ubnt-icon--trashcan"></span><span translate="VOUCHER_ACTIONS_REVOKE_SELECTED"></span></button></div></div><div class="appActionBarFilter appActionBarFilter--search"><unifi-search class="ubntFormGroup--headerSearch" unifi-search-on-change="voucherListCtrl.onSearchQueryChange(searchQuery)" unifi-search-config-group="\'header\'" unifi-search-is-busy="voucherListCtrl.view.isRefreshing()"></unifi-search></div></div></div></div><div class="ubntMainPanel ubntMainPanel--feature"><div class="ubntPanelContent ubntPanelContent--scrollable"><table class="ubntTable ubntTable--hoverable ubntTable--noWrap mt-1" id="vouchersTable" collection-view-sort="voucherListCtrl.view" ng-show="voucherListCtrl.view.getModels().length"><thead><tr><th class="voucherCheckbox py-0" ng-if="voucherListCtrl.isBatchEditable()"><form class="ubntForm"><input type="checkbox" name="voucherListSelectAllBatchEdit" ng-checked="voucherListCtrl.selectAllBatchEdit" ng-click="voucherListCtrl.toggleSelectAllBatchEdit()" unifi-indeterminate-checkbox="voucherListCtrl.isSelectAllBatchEditIndeterminate"></form></th><th class="voucherCode" ng-if="voucherListCtrl.isColumnVisible(\'code\')" collection-view-sort-by="code"><span translate="VOUCHER_TABLE_HEADER_CODE"></span></th><th class="voucherCreateTime visible--smUp" ng-if="voucherListCtrl.isColumnVisible(\'create_time\')" collection-view-sort-by="create_time"><span translate="VOUCHER_TABLE_HEADER_CREATE_TIME"></span></th><th class="voucherDown visible--lgUp" ng-if="voucherListCtrl.isColumnVisible(\'qos_rate_max_down\')" collection-view-sort-by="qos_rate_max_down"><span translate="VOUCHER_TABLE_HEADER_DOWN"></span></th><th class="voucherUp visible--lgUp" ng-if="voucherListCtrl.isColumnVisible(\'qos_rate_max_up\')" collection-view-sort-by="qos_rate_max_up"><span translate="VOUCHER_TABLE_HEADER_UP"></span></th><th class="voucherByteQuota visible--lgUp" ng-if="voucherListCtrl.isColumnVisible(\'qos_usage_quota\')" collection-view-sort-by="qos_usage_quota"><span translate="VOUCHER_TABLE_HEADER_BYTE_QUOTA"></span></th><th class="voucherNotes visible--mdUp" ng-if="voucherListCtrl.isColumnVisible(\'note\')" collection-view-sort-by="note"><span translate="VOUCHER_TABLE_HEADER_NOTES"></span></th><th class="voucherDuration visible--mdUp" ng-if="voucherListCtrl.isColumnVisible(\'duration\')" collection-view-sort-by="duration"><span translate="VOUCHER_TABLE_HEADER_DURATION"></span></th><th class="voucherStatus" ng-if="voucherListCtrl.isColumnVisible(\'status\')"><span translate="VOUCHER_TABLE_HEADER_STATUS"></span></th><th class="voucherActions ubntTableCell--withActions ubntTableCell--smash"><unifi-aura-list-column-selector unifi-aura-list-column-selector-allow-batch-edit="!voucherListCtrl.account.isReadOnly()" unifi-aura-list-column-selector-is-batch-edit-enabled-by-default="true" unifi-aura-list-column-selector-column-store="voucherListCtrl.columnStore"></unifi-aura-list-column-selector></th></tr></thead><tfoot ng-if="voucherListCtrl.view.getModels().length"><tr><td class="ubntForm ubnt-mod-cozy" colspan="{{::voucherListCtrl.columnStore.getColumns().length + 1 + (voucherListCtrl.isBatchEditable() ? 1 : 0)}}"><div class="ubntButtonGroup"><button class="ubntButton ubntButton--link horizontalRhythm--cozy editBatchVouchers" ng-if="voucherListCtrl.isBatchEditable() && voucherListCtrl.getBatchEditDestination().length" ng-click="voucherListCtrl.batchRemove()"><span class="button__icon icon ubnt-icon--trashcan"></span><span translate="VOUCHER_ACTIONS_REVOKE_SELECTED_COUNT" translate-values="{count: voucherListCtrl.getBatchEditDestination().length}" translate-interpolation="messageformat"></span></button></div><unifi-aura-pagination unifi-aura-pagination-current-page="voucherListCtrl.currentPage" unifi-aura-pagination-rows-per-page="voucherListCtrl.rowsPerPage" unifi-aura-pagination-total-rows="voucherListCtrl.view.getModels().length"></unifi-aura-pagination></td></tr></tfoot><tbody><tr collection-view-repeat="model in voucherListCtrl.view.getModels(), startFrom (voucherListCtrl.currentPage - 1) * voucherListCtrl.rowsPerPage, limitTo voucherListCtrl.rowsPerPage" collection-view-repeat-watch-all="voucherListCtrl.isBatchEditable(); voucherListCtrl.columnStore.getColumns(); voucherListCtrl.isColumnCollapsed(voucherListCtrl.collapsibleColumnKeyActions)" data-id="{{::model.id}}"><td class="voucherCheckbox ubntTableCell--smash" ng-if="::voucherListCtrl.isBatchEditable()"><form class="ubntForm"><input type="checkbox" ng-checked="voucherListCtrl.isBatchEditSelected(model)" ng-click="voucherListCtrl.toggleBatchEdit(model); $event.stopPropagation();"></form></td><td class="voucherCode" ng-if="::voucherListCtrl.isColumnVisible(\'code\')">{{::model.get(\'code\') | voucherCode}}</td><td class="voucherCreateTime visible--smUp" ng-if="::voucherListCtrl.isColumnVisible(\'create_time\')">{{::model.get(\'create_time\') * 1000 | moment: \'format\': \'datetime\'}}</td><td class="voucherDown visible--lgUp" ng-if="::voucherListCtrl.isColumnVisible(\'qos_rate_max_down\')">{{::(voucherListCtrl.getBytesFromKbytes(model.get(\'qos_rate_max_down\')) | bps) | orEmptyPlaceholder}}</td><td class="voucherUp visible--lgUp" ng-if="::voucherListCtrl.isColumnVisible(\'qos_rate_max_up\')">{{::(voucherListCtrl.getBytesFromKbytes(model.get(\'qos_rate_max_up\')) | bps) | orEmptyPlaceholder}}</td><td class="voucherByteQuota visible--lgUp" ng-if="::voucherListCtrl.isColumnVisible(\'qos_usage_quota\')">{{::(voucherListCtrl.getBytesFromMbytes(model.get(\'qos_usage_quota\')) | bytes) | orEmptyPlaceholder}}</td><td class="voucherNotes visible--mdUp" ng-if="::voucherListCtrl.isColumnVisible(\'note\')">{{::model.get(\'note\') | orEmptyPlaceholder}}</td><td class="voucherDuration visible--mdUp" ng-if="::voucherListCtrl.isColumnVisible(\'duration\')">{{::model.get(\'duration\') * 60 | seconds}}</td><td class="voucherStatus" ng-if="::voucherListCtrl.isColumnVisible(\'status\')">{{::model | voucherStatus}}</td><td class="transactionActions ubntTableCell--withActions ubntTableCell--smash"><div class="ubntTableCell__actions ubntTableCell__actions--inline"><div class="ubntButtonGroup ubntButtonGroup--cozy mr-2"><button class="ubntButton ubntButton--link" unifi-voucher-button-print-one="::model" unifi-voucher-button-print-one-is-labeled="true"></button><button class="ubntButton ubntButton--link"'+o("unifi-if-role-writeable",!0,!0,!0)+' unifi-voucher-button-revoke="::model" unifi-voucher-button-revoke-is-labeled="true"></button></div></div></td></tr></tbody></table><div class="ubntNoContent" ng-if="!voucherListCtrl.view.getModels().length"><div class="ubntNoContent__icon"><unifi-no-content-icon unifi-no-content-icon="\'default\'" unifi-no-content-icon-class="[\'ubntIcon\']"></unifi-no-content-icon></div><div class="ubntNoContent__title" translate="VOUCHER_TABLE_EMPTY_HEADER"></div><div class="ubntNoContent__details" ng-if="!voucherListCtrl.isFiltered()" translate="VOUCHER_TABLE_EMPTY_NO_VOUCHERS"></div><div class="ubntNoContent__details" ng-if="voucherListCtrl.isFiltered()" translate="VOUCHER_TABLE_EMPTY_NO_MATCHES"></div></div></div></div></div>'};var r=/["&<>]/},{"pug-runtime":2}],80:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").constant("FLAGS",{enableMobileAppBadges:!1})},{}],81:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").config(["frameProvider",function(e){e.when("createVouchers",{layout:"createVouchersLayout",controller:"VouchersCreateController",controllerAs:"vouchersCreateCtrl",template:t("../views/frames/vouchersCreate.pug")()}).when("createOperator",{layout:"createOperatorLayout",controller:"OperatorCreateController",controllerAs:"operatorCreateCtrl",template:t("../views/frames/operatorCreate.pug")()})}])},{"../views/frames/operatorCreate.pug":133,"../views/frames/vouchersCreate.pug":134}],82:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").config(["$httpProvider",function(t){t.interceptors.push("disabledGuestPortalInterceptor")}])},{}],83:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").config(["$urlRouterProvider","$locationProvider",function(t,e){t.otherwise("/hotspot/"),e.html5Mode({enabled:!0,requireBase:!1})}])},{}],84:[function(t,e,n){"use strict";var o=t("../lib/resolve");angular.module("app-unifi-hotspot").config(["$stateProvider","momentProvider","stateHelpers",function(e,n,r){var i=n.$get();e.state("hotspot",{abstract:!0,url:"/hotspot",template:t("../views/index.pug")(),resolve:o.hotspot}).state("hotspot.home",{controller:"HomeController",controllerAs:"homeCtrl",url:"/",template:t("../views/home.pug")(),resolve:o.home}).state("hotspot.account",{controller:"AccountController",controllerAs:"accountCtrl",url:"/account",template:t("../../base-unifi/views/account.pug")(),resolve:o.account}).state("hotspot.account.login",{controller:"LoginController",controllerAs:"loginCtrl",url:"/login/{site}?redirect",template:t("../../base-unifi/views/login.pug")(),params:{redirect:{value:null,squash:!0},site:{value:"default"}}}).state("hotspot.account.2fa",{controller:"Login2FAController",controllerAs:"login2FACtrl",url:"/login/{site}/2fa?redirect",template:t("../../base-unifi/views/2fa.pug")(),params:{redirect:{value:null,squash:!0},site:{value:"default"},username:{value:null},password:{value:null},remember:{value:!1}}}).state("hotspot.site",{controller:"SiteController",controllerAs:"siteCtrl",url:"/site/:site",template:t("../views/hotspotSite.pug")(),resolve:o.site,abstract:!0}).state("hotspot.site.analytics",{url:"/analytics/:start/:end/:currency",controller:"AnalyticsController",controllerAs:"analyticsCtrl",template:t("../views/site/analytics.pug")(),resolve:o.analytics,params:{start:{value:i.utc().subtract(30,"days").startOf("day").format("x")},end:{value:i.utc().add(1,"days").startOf("day").format("x")},currency:{value:"",squash:!0}},onEnter:r.onEnterUseCallback,onExit:r.onExitUseCallback}).state("hotspot.site.guests",{url:"/guests/{within:[0-9]+}/{page:[0-9]+}/{pageSize:[0-9]+}",template:t("../views/site/guests.pug")(),resolve:o.guests,params:{within:{value:"24"},pageSize:["preferences",function(t){return(t.model.getRowsPerPage("guest")||t.model.getRowsPerPage()).toString()}],page:{value:"1",squash:!1}},onEnter:r.onEnterUseCallback,onExit:r.onExitUseCallback}).state("hotspot.site.operators",{url:"/operators/{page:[0-9]+}/{pageSize:[0-9]+}",template:t("../views/site/operators.pug")(),resolve:o.operators,params:{pageSize:["preferences",function(t){return(t.model.getRowsPerPage("operator")||t.model.getRowsPerPage()).toString()}],page:{value:"1",squash:!1}},onEnter:r.onEnterUseCallback,onExit:r.onExitUseCallback}).state("hotspot.site.transactions",{url:"/transactions/{within:[0-9]+}/{page:[0-9]+}/{pageSize:[0-9]+}/:transactionType",template:t("../views/site/transactions.pug")(),resolve:o.transactions,params:{within:{value:"24"},pageSize:["preferences",function(t){return(t.model.getRowsPerPage("transaction")||t.model.getRowsPerPage()).toString()}],page:{value:"1",squash:!1},transactionType:{value:null,squash:!0}},onEnter:r.onEnterUseCallback,onExit:r.onExitUseCallback}).state("hotspot.site.vouchers",{url:"/vouchers/{page:[0-9]+}/{pageSize:[0-9]+}",template:t("../views/site/vouchers.pug")(),resolve:o.vouchers,params:{pageSize:["preferences",function(t){return(t.model.getRowsPerPage("voucher")||t.model.getRowsPerPage()).toString()}],page:{value:"1",squash:!1}},onEnter:r.onEnterUseCallback,onExit:r.onExitUseCallback}).state("hotspot.fatal",{controller:"FatalController",controllerAs:"fatalCtrl",url:"/fatal/:error",template:t("../../base-unifi/views/fatal.pug")(),resolve:o.fatal,params:{error:{value:"400",squash:!0}}})}])},{"../../base-unifi/views/2fa.pug":153,"../../base-unifi/views/account.pug":154,"../../base-unifi/views/fatal.pug":155,"../../base-unifi/views/login.pug":156,"../lib/resolve":99,"../views/home.pug":135,"../views/hotspotSite.pug":136,"../views/index.pug":137,"../views/site/analytics.pug":138,"../views/site/guests.pug":139,"../views/site/operators.pug":140,"../views/site/transactions.pug":141,"../views/site/vouchers.pug":142}],85:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").constant("ANALYTICS_SUBTABS",{DEMOGRAPHY:[{id:"countries",label:"HOTSPOT_ANALYTICS_SUBSECTION_COUNTRIES",iconClass:"ubnt-icon--world",showIf:"analyticsCtrl.hasPaymentsEnabled()"},{id:"age",label:"HOTSPOT_ANALYTICS_SUBSECTION_AGE_AND_GENDER",iconClass:"fa fa-child",showIf:"analyticsCtrl.hasSocialLoginEnabled()"}]})},{}],86:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").constant("ENV",{APP:"app-unifi-hotspot",APP_STATE_PREFIX:"hotspot.",LOGIN_STATE:"hotspot.account.login",HOME_STATE:"hotspot.site.analytics",FATAL_STATE:"hotspot.fatal",STORE_ACTIVE_SITE:!1})},{}],87:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").constant("VOUCHER_QUOTA_TYPE",{ONE_TIME:1,MULTI_USE:2,MULTI_USE_UNLIMITED:0})},{}],88:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("AnalyticsController",["$state","dateIntervalUtils","hotspotAnalytics","hotspotConfig","hotspotPackages","ANALYTICS_SUBTABS",function(t,e,n,r,i,a){return new(function(){function s(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),this.ANALYTICS_SUBTABS=a,this.availableCurrencies=n.getAllConfiguredCurrencies(i.repository.collection),this.getCurrency=n.getCurrency.bind(n),this.hasSocialLoginEnabled=r.hasSocialLoginEnabled.bind(r),this.hasPaymentsEnabled=r.hasPaymentsEnabled.bind(r),this.isCurrencyDropdownVisible=!1,this.initDateInterval()}return o(s,[{key:"initDateInterval",value:function(){this.start=n.getStart(),this.end=n.getEnd()}},{key:"updateDateInterval",value:function(t,n){e.updateStateWithNewInterval(t,n)}},{key:"updateCurrencyState",value:function(e){if(n.setCurrency(e),e!==t.params.currency){var o=angular.extend({},t.params,{currency:e});t.go(t.current.name,o,{notify:!1})}}}]),s}())}])},{}],89:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("HomeController",["$state","account","site","UseWebrtc","ENV",function(t,e,n,r,i){return new(function(){function a(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,a),this.redirectToGuests()}return o(a,[{key:"redirectToGuests",value:function(){var o=n.getActiveSite();o?t.go("hotspot.site.analytics",{site:o}):r?t.go(i.FATAL_STATE):e.logout(!0).then(function(){t.go(i.LOGIN_STATE,{site:"default"},{reload:!0})})}}]),a}())}])},{}],90:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").controller("HotspotController",["preferences","serviceWorker","site","ENV","queryString",function(t,e,n,o){return new function r(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this.site=n,this.ENV=o,t.fetchPreferences().then(function(){t.model.get("serviceWorkers")&&e.register()})}}])},{}],91:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("LoginController",["$state","$stateParams","BaseLoginController","featureFlag","account",function(t,e,n,r,i){return new(function(a){function s(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s);var t=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(s.__proto__||Object.getPrototypeOf(s)).call(this));return t.featureFlag=r,t.remember=i.isRememberMeEnabled(!0),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(s,n),o(s,[{key:"_appLogin",value:function(t,n,o){return i.loginToHotspot(t,n,o,e.site)}},{key:"_appRedirect",value:function(){return t.go("hotspot.site.analytics",{site:e.site})}}]),s}())}])},{}],92:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("OperatorCreateController",["frame","heyToasts","operators","OperatorModel",function(t,e,n,r){return new(function(){function i(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,i),this.operator=new r,this.isSaving=!1,this.showValidation=!1}return o(i,[{key:"cancel",value:function(){return t.getLayout("createOperatorLayout").reject()}},{key:"save",value:function(){var o=this;this.isSaving=!0,n.save(this.operator).then(function(n){return e.pushSuccess(n),t.getLayout("createOperatorLayout").resolve()}).catch(function(t){e.pushError(t)}).finally(function(){o.isSaving=!1})}}]),i}())}])},{}],93:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("SiteController",["$state","site","ENV",function(t,e,n){return new(function(){function r(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this.validateSite()}return o(r,[{key:"validateSite",value:function(){e.getActiveSite()||t.go(n.FATAL_STATE,{error:404})}}]),r}())}])},{}],94:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").controller("VouchersCreateController",["$rootScope","binaryPrefix","frame","heyToasts","vouchers","KEY_EVENTS","VOUCHER_QUOTA_TYPE",function(t,e,n,r,i,a,s){return new(function(){function l(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,l),this.VOUCHER_QUOTA_TYPE=s,this.isSaving=!1,this.showValidation=!1,this.helperAttrs={quota_type:s.ONE_TIME},this.voucherAttrs={n:10,quota:1,expire:1440,expire_number:1,expire_unit:1440},this.limits={isDownload:!1,isUpload:!1,isByteQuota:!1},this.voucherQuotaTypeOptions=[{value:s.ONE_TIME,translationKey:"VOUCHER_CREATE_OPTION_QUOTA_ONE_TIME"},{value:s.MULTI_USE,translationKey:"VOUCHER_CREATE_OPTION_QUOTA_MULTI_USE"},{value:s.MULTI_USE_UNLIMITED,translationKey:"VOUCHER_CREATE_OPTION_QUOTA_MULTI_USE_UNLIMITED"}],this.expireOptions=[{value:480,translationKey:"DATETIME_HOURS_FULL_PARAMETERIZED",translationParams:{hours:8}},{value:1440,translationKey:"DATETIME_HOURS_FULL_PARAMETERIZED",translationParams:{hours:24}},{value:2880,translationKey:"DATETIME_DAYS_FULL_PARAMETERIZED",translationParams:{days:2}},{value:5760,translationKey:"DATETIME_DAYS_FULL_PARAMETERIZED",translationParams:{days:4}},{value:10080,translationKey:"DATETIME_DAYS_FULL_PARAMETERIZED",translationParams:{days:7}},{value:"custom",translationKey:"VOUCHER_CREATE_OPTION_CUSTOM"}],this.expireUnitOptions=[{value:1,translationKey:"DATETIME_MINUTES_FULL"},{value:60,translationKey:"DATETIME_HOURS_FULL"},{value:1440,translationKey:"DATETIME_DAYS_FULL"}]}return o(l,[{key:"$onInit",value:function(){this.events=[t.$on(a.keyup.ENTER.broadcastEvent,this.save.bind(this))]}},{key:"$onDestroy",value:function(){this.events&&angular.forEach(this.events,function(t){t()})}},{key:"getFormattedMbytes",value:function(t){var n=e.getBestMatch(1024*t*1024,"IEC");return n.value+n.prefix+"B"}},{key:"cancel",value:function(){return n.getLayout("createVouchersLayout").reject()}},{key:"save",value:function(){var t=this;this.form.$valid&&(this.isSaving=!0,this.limits.isDownload||delete this.voucherAttrs.down,this.limits.isUpload||delete this.voucherAttrs.up,this.limits.isByteQuota||delete this.voucherAttrs.bytes,i.save(this.voucherAttrs).then(function(t){return r.pushSuccess(t),n.getLayout("createVouchersLayout").resolve()}).catch(function(t){r.pushError(t)}).finally(function(){t.isSaving=!1}))}}]),l}())}])},{}],95:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").filter("paymentStatus",["$translate",function(t){return function(e){switch(e){case"authorized":return t.instant("PAYMENT_STATUS_AUTHORIZED");case"paid":return t.instant("PAYMENT_STATUS_PAID");case"void":return t.instant("PAYMENT_STATUS_VOID");default:return""}}}])},{}],96:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").filter("transactionGateway",["$translate",function(t){return function(e){switch(e){case"authorize":case"facebook":case"free":case"google":case"ippay":case"merchantwarrior":case"paypal":case"quickpay":case"stripe":return t.instant("PAYMENT_GATEWAY_"+e.toUpperCase());default:return e}}}])},{}],97:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").filter("voucherCode",["voucherUtils",function(t){return function(e){return t.formatCode(e)}}])},{}],98:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").filter("voucherStatus",["voucherUtils",function(t){return function(e){return t.getStatusText(e)}}])},{}],99:[function(t,e,n){"use strict";var o={};o.guests=t("./routeInitializers/initializeGuests"),o.hotspotAnalytics=t("./routeInitializers/initializeHotspotAnalytics"),o.transactions=t("./routeInitializers/initializeTransactions");var r={};r.allowAdminAccess=t("../../base-unifi/lib/routeResolvers/resolveAllowAdminAccess"),r.login=t("../../base-unifi/lib/routeResolvers/resolveLogin"),e.exports={},e.exports.account={routeDeps:["$injector","$q",function(t,e){return t.get("hotspotResolver").resolve().then(function(){return e.all([t.get("translateResolver").resolve("account"),t.get("status").repository.model.fetch()])})}]},e.exports.analytics={routeDeps:["repositoryUtils","$injector","$stateParams","$q",function(t,e,n,r){var i=["hotspotPackages"],a=["hotspotConfig","guests","transactions"];return e.get("hotspotResolver").resolve().then(function(){return r.all(i.map(function(e){return t.getRepository(e).fetch()}))}).then(function(){return o.hotspotAnalytics(e,n)}).then(function(){return r.all(a.map(function(e){return t.getRepository(e).fetch()}).concat(e.get("translateResolver").resolve("hotspotAnalytics","countries")))}).then(function(){return{onEnterCallback:t.registerGroup,onEnterArgs:i.concat(a),onExitCallback:t.unregisterGroup,onExitArgs:i.concat(a)}})}]},e.exports.fatal={routeDeps:["$injector",function(t){return t.get("translateResolver").resolve("fatal")}]},e.exports.guests={routeDeps:["repositoryUtils","$injector","$stateParams","$q",function(t,e,n,r){var i=["guests"];return e.get("hotspotResolver").resolve().then(function(){return o.guests(e,n)}).then(function(){return r.all(i.map(function(e){return t.getRepository(e).fetch()}).concat(e.get("translateResolver").resolve("guests")))}).then(function(){return{onEnterCallback:t.registerGroup,onEnterArgs:i,onExitCallback:t.unregisterGroup,onExitArgs:i}})}]},e.exports.home={routeDeps:["$injector",function(t){return t.get("hotspotResolver").resolve().then(function(){return r.login(t)})}]},e.exports.hotspot={routeDeps:["$injector",function(t){return t.get("translateResolver").resolve("common")}]},e.exports.operators={routeDeps:["repositoryUtils","$injector","$q",function(t,e,n){var o=["operators"];return e.get("hotspotResolver").resolve().then(function(){return r.login(e).then(function(){return r.allowAdminAccess(e)})}).then(function(){return n.all(o.map(function(e){return t.getRepository(e).fetch()}).concat(e.get("translateResolver").resolve("operators")))}).then(function(){return{onEnterCallback:t.registerGroup,onEnterArgs:o,onExitCallback:t.unregisterGroup,onExitArgs:o}})}]},e.exports.transactions={routeDeps:["repositoryUtils","$injector","$stateParams","$q",function(t,e,n,r){var i=["transactions"];return e.get("hotspotResolver").resolve().then(function(){return o.transactions(e,n)}).then(function(){return r.all(i.map(function(e){return t.getRepository(e).fetch()}).concat(e.get("translateResolver").resolve("transactions")))}).then(function(){return{onEnterCallback:t.registerGroup,onEnterArgs:i,onExitCallback:t.unregisterGroup,onExitArgs:i}})}]},e.exports.site={routeDeps:["$injector","repositoryUtils","$q",function(t,e,n){var o=[];return t.get("hotspotResolver").resolve().then(function(){return r.login(t)}).then(function(){return e.getRepository("system").fetch().then(function(){o.push("system")}).catch(function(t){return 403===t.status&&n.when()})}).then(function(){return t.get("versionCheck").resolve()}).then(function(){return{onEnterCallback:e.registerGroup,onEnterArgs:o,onExitCallback:e.unregisterGroup,onExitArgs:o}})}]},e.exports.vouchers={routeDeps:["repositoryUtils","$injector","$q",function(t,e,n){var o=["vouchers"];return e.get("hotspotResolver").resolve().then(function(){return n.all(o.map(function(e){return t.getRepository(e).fetch()}).concat(e.get("translateResolver").resolve("vouchers")))}).then(function(){return{onEnterCallback:t.registerGroup,onEnterArgs:o,onExitCallback:t.unregisterGroup,onExitArgs:o}})}]},e.exports.initializers=o,e.exports.resolvers=r},{"../../base-unifi/lib/routeResolvers/resolveAllowAdminAccess":151,"../../base-unifi/lib/routeResolvers/resolveLogin":152,"./routeInitializers/initializeGuests":100,"./routeInitializers/initializeHotspotAnalytics":101,"./routeInitializers/initializeTransactions":102}],100:[function(t,e,n){"use strict";e.exports=function(t,e){var n=t.get("$q"),o=t.get("guests"),r=parseInt(e.within);return o.updateWithin(r),n.when()}},{}],101:[function(t,e,n){"use strict";e.exports=function(t,e){var n=t.get("$q"),o=t.get("hotspotAnalytics"),r=t.get("hotspotPackages"),i=e.start,a=e.end,s=o.getAllConfiguredCurrencies(r.repository.collection);return o.setCurrency(e.currency||s[0]),o.updateDateInterval(i,a),n.when()}},{}],102:[function(t,e,n){"use strict";e.exports=function(t,e){var n=t.get("$q"),o=t.get("transactions"),r=parseInt(e.within);return o.updateWithin(r),n.when()}},{}],103:[function(t,e,n){"use strict";t("../base-unifi-hotspot/main"),t("../unifi-zopim/main"),t("../unifi-datamap/main"),angular.module("app-unifi-hotspot",["base-unifi","base-unifi-hotspot","unifi-datamap","pikaday","unifi-zopim"]),t("./components/ageChart/AgeChartController.js"),t("./components/ageChart/ageChart.js"),t("./components/breakdownGraph/BreakdownGraphController.js"),t("./components/breakdownGraph/breakdownGraph.js"),t("./components/countriesChart/CountriesChartController.js"),t("./components/countriesChart/countriesChart.js"),t("./components/countriesMap/CountriesMapController.js"),t("./components/countriesMap/countriesMap.js"),t("./components/dataMap/DataMapController.js"),t("./components/dataMap/dataMap.js"),t("./components/deviceTypeColumnChart/DeviceTypeColumnChartController.js"),t("./components/deviceTypeColumnChart/deviceTypeColumnChart.js"),t("./components/deviceTypeGraph/DeviceTypeController.js"),t("./components/deviceTypeGraph/deviceType.js"),t("./components/genderGraph/GenderGraphController.js"),t("./components/genderGraph/genderGraph.js"),t("./components/guestButtonDisconnect/GuestButtonDisconnectController.js"),t("./components/guestButtonDisconnect/guestButtonDisconnect.js"),t("./components/guestButtonExtend/GuestButtonExtendController.js"),t("./components/guestButtonExtend/guestButtonExtend.js"),t("./components/guestList/GuestListController.js"),t("./components/guestList/guestList.js"),t("./components/hotspotAnalyticsOverview/HotspotAnalyticsOverviewController.js"),t("./components/hotspotAnalyticsOverview/hotspotAnalyticsOverview.js"),t("./components/operatorButtonDelete/OperatorButtonDeleteController.js"),t("./components/operatorButtonDelete/operatorButtonDelete.js"),t("./components/operatorList/OperatorListController.js"),t("./components/operatorList/operatorList.js"),t("./components/paymentButtonRefund/PaymentButtonRefundController.js"),t("./components/paymentButtonRefund/paymentButtonRefund.js"),t("./components/paymentButtonRemove/PaymentButtonRemoveController.js"),t("./components/paymentButtonRemove/paymentButtonRemove.js"),t("./components/paymentButtonRemovePersonal/PaymentButtonRemovePersonalController.js"),t("./components/paymentButtonRemovePersonal/paymentButtonRemovePersonal.js"),t("./components/revenueChart/RevenueChartController.js"),t("./components/revenueChart/revenueChart.js"),t("./components/transactionList/TransactionListController.js"),t("./components/transactionList/transactionList.js"),t("./components/voucherButtonPrintAll/VoucherButtonPrintAllController.js"),t("./components/voucherButtonPrintAll/voucherButtonPrintAll.js"),t("./components/voucherButtonPrintOne/VoucherButtonPrintOneController.js"),t("./components/voucherButtonPrintOne/voucherButtonPrintOne.js"),t("./components/voucherButtonRevoke/VoucherButtonRevokeController.js"),t("./components/voucherButtonRevoke/voucherButtonRevoke.js"),t("./components/voucherDropdownPrintBatch/VoucherDropdownPrintBatchController.js"),t("./components/voucherDropdownPrintBatch/voucherDropdownPrintBatch.js"),t("./components/voucherList/VoucherListController.js"),t("./components/voucherList/voucherList.js"),t("./config/flags.js"),t("./config/frames.js"),t("./config/http.js"),t("./config/routes.js"),t("./config/states.js"),t("./constants/ANALYTICS_SUBTABS.js"),t("./constants/ENV.js"),t("./constants/VOUCHER_QUOTA_TYPE.js"),t("./controllers/AnalyticsController.js"),t("./controllers/HomeController.js"),t("./controllers/HotspotController.js"),t("./controllers/LoginController.js"),t("./controllers/OperatorCreateController.js"),t("./controllers/SiteController.js"),t("./controllers/VouchersCreateController.js"),t("./filters/paymentStatus.js"),t("./filters/transactionGateway.js"),t("./filters/voucherCode.js"),t("./filters/voucherStatus.js"),t("./lib/resolve.js"),t("./lib/routeInitializers/initializeGuests.js"),t("./lib/routeInitializers/initializeHotspotAnalytics.js"),t("./lib/routeInitializers/initializeTransactions.js"),t("./services/collections/HotspotPackageCollection.js"),t("./services/collections/OperatorCollection.js"),t("./services/collections/TransactionCollection.js"),t("./services/disabledGuestPortalInterceptor.js"),t("./services/filters/GuestFilter.js"),t("./services/filters/OperatorFilter.js"),t("./services/filters/TransactionFilter.js"),t("./services/filters/VoucherFilter.js"),t("./services/guestListColumnStore.js"),t("./services/guestUtils.js"),t("./services/guests.js"),t("./services/hotspotAnalytics.js"),t("./services/hotspotAnalyticsUtils.js"),t("./services/hotspotConfig.js"),t("./services/hotspotPackageUtils.js"),t("./services/hotspotPackages.js"),t("./services/models/BatchVoucherModel.js"),t("./services/models/HotspotConfigModel.js"),t("./services/models/OperatorModel.js"),t("./services/models/PrintHotspotVouchersModel.js"),t("./services/models/TransactionModel.js"),t("./services/operators.js"),t("./services/paymentUtils.js"),t("./services/resolvers/hotspotResolver.js"),t("./services/transactionListColumnStore.js"),t("./services/transactions.js"),t("./services/voucherListColumnStore.js"),t("./services/vouchers.js"),t("./values/APP_EVENTS.js"),window.unifiIsUnit||angular.bootstrap(document,["app-unifi-hotspot"])},{"../base-unifi-hotspot/main":145,"../unifi-datamap/main":158,"../unifi-zopim/main":165,"./components/ageChart/AgeChartController.js":7,"./components/ageChart/ageChart.js":8,"./components/breakdownGraph/BreakdownGraphController.js":10,"./components/breakdownGraph/breakdownGraph.js":11,"./components/countriesChart/CountriesChartController.js":13,"./components/countriesChart/countriesChart.js":14,"./components/countriesMap/CountriesMapController.js":16,"./components/countriesMap/countriesMap.js":17,"./components/dataMap/DataMapController.js":19,"./components/dataMap/dataMap.js":20,"./components/deviceTypeColumnChart/DeviceTypeColumnChartController.js":23,"./components/deviceTypeColumnChart/deviceTypeColumnChart.js":24,"./components/deviceTypeGraph/DeviceTypeController.js":26,"./components/deviceTypeGraph/deviceType.js":27,"./components/genderGraph/GenderGraphController.js":29,"./components/genderGraph/genderGraph.js":30,"./components/guestButtonDisconnect/GuestButtonDisconnectController.js":32,"./components/guestButtonDisconnect/guestButtonDisconnect.js":33,"./components/guestButtonExtend/GuestButtonExtendController.js":35,"./components/guestButtonExtend/guestButtonExtend.js":36,"./components/guestList/GuestListController.js":38,"./components/guestList/guestList.js":39,"./components/hotspotAnalyticsOverview/HotspotAnalyticsOverviewController.js":41,"./components/hotspotAnalyticsOverview/hotspotAnalyticsOverview.js":42,"./components/operatorButtonDelete/OperatorButtonDeleteController.js":44,"./components/operatorButtonDelete/operatorButtonDelete.js":45,"./components/operatorList/OperatorListController.js":47,"./components/operatorList/operatorList.js":48,"./components/paymentButtonRefund/PaymentButtonRefundController.js":50,"./components/paymentButtonRefund/paymentButtonRefund.js":51,"./components/paymentButtonRemove/PaymentButtonRemoveController.js":53,"./components/paymentButtonRemove/paymentButtonRemove.js":54,"./components/paymentButtonRemovePersonal/PaymentButtonRemovePersonalController.js":56,"./components/paymentButtonRemovePersonal/paymentButtonRemovePersonal.js":57,"./components/revenueChart/RevenueChartController.js":59,"./components/revenueChart/revenueChart.js":60,"./components/transactionList/TransactionListController.js":62,"./components/transactionList/transactionList.js":63,"./components/voucherButtonPrintAll/VoucherButtonPrintAllController.js":65,"./components/voucherButtonPrintAll/voucherButtonPrintAll.js":66,"./components/voucherButtonPrintOne/VoucherButtonPrintOneController.js":68,"./components/voucherButtonPrintOne/voucherButtonPrintOne.js":69,"./components/voucherButtonRevoke/VoucherButtonRevokeController.js":71,"./components/voucherButtonRevoke/voucherButtonRevoke.js":72,"./components/voucherDropdownPrintBatch/VoucherDropdownPrintBatchController.js":74,"./components/voucherDropdownPrintBatch/voucherDropdownPrintBatch.js":75,"./components/voucherList/VoucherListController.js":77,"./components/voucherList/voucherList.js":78,"./config/flags.js":80,"./config/frames.js":81,"./config/http.js":82,"./config/routes.js":83,"./config/states.js":84,"./constants/ANALYTICS_SUBTABS.js":85,"./constants/ENV.js":86,"./constants/VOUCHER_QUOTA_TYPE.js":87,"./controllers/AnalyticsController.js":88,"./controllers/HomeController.js":89,"./controllers/HotspotController.js":90,"./controllers/LoginController.js":91,"./controllers/OperatorCreateController.js":92,"./controllers/SiteController.js":93,"./controllers/VouchersCreateController.js":94,"./filters/paymentStatus.js":95,"./filters/transactionGateway.js":96,"./filters/voucherCode.js":97,"./filters/voucherStatus.js":98,"./lib/resolve.js":99,"./lib/routeInitializers/initializeGuests.js":100,"./lib/routeInitializers/initializeHotspotAnalytics.js":101,"./lib/routeInitializers/initializeTransactions.js":102,"./services/collections/HotspotPackageCollection.js":104,"./services/collections/OperatorCollection.js":105,"./services/collections/TransactionCollection.js":106,"./services/disabledGuestPortalInterceptor.js":107,"./services/filters/GuestFilter.js":108,"./services/filters/OperatorFilter.js":109,"./services/filters/TransactionFilter.js":110,"./services/filters/VoucherFilter.js":111,"./services/guestListColumnStore.js":112,"./services/guestUtils.js":113,"./services/guests.js":114,"./services/hotspotAnalytics.js":115,"./services/hotspotAnalyticsUtils.js":116,"./services/hotspotConfig.js":117,"./services/hotspotPackageUtils.js":118,"./services/hotspotPackages.js":119,"./services/models/BatchVoucherModel.js":120,"./services/models/HotspotConfigModel.js":121,"./services/models/OperatorModel.js":122,"./services/models/PrintHotspotVouchersModel.js":123,"./services/models/TransactionModel.js":124,"./services/operators.js":125,"./services/paymentUtils.js":126,"./services/resolvers/hotspotResolver.js":127,"./services/transactionListColumnStore.js":128,"./services/transactions.js":129,"./services/voucherListColumnStore.js":130,"./services/vouchers.js":131,"./values/APP_EVENTS.js":132}],104:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("HotspotPackageCollection",["CORSCollection","HotspotPackageModel","siteUrlMixin","structureMixin","resolveMixin","UnifiGuestBasePath","webrtcMixin",function(t,e,n,o,r,i,a){return t.extend(n).extend(o).extend(r).extend(a).extend({model:e,siteBasePath:i,siteUrl:"hotspotpackages"})}])},{}],105:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("OperatorCollection",["CORSCollection","OperatorModel","siteUrlMixin","structureMixin","resolveMixin","webrtcMixin",function(t,e,n,o,r,i){return t.extend(n).extend(o).extend(r).extend(i).extend({model:e,siteUrl:"rest/hotspotop"})}])},{}],106:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("TransactionCollection",["CORSCollection","resolveMixin","siteUrlMixin","siteUrlWithinMixin","structureMixin","TransactionModel","webrtcMixin",function(t,e,n,o,r,i,a){return t.extend(n).extend(o).extend(r).extend(e).extend(a).extend({model:i,siteUrl:"stat/payment"})}])},{}],107:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("disabledGuestPortalInterceptor",["$q",function(t){return{responseError:function(e){if(e&&404===e.status){var n=e.config.url,o=n.startsWith("/")?n:new URL(n).pathname;if(o.startsWith("/guest")&&(o.endsWith("hotspotconfig")||o.endsWith("hotspotpackages")))return t.when({data:[],meta:{rc:"ok"}})}return t.reject(e)}}}])},{}],108:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("GuestFilter",["$filter","BaseSearchableModelFilter",function(t,e){var n=function(){e.call(this),this.searchableAttributes=["name","hostname","mac","package"]};return(n.prototype=Object.create(e.prototype)).constructor=n,n.prototype.test=function(e){if(this.search(e))return!0;var n=this.searchQuery?this.searchQuery.toLowerCase().split(" "):[];return!n.length||(!!this.testPhrase(t("guestAuthorization")(e),n)||(!!this.testPhrase(t("bps")(e.get("tx_bytes")),n)||!!this.testPhrase(t("bps")(e.get("rx_bytes")),n)))},n}])},{}],109:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("OperatorFilter",["BaseSearchableModelFilter",function(t){var e=function(){t.call(this),this.searchableAttributes=["name","note"]};return(e.prototype=Object.create(t.prototype)).constructor=e,e}])},{}],110:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("TransactionFilter",["$filter","BaseSearchableModelFilter",function(t,e){var n=function(){e.call(this),this.transactionTypeFilter=null,this.searchableAttributes=["last_name","first_name","package","info"]};return(n.prototype=Object.create(e.prototype)).constructor=n,n.prototype.test=function(e){var n=this.transactionTypeFilter;if(null!==n){if("payments"===n&&e.isSocial())return!1;if("social"===n&&!e.isSocial())return!1}if(this.search(e))return!0;var o=this.searchQuery?this.searchQuery.toLowerCase().split(" "):[];return!o.length||(!!this.testPhrase(t("moment")(e.get("datetime"),"format","datetime"),o)||(!!this.testPhrase(t("currency")(e),o)||!!this.testPhrase(t("paymentStatus")(e.get("status")),o)))},n.prototype.getTransactionTypeFilter=function(){return this.transactionTypeFilter},n.prototype.hasTransactionTypeFilter=function(){return null!==this.transactionTypeFilter},n.prototype.setTransactionTypeFilter=function(t){this.transactionTypeFilter=t},n.prototype.clearTransactionTypeFilter=function(){this.transactionTypeFilter=null},n.prototype.isFiltered=function(){return this.searchQuery.length>0||null!==this.transactionTypeFilter},n}])},{}],111:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("VoucherFilter",["$filter","BaseSearchableModelFilter",function(t,e){var n=function(){e.call(this),this.searchableAttributes=["code","note"]};return(n.prototype=Object.create(e.prototype)).constructor=n,n.prototype.test=function(e){if(this.search(e))return!0;var n=this.searchQuery?this.searchQuery.toLowerCase().split(" "):[];if(n.length){if(this.testPhrase(t("voucherCode")(e.get("code")),n))return!0;if(this.testPhrase(t("moment")(1e3*e.get("create_time"),"format","datetime"),n))return!0;var o=e.get("qos_rate_max_down");if(o&&this.testPhrase(t("bps")(1024*o,{isBits:!0}),n))return!0;var r=e.get("qos_rate_max_up");if(r&&this.testPhrase(t("bps")(1024*r,{isBits:!0}),n))return!0;var i=e.get("qos_usage_quota");if(i&&this.testPhrase(t("bytes")(1024*i*1024),n))return!0;var a=e.get("duration");return!(!a||!this.testPhrase(t("seconds")(60*a),n))||!!this.testPhrase(t("voucherStatus")(e),n)}return!0},n}])},{}],112:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("guestListColumnStore",["BaseListColumnStore",function(t){return new(function(e){function n(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n);var t=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return t.localStorageKey="columnStore:guests",t.columnOptions=[{id:"name",translationKey:"GUEST_TABLE_HEADER_NAME"},{id:"package",translationKey:"GUEST_TABLE_HEADER_PACKAGE"},{id:"amount",translationKey:"GUEST_TABLE_HEADER_AMOUNT"},{id:"authorized_by",translationKey:"GUEST_TABLE_HEADER_AUTHORIZED_BY"},{id:"tx_bytes",translationKey:"GUEST_TABLE_HEADER_DOWNLOAD"},{id:"rx_bytes",translationKey:"GUEST_TABLE_HEADER_UPLOAD"},{id:"start",translationKey:"GUEST_TABLE_HEADER_START"},{id:"status",translationKey:"GUEST_TABLE_HEADER_STATUS"},{id:"radius_session_id",translationKey:"GUEST_TABLE_HEADER_RADIUS_SESSION_ID"},{id:"radius_username",translationKey:"GUEST_TABLE_HEADER_RADIUS_USERNAME"}],t.views={default:["name","package","amount","authorized_by","tx_bytes","rx_bytes","start","status","radius_username","radius_session_id"]},t.init(),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(n,t),n}())}])},{}],113:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("guestUtils",["$q","$translate","apiResults","guests","HotspotMgrModel",function(t,e,n,o,r){this.disconnect=function(t){return this._executeCommand("terminate",t,"GUEST_ACTIONS_DISCONNECT_SUCCESS","GUEST_ACTIONS_DISCONNECT_ERROR")},this.extend=function(t){return this._executeCommand("extend",t,"GUEST_ACTIONS_EXTEND_SUCCESS","GUEST_ACTIONS_EXTEND_ERROR")},this._executeCommand=function(i,a,s,l){return(new r).save({_id:a.id,cmd:i}).then(function(){return o.refresh().then(function(){return t.when(e.instant(s))})}).catch(function(o){return t.reject(n.appendErrorMsg(e.instant(l),o))})}}])},{}],114:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("guests",["$translate","BaseCollectionRepository","GuestCollection",function(t,e,n){this.repository=new e(new n),this.refresh=this.repository.refresh.bind(this.repository),this.updateWithin=function(t){this.repository.collection.setWithin(t),this.repository.isRegistered()&&this.repository.refresh()},this.getWithin=function(){return this.repository.collection.getWithin()}}])},{}],115:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("hotspotAnalytics",["_","$q","BaseCollectionRepository","guests","hotspotPackages","hotspotPackageUtils","transactions",function(t,e,n,o,r,i,a){this.repositories={guests:o.repository,transactions:a.repository},this.getAllConfiguredCurrencies=i.getAllConfiguredCurrencies.bind(i),this.currency=null,this.deviceType=null,this.start=null,this.end=null,this.getCurrency=function(){return this.currency},this.setCurrency=function(t){this.currency=t},this.getDeviceType=function(){return this.deviceType},this.setDeviceType=function(t){this.deviceType=t},this.updateDateInterval=function(t,e){this.start=t,this.end=e,Object.keys(this.repositories).forEach(function(n){var o=this.repositories[n];o.collection.setDateInterval(t,e),o.invalidate()}.bind(this))},this.getStart=function(){return this.start},this.getEnd=function(){return this.end}}])},{}],116:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("hotspotAnalyticsUtils",["bowser",function(t){this.formatAgeRange=function(t){return t.min&&t.max?t.min+"-"+t.max:t.min?t.min+"+":t.max?"< "+t.max:void 0},this.detectDeviceType=function(e){return t.check({mobile:"1"},!0,e)?"mobile":t.check({tablet:"1"},!0,e)?"tablet":e?"desktop":"unknown"}}])},{}],117:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("hotspotConfig",["BaseModelRepository","HotspotConfigModel",function(t,e){this.repository=new t(new e),this.hasSocialLoginEnabled=this.repository.model.hasSocialLoginEnabled.bind(this.repository.model),this.hasPaymentsEnabled=this.repository.model.hasPaymentsEnabled.bind(this.repository.model)}])},{}],118:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("hotspotPackageUtils",[function(){this.getAllConfiguredCurrencies=function(t){return t.models.map(function(t){return t.get("currency")}).filter(function(t,e,n){return!!t&&n.indexOf(t)===e})}}])},{}],119:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("hotspotPackages",["BaseCollectionRepository","HotspotPackageCollection",function(t,e){this.repository=new t(new e)}])},{}],120:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("BatchVoucherModel",["$translate","BatchModel",function(t,e){return e.extend({siteUrl:"cmd/hotspot",destroy:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t.type="POST",t.data=t.data||{},t.data.cmd="delete-vouchers",e.prototype.destroy.call(this,t)}})}])},{}],121:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("HotspotConfigModel",["CORSModel","siteUrlMixin","getNestedMixin","resolveMixin","structureMixin","UnifiGuestBasePath","webrtcMixin",function(t,e,n,o,r,i,a){return t.extend(e).extend(n).extend(o).extend(r).extend(a).extend({idAttribute:"_id",siteBasePath:i,siteUrl:"hotspotconfig",hasSocialLoginEnabled:function(){return!(!this.get("facebook_enabled")&&!this.get("google_enabled"))},hasPaymentsEnabled:function(){return!!this.get("payment_enabled")}})}])},{}],122:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("OperatorModel",["CORSModel","siteUrlMixin","deepCopyMixin","getNestedMixin","webrtcMixin",function(t,e,n,o,r){return t.extend(e).extend(n).extend(o).extend(r).extend({idAttribute:"_id",siteUrl:"rest/hotspotop"})}])},{}],123:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("PrintHotspotVouchers",["CORSModel","site","UnifiPrintBasePath","webrtcMixin",function(t,e,n,o){return t.extend(o).extend({idAttribute:"_id",dataType:"html",url:function(){var t=e.getActiveSite();if(!t)throw new Error("Cannot call without a site name");var o=[n,"hotspot/vouchers","s",t].join("/"),r=this.get("create_time");return r?o+="?create_time="+r:this.id&&(o+="?id="+this.id),o}})}])},{}],124:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").factory("TransactionModel",["$filter","CORSModel","siteUrlMixin","deepCopyMixin","getNestedMixin","webrtcMixin",function(t,e,n,o,r,i){return e.extend(n).extend(o).extend(r).extend(i).extend({idAttribute:"_id",siteUrl:"rest/payment",isSocial:function(){return-1!==["facebook","google","wechat"].indexOf(this.get("gateway"))}})}])},{}],125:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("operators",["$q","$translate","BaseCollectionRepository","OperatorCollection","apiResults",function(t,e,n,o,r){this.repository=new n(new o),this.batches=[],this.save=function(n){return n.save().then(function(){return this.repository.refresh().then(function(){return t.when(e.instant("OPERATOR_ACTIONS_CREATE_SUCCESS"))})}.bind(this)).catch(function(n){return t.reject(r.appendErrorMsg(e.instant("OPERATOR_ACTIONS_CREATE_ERROR"),n))})},this.remove=function(n){return n.destroy({wait:!0}).then(function(){return t.when(e.instant("OPERATOR_ACTIONS_DELETE_SUCCESS",{name:n.get("name")}))}).catch(function(o){return t.reject(r.appendErrorMsg(e.instant("OPERATOR_ACTIONS_DELETE_ERROR",{name:n.get("name")}),o))})}}])},{}],126:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("paymentUtils",["$q","$translate","apiResults","HotspotMgrModel","transactions",function(t,e,n,o,r){this.refund=function(i){return(new o).save({_id:i.id,cmd:"refund"}).then(function(){return r.refresh()}).then(function(){return t.when(e.instant("PAYMENT_ACTIONS_REFUND_SUCCESS"))}).catch(function(o){return t.reject(n.appendErrorMsg(e.instant("PAYMENT_ACTIONS_REFUND_ERROR"),o))})},this.remove=function(i){return(new o).save({payment_id:i.id,cmd:"remove-payment"}).then(function(){return r.refresh()}).then(function(){return t.when(e.instant("PAYMENT_ACTIONS_REMOVE_SUCCESS"))}).catch(function(o){return t.reject(n.appendErrorMsg(e.instant("PAYMENT_ACTIONS_REMOVE_ERROR"),o))})},this.removePersonalData=function(i){return(new o).save({payment_id:i.id,cmd:"remove-personal-data"}).then(function(){return r.refresh()}).then(function(){return t.when(e.instant("PAYMENT_ACTIONS_REMOVE_PERSONAL_DATA_SUCCESS"))}).catch(function(o){return t.reject(n.appendErrorMsg(e.instant("PAYMENT_ACTIONS_REMOVE_PERSONAL_DATA_ERROR"),o))})}}])},{}],127:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("hotspotResolver",["$q","translateResolver","webrtcResolver",function(t,e,n){this.resolve=function(){return t.all([e.resolve("modules","hotspot"),n.resolve()])}}])},{}],128:[function(t,e,n){"use strict";var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}();angular.module("app-unifi-hotspot").service("transactionListColumnStore",["BaseListColumnStore",function(t){return new(function(e){function n(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n);var t=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return t.localStorageKey="columnStore:transactions",t.columnOptions=[{id:"datetime",translationKey:"PAYMENT_TABLE_HEADER_TIME"},{id:"last_name",translationKey:"PAYMENT_TABLE_HEADER_LAST_NAME"},{id:"first_name",translationKey:"PAYMENT_TABLE_HEADER_FIRST_NAME"},{id:"email",translationKey:"PAYMENT_TABLE_HEADER_EMAIL"},{id:"gateway",translationKey:"PAYMENT_TABLE_HEADER_GATEWAY"},{id:"package",translationKey:"PAYMENT_TABLE_HEADER_PACKAGE"},{id:"amount",translationKey:"PAYMENT_TABLE_HEADER_AMOUNT"},{id:"info",translationKey:"PAYMENT_TABLE_HEADER_EXTRA_INFO"},{id:"status",translationKey:"PAYMENT_TABLE_HEADER_STATUS"}],t.columnPresets=[{id:"all",translationKey:"PAYMENT_FILTER_TRANSACTION_TYPE_ALL"},{id:"payments",translationKey:"PAYMENT_FILTER_TRANSACTION_TYPE_PAYMENTS"},{id:"social",translationKey:"PAYMENT_FILTER_TRANSACTION_TYPE_SOCIAL"}],t.views={all:["datetime","last_name","first_name","email","package","amount","info","gateway","status"],payments:["datetime","last_name","first_name","email","package","amount","info","gateway","status"],social:["datetime","last_name","first_name","email","gateway","status"]},t.init(),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(n,t),o(n,[{key:"setColumnGroup",value:function(t){this.columnGroup=t}},{key:"getPredefinedColumns",value:function(){return this.columnGroup?this.views[this.columnGroup]:this.views.all}},{key:"setColumns",value:function(){this.isCustomized?function t(e,n,o){null===e&&(e=Function.prototype);var r=Object.getOwnPropertyDescriptor(e,n);if(void 0===r){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,o)}if("value"in r)return r.value;var a=r.get;return void 0!==a?a.call(o):void 0}(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"setColumns",this).call(this):this.columns=this.getPredefinedColumns()}},{key:"setColumnPreset",value:function(t){var e="allColumns"===t?this.getAllColumns():this.views[t];e&&e.length&&(this.clearSelectedColumns(),this.columns=e,this.setCustomized(!0),this.saveColumns())}}]),n}())}])},{}],129:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("transactions",["BaseCollectionRepository","TransactionCollection",function(t,e){this.repository=new t(new e),this.refresh=this.repository.refresh.bind(this.repository),this.updateWithin=function(t){this.repository.collection.setWithin(t),this.repository.isRegistered()&&this.repository.refresh()},this.getWithin=function(){return this.repository.collection.getWithin()}}])},{}],130:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("voucherListColumnStore",["BaseListColumnStore",function(t){return new(function(e){function n(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n);var t=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return t.localStorageKey="columnStore:vouchers",t.columnOptions=[{id:"code",translationKey:"VOUCHER_TABLE_HEADER_CODE"},{id:"create_time",translationKey:"VOUCHER_TABLE_HEADER_CREATE_TIME"},{id:"qos_rate_max_down",translationKey:"VOUCHER_TABLE_HEADER_DOWN"},{id:"qos_rate_max_up",translationKey:"VOUCHER_TABLE_HEADER_UP"},{id:"qos_usage_quota",translationKey:"VOUCHER_TABLE_HEADER_BYTE_QUOTA"},{id:"note",translationKey:"VOUCHER_TABLE_HEADER_NOTES"},{id:"duration",translationKey:"VOUCHER_TABLE_HEADER_DURATION"},{id:"status",translationKey:"VOUCHER_TABLE_HEADER_STATUS"}],t.views={default:["code","create_time","qos_rate_max_down","qos_rate_max_up","qos_usage_quota","note","duration","status"]},t.init(),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(n,t),n}())}])},{}],131:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").service("vouchers",["_","$filter","$translate","$q","$window","BaseCollectionRepository","HotspotMgrModel","PrintHotspotVouchers","VoucherCollection","voucherUtils","apiResults",function(t,e,n,o,r,i,a,s,l,u,c){this.repository=new i(new l),this.batches=[],this.repository.fetch=function(t){return i.prototype.fetch.call(this.repository,t).then(this._calculateBatches.bind(this))}.bind(this),this.revoke=function(t){var e=this;return(new a).save({_id:t.id,cmd:"delete-voucher"}).then(function(){return e.repository.collection.remove(t),e._calculateBatches(),o.when(n.instant("VOUCHER_ACTIONS_REVOKE_SUCCESS",{code:u.formatCode(t.get("code"))}))}).catch(function(e){return o.reject(c.appendErrorMsg(n.instant("VOUCHER_ACTIONS_REVOKE_ERROR",{code:u.formatCode(t.get("code"))}),e))})},this.batchRevoke=function(t){var e=this;return t.destroy({wait:!0}).then(function(t){return e.repository.collection.remove(t).length})},this.save=function(t){var e=this;return new a({cmd:"create-voucher"}).save(t).then(function(){return e.repository.refresh()}).then(function(){return o.when(n.instant("VOUCHER_ACTIONS_CREATE_SUCCESS"))}).catch(function(t){return o.reject(c.appendErrorMsg(n.instant("VOUCHER_ACTIONS_CREATE_ERROR"),t))})},this.printVouchers=function(e){return new s(e).fetch().then(function(e){var n=e.data&&t.isArray(e.data.data)?e.data.data[0]:e.data,o=new r.Blob([n],{type:"text/html"}),i=r.URL.createObjectURL(o);r.open(i)}).catch(function(){return o.reject(n.instant("VOUCHER_ACTIONS_PRINT_ERROR"))})},this._calculateBatches=function(){var n=t.uniq(this.repository.collection.toArray(),!1,function(t){return t.get("create_time")});this.batches=n.map(function(t){var n=t.get("create_time");return{createTime:n,name:e("moment")(1e3*n,"format","datetime")}})}}])},{}],132:[function(t,e,n){"use strict";angular.module("app-unifi-hotspot").value("APP_EVENTS",{SCROLL_CONTAINER_SCROLLING:"scroll-container-scrolling",SCROLL_CONTAINER_ENABLE:"scroll-container-enable",SCROLL_CONTAINER_DISABLE:"scroll-container-disable"})},{}],133:[function(t,e,n){t("pug-runtime");function o(t,e,n,o){return!1!==e&&null!=e&&(e||"class"!==t&&"style"!==t)?!0===e?" "+(o?t:t+'="'+t+'"'):("function"==typeof e.toJSON&&(e=e.toJSON()),"string"==typeof e||(e=JSON.stringify(e),n||-1===e.indexOf('"'))?(n&&(e=function(t){var e=""+t,n=r.exec(e);if(!n)return t;var o,i,a,s="";for(o=n.index,i=0;o<e.length;o++){switch(e.charCodeAt(o)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==o&&(s+=e.substring(i,o)),i=o+1,s+=a}return i!==o?s+e.substring(i,o):s}(e))," "+t+'="'+e+'"'):" "+t+"='"+e.replace(/'/g,"'")+"'"):""}e.exports=function(t){var e="";return e=e+'<div class="ubntModal ubntModal--small unifiOperatorCreate"><form class="ubntForm"'+o("novalidate",!0,!0,!0)+' autocomplete="off" name="operatorCreateCtrl.form" ng-class="{ \'is-form-validation-visible\': operatorCreateCtrl.showValidation, \'is-validation-hidden\': !operatorCreateCtrl.showValidation }" ng-submit="operatorCreateCtrl.form.$valid && operatorCreateCtrl.save()"><div class="ubntModal__header pb-0"><div class="ubntHeader ubntHeader--centered"><div class="ubntHeader__title" translate="OPERATOR_CREATE_MODAL_TITLE"></div><div class="ubntHeader__actions"><div class="ubntIconGroup"><unifi-aura-icon unifi-aura-icon="::\'close\'" unifi-aura-icon-class="::[\'ubntIcon\', \'ubntIcon--actionable\']" frame-close="createOperator"></unifi-aura-icon></div></div></div></div><div class="ubntModal__main"><div class="ubntModalContent pb-0"><div class="container container--horizontal-cozy container--vertical-comfy container--flush"><div class="row"><div class="col"><label class="ubntLabel" translate="OPERATOR_CREATE_LABEL_NAME"></label><input class="width-full" type="text" name="name" ng-model="operatorCreateCtrl.operator.attributes.name"'+o("required",!0,!0,!0)+o("autofocus",!0,!0,!0)+'></div></div><div class="row"><div class="col"><label class="ubntLabel" translate="OPERATOR_CREATE_LABEL_PASSWORD"></label><input class="width-full" type="text" name="operatorP" ng-model="operatorCreateCtrl.operator.attributes.x_password"'+o("required",!0,!0,!0)+'></div></div><div class="row"><div class="col"><label class="ubntLabel" translate="OPERATOR_CREATE_LABEL_NOTES"></label><input class="width-full" type="text" ng-model="operatorCreateCtrl.operator.attributes.note"></div></div></div></div></div><div class="ubntModal__footer"><div class="ubntFooter"><div class="ubntFooter__buttons"><div class="ubntButtonGroup ubntButtonGroup--cozy"><button class="ubntButton" type="button" ng-click="operatorCreateCtrl.cancel()">{{\'COMMON_ACTIONS_CANCEL\' | translate}}</button><button class="ubntButton ubntButton--primary" ng-click="operatorCreateCtrl.showValidation = true" busy-toggle="operatorCreateCtrl.isSaving" busy-toggle-spinner-classes="[\'appSpinner appSpinner--light appSpinner--centered appSpinner--small\']">{{\'COMMON_ACTIONS_SAVE\' | translate}}</button></div></div></div></div></form></div>'};var r=/["&<>]/},{"pug-runtime":2}],134:[function(t,e,n){t("pug-runtime");function o(t,e,n,o){return!1!==e&&null!=e&&(e||"class"!==t&&"style"!==t)?!0===e?" "+(o?t:t+'="'+t+'"'):("function"==typeof e.toJSON&&(e=e.toJSON()),"string"==typeof e||(e=JSON.stringify(e),n||-1===e.indexOf('"'))?(n&&(e=function(t){var e=""+t,n=r.exec(e);if(!n)return t;var o,i,a,s="";for(o=n.index,i=0;o<e.length;o++){switch(e.charCodeAt(o)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==o&&(s+=e.substring(i,o)),i=o+1,s+=a}return i!==o?s+e.substring(i,o):s}(e))," "+t+'="'+e+'"'):" "+t+"='"+e.replace(/'/g,"'")+"'"):""}e.exports=function(t){var e="";return e=e+'<div class="ubntModal ubntModal--small unifiVouchersCreate"><form class="ubntForm"'+o("novalidate",!0,!0,!0)+' autocomplete="off" name="vouchersCreateCtrl.form" ng-class="{ \'is-form-validation-visible\': vouchersCreateCtrl.showValidation, \'is-validation-hidden\': !vouchersCreateCtrl.showValidation }" ng-submit="vouchersCreateCtrl.form.$valid && vouchersCreateCtrl.save()"><div class="ubntModal__header pb-0"><div class="ubntHeader ubntHeader--centered"><div class="ubntHeader__title" translate="VOUCHER_CREATE_MODAL_TITLE"></div><div class="ubntHeader__actions"><div class="ubntIconGroup"><unifi-aura-icon unifi-aura-icon="::\'close\'" unifi-aura-icon-class="::[\'ubntIcon\', \'ubntIcon--actionable\']" frame-close="createVouchers"></unifi-aura-icon></div></div></div></div><div class="ubntModal__main"><div class="ubntModalContent pb-0"><div class="container container--horizontal-cozy container--vertical-comfy container--flush"><div class="row"><div class="col ubntFormGroup"><label class="ubntLabel" translate="VOUCHER_CREATE_LABEL_CREATE"></label><div class="ubntFormGroup ubntFormGroup--flex"><input class="input--mediumNumber" type="number" name="number" size="5" title="{{\'VOUCHER_CREATE_TITLE_NUMBER_OF_VOUCHERS\' | translate}}" ng-model="vouchersCreateCtrl.voucherAttrs.n" min="1" max="10000"'+o("required",!0,!0,!0)+o("autofocus",!0,!0,!0)+'><label class="ubntLabel ubntLabel--secondary ml-2">{{\'VOUCHER_CREATE_LABEL_VOUCHERS\' | translate:{count: vouchersCreateCtrl.voucherAttrs.n}:\'messageformat\'}}</label></div></div></div><div class="row"><div class="col ubntFormGroup"><label class="ubntLabel" translate="VOUCHER_CREATE_LABEL_QUOTA"></label><div class="ubntFormGroup ubntFormGroup--flex"><select class="width-full" name="quota_type" ng-model="vouchersCreateCtrl.helperAttrs.quota_type" ng-options="option.value as option.translationKey | translate for option in vouchersCreateCtrl.voucherQuotaTypeOptions" ng-change="vouchersCreateCtrl.voucherAttrs.quota = vouchersCreateCtrl.helperAttrs.quota_type"><option'+o("unifi-option-placeholder",!0,!0,!0)+'></option></select><input class="input--smallNumber ml-2" ng-if="vouchersCreateCtrl.helperAttrs.quota_type === vouchersCreateCtrl.VOUCHER_QUOTA_TYPE.MULTI_USE" type="number" name="quota" ng-model="vouchersCreateCtrl.voucherAttrs.quota"'+o("required",!0,!0,!0)+' min="2" max="10000"><label class="ubntLabel ubntLabel--secondary ml-2" ng-if="vouchersCreateCtrl.helperAttrs.quota_type === vouchersCreateCtrl.VOUCHER_QUOTA_TYPE.MULTI_USE" translate="VOUCHER_CREATE_LABEL_USAGES"></label></div><div class="appInputFeedback appInputFeedback--danger" ng-show="vouchersCreateCtrl.form.number.$invalid && vouchersCreateCtrl.showValidation" translate="VOUCHER_CREATE_INPUT_FEEDBACK_COUNT"></div></div></div><div class="row"><div class="col ubntFormGroup"><label class="ubntLabel" translate="VOUCHER_CREATE_LABEL_EXPIRATION_TIME"></label><div class="ubntFormGroup ubntFormGroup--flex"><select class="width-full" name="expire" ng-model="vouchersCreateCtrl.voucherAttrs.expire" ng-options="option.value as option.translationKey | translate:option.translationParams:\'messageformat\' for option in vouchersCreateCtrl.expireOptions"><option'+o("unifi-option-placeholder",!0,!0,!0)+'></option></select><input class="input--smallNumber ml-2" ng-if="vouchersCreateCtrl.voucherAttrs.expire === \'custom\'" type="number" name="expire_number" title="{{\'VOUCHER_CREATE_TITLE_NUMBER\' | translate}}" ng-model="vouchersCreateCtrl.voucherAttrs.expire_number"'+o("required",!0,!0,!0)+' min="1" max="1000000"><select class="ml-2" ng-if="vouchersCreateCtrl.voucherAttrs.expire === \'custom\'" name="expire_unit" ng-model="vouchersCreateCtrl.voucherAttrs.expire_unit" ng-options="option.value as option.translationKey | translate for option in vouchersCreateCtrl.expireUnitOptions"><option'+o("unifi-option-placeholder",!0,!0,!0)+'></option></select></div><div class="appInputFeedback appInputFeedback--danger" ng-show="vouchersCreateCtrl.form.expire_number.$invalid && vouchersCreateCtrl.showValidation" translate="VOUCHER_CREATE_INPUT_FEEDBACK_EXPIRATION"></div></div></div><div class="row"><div class="col ubntFormGroup"><label class="ubntLabel" for="limitDownload" translate="VOUCHER_CREATE_LABEL_LIMIT_DOWNLOAD"></label><div class="ubntFormGroup ubntFormGroup--flex"><input type="checkbox" id="limitDownload" ng-model="vouchersCreateCtrl.limits.isDownload"><label class="ubntLabel ubntLabel--secondary" for="limitDownload" translate="VOUCHER_CREATE_LABEL_LIMITED_TO"></label><input class="input--smallNumber ml-2" type="number" name="down" min="{{vouchersCreateCtrl.limits.isDownload ? 2 : \'\'}}" max="{{vouchersCreateCtrl.limits.isDownload ? 100000 : \'\'}}" ng-model="vouchersCreateCtrl.voucherAttrs.down" ng-disabled="!vouchersCreateCtrl.limits.isDownload" ng-required="vouchersCreateCtrl.limits.isDownload"><label class="ubntLabel ubntLabel--secondary ml-2" ng-class="{\'is-label-disabled\': !vouchersCreateCtrl.limits.isDownload}">Kbps</label></div><div class="appInputFeedback appInputFeedback--danger" ng-show="vouchersCreateCtrl.form.down.$invalid && vouchersCreateCtrl.showValidation" translate="VOUCHER_CREATE_INPUT_FEEDBACK_DOWNLOAD"></div></div></div><div class="row"><div class="col ubntFormGroup"><label class="ubntLabel" for="limitUpload" translate="VOUCHER_CREATE_LABEL_LIMIT_UPLOAD"></label><div class="ubntFormGroup ubntFormGroup--flex"><input type="checkbox" id="limitUpload" ng-model="vouchersCreateCtrl.limits.isUpload"><label class="ubntLabel ubntLabel--secondary" for="limitUpload" translate="VOUCHER_CREATE_LABEL_LIMITED_TO"></label><input class="input--smallNumber ml-2" type="number" name="up" min="{{vouchersCreateCtrl.limits.isUpload ? 2 : \'\'}}" max="{{vouchersCreateCtrl.limits.isUpload ? 100000 : \'\'}}" ng-model="vouchersCreateCtrl.voucherAttrs.up" ng-disabled="!vouchersCreateCtrl.limits.isUpload" ng-required="vouchersCreateCtrl.limits.isUpload"><label class="ubntLabel ubntLabel--secondary ml-2" ng-class="{\'is-label-disabled\': !vouchersCreateCtrl.limits.isUpload}">Kbps</label></div><div class="appInputFeedback appInputFeedback--danger" ng-show="vouchersCreateCtrl.form.up.$invalid && vouchersCreateCtrl.showValidation" translate="VOUCHER_CREATE_INPUT_FEEDBACK_UPLOAD"></div></div></div><div class="row"><div class="col ubntFormGroup"><label class="ubntLabel" for="byteQuota" translate="VOUCHER_CREATE_LABEL_BYTE_QUOTA"></label><div class="ubntFormGroup ubntFormGroup--flex"><input type="checkbox" id="byteQuota" ng-model="vouchersCreateCtrl.limits.isByteQuota"><label class="ubntLabel ubntLabel--secondary" for="byteQuota" translate="VOUCHER_CREATE_LABEL_LIMITED_TO"></label><input class="input--smallNumber ml-2" type="number" name="byteQuota" min="1" max="1048576" ng-model="vouchersCreateCtrl.voucherAttrs.bytes" ng-disabled="!vouchersCreateCtrl.limits.isByteQuota" ng-required="vouchersCreateCtrl.limits.isByteQuota"><label class="ubntLabel ubntLabel--secondary ml-2" ng-class="{\'is-label-disabled\': !vouchersCreateCtrl.limits.isByteQuota}">MB</label><label class="ubntLabel ubntLabel--secondary ml-2" ng-if="vouchersCreateCtrl.limits.isByteQuota && vouchersCreateCtrl.voucherAttrs.quota >= 2">{{\'VOUCHER_CREATE_LABEL_QUOTA_TOTAL\' | translate:{totalQuota: vouchersCreateCtrl.getFormattedMbytes(vouchersCreateCtrl.voucherAttrs.quota * (vouchersCreateCtrl.voucherAttrs.bytes || 0))} }}</label><unifi-tooltip class="ml-2" unifi-tooltip-class="\'ubntTooltip--small\'"><content translate="VOUCHER_CREATE_TOOLTIP_BYTE_QUOTA"></content></unifi-tooltip></div><div class="appInputFeedback appInputFeedback--danger" ng-show="vouchersCreateCtrl.form.byteQuota.$invalid && vouchersCreateCtrl.showValidation" translate="VOUCHER_CREATE_INPUT_FEEDBACK_BYTE_QUOTA"></div></div></div><div class="row"><div class="col ubntFormGroup"><label class="ubntLabel" translate="VOUCHER_CREATE_LABEL_NOTES"></label><input class="input--full" type="text" ng-model="vouchersCreateCtrl.voucherAttrs.note"></div></div></div></div></div><div class="ubntModal__footer"><div class="ubntFooter"><div class="ubntFooter__buttons"><div class="ubntButtonGroup ubntButtonGroup--cozy"><button class="ubntButton" type="button" ng-click="vouchersCreateCtrl.cancel()">{{\'COMMON_ACTIONS_CANCEL\' | translate}}</button><button class="ubntButton ubntButton--primary" ng-click="vouchersCreateCtrl.showValidation = true" busy-toggle="vouchersCreateCtrl.isSaving" busy-toggle-spinner-classes="[\'appSpinner appSpinner--light appSpinner--centered appSpinner--small\']">{{\'COMMON_ACTIONS_SAVE\' | translate}}</button></div></div></div></div></form></div>'};var r=/["&<>]/},{"pug-runtime":2}],135:[function(t,e,n){t("pug-runtime");e.exports=function(t){return""}},{"pug-runtime":2}],136:[function(t,e,n){t("pug-runtime");function o(t,e,n,o){return!1!==e&&null!=e&&(e||"class"!==t&&"style"!==t)?!0===e?" "+(o?t:t+'="'+t+'"'):("function"==typeof e.toJSON&&(e=e.toJSON()),"string"==typeof e||(e=JSON.stringify(e),n||-1===e.indexOf('"'))?(n&&(e=function(t){var e=""+t,n=r.exec(e);if(!n)return t;var o,i,a,s="";for(o=n.index,i=0;o<e.length;o++){switch(e.charCodeAt(o)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==o&&(s+=e.substring(i,o)),i=o+1,s+=a}return i!==o?s+e.substring(i,o):s}(e))," "+t+'="'+e+'"'):" "+t+"='"+e.replace(/'/g,"'")+"'"):""}e.exports=function(t){var e="";return e=e+'<div class="ubntPanelContainer ubntPanelContainer--viewport ubntPanelContainer--horizontal"><header class="ubntHeaderPanel ubntHeaderPanel--global"><div class="ubntHeader ubntHeader--global"><div class="ubntHeader__logo"><unifi-aura-icon unifi-aura-icon="\'ubnt\'" unifi-aura-icon-class="[\'ubntIcon\', \'ubntIcon--logo\']"></unifi-aura-icon></div><div class="ubntHeader__image"><img src="images/header-brand-icon.svg" style="height:32px; width: 32px;"></div><div class="ubntHeader__title mt-neg-2"><unifi-aura-icon unifi-aura-icon="\'brand-unifi\'" unifi-aura-icon-class="[\'ubntIcon\', \'ubntIcon--auto\']"></unifi-aura-icon></div><div class="ubntHeader__actions"><div class="unifiHeaderIconGroup"><unifi-training-button></unifi-training-button><unifi-refresh-button></unifi-refresh-button></div><unifi-user-menu></unifi-user-menu><unifi-etc-menu></unifi-etc-menu></div></div></header><div class="ubntMainPanel"><div class="ubntPanelContainer ubntPanelContainer--withSidePanel"><div class="ubntSidePanel ubntSidePanel--navigation"><div class="ubntPanelContent ubntPanelContent--overflow"><div class="ubntNavigation"><div class="ubntNavigation__group ubntNavigation__group--primary"'+o("pageutils-nav",!0,!0,!0)+' pageutils-nav-active-class="is-item-selected"'+o("unifi-requires-site-context",!0,!0,!0)+' style="font-size: 18px;"><div class="ubntNavigation__item" pageutils-nav-state="hotspot.site.analytics"><div class="ubntIcon ubntIcon--navigation icon ubnt-icon--statistics"></div><div class="ubntTooltip ubntTooltip--navigation" translate="HOTSPOT_NAV_ANALYTICS"></div><div class="appAccessibilityDescription" translate="HOTSPOT_NAV_ANALYTICS"></div></div><div class="ubntNavigation__item" pageutils-nav-state="hotspot.site.guests"><div class="ubntIcon ubntIcon--navigation icon ubnt-icon--users"></div><div class="ubntTooltip ubntTooltip--navigation" translate="HOTSPOT_NAV_GUESTS"></div><div class="appAccessibilityDescription" translate="HOTSPOT_NAV_GUESTS"></div></div><div class="ubntNavigation__item" pageutils-nav-state="hotspot.site.transactions"><div class="ubntIcon ubntIcon--navigation icon ubnt-icon--dollar-sign-2"></div><div class="ubntTooltip ubntTooltip--navigation" translate="HOTSPOT_NAV_PAYMENTS"></div><div class="appAccessibilityDescription" translate="HOTSPOT_NAV_PAYMENTS"></div></div><div class="ubntNavigation__item" pageutils-nav-state="hotspot.site.vouchers"><div class="ubntIcon ubntIcon--navigation icon ubnt-icon--news"></div><div class="ubntTooltip ubntTooltip--navigation" translate="HOTSPOT_NAV_VOUCHERS"></div><div class="appAccessibilityDescription" translate="HOTSPOT_NAV_VOUCHERS"></div></div><div class="ubntNavigation__item"'+o("unifi-if-role-admin",!0,!0,!0)+' pageutils-nav-state="hotspot.site.operators"><div class="ubntIcon ubntIcon--navigation icon ubnt-icon--key"></div><div class="ubntTooltip ubntTooltip--navigation" translate="HOTSPOT_NAV_OPERATORS"></div><div class="appAccessibilityDescription" translate="HOTSPOT_NAV_OPERATORS"></div></div></div></div></div></div><ui-view class="ubntMainPanel"></ui-view></div></div></div>'};var r=/["&<>]/},{"pug-runtime":2}],137:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+="<ui-view></ui-view><unifi-browser-warning></unifi-browser-warning>"}},{"pug-runtime":2}],138:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="ubntPanelContainer ubntPanelContainer--withHeaderPanel"><div class="ubntHeaderPanel ubntHeaderPanel--primary ubntHeaderPanel--expandable"><div class="ubntHeader overflow-visible"><div class="appActionBarFilters"><div class="appActionBarFilter"><unifi-date-range-selector unifi-date-range-selector-start="analyticsCtrl.start" unifi-date-range-selector-end="analyticsCtrl.end" unifi-date-range-selector-max-days="35" unifi-date-range-selector-on-change="analyticsCtrl.updateDateInterval(start, end)" unifi-date-range-selector-position="bottomRight" unifi-date-range-selector-with-list="true"></unifi-date-range-selector></div><div class="appActionBarFilter appActionBarFilter--noBorder" ng-if="analyticsCtrl.hasPaymentsEnabled() && analyticsCtrl.availableCurrencies.length > 1"><div class="ubntDropdownContainer" ng-class="{\'is-child-dropdown-expanded\': analyticsCtrl.isCurrencyDropdownVisible}" on-outside-element-click="analyticsCtrl.isCurrencyDropdownVisible = false"><div class="ubntSelect ubntSelect--link py-2 pl-0 mr-neg-2" ng-click="analyticsCtrl.isCurrencyDropdownVisible = !analyticsCtrl.isCurrencyDropdownVisible">{{analyticsCtrl.getCurrency()}}</div><div class="ubntDropdown ubntDropdown--bottomLeft"><a class="ubntDropdown__item" ng-repeat="currency in analyticsCtrl.availableCurrencies" ng-click="analyticsCtrl.updateCurrencyState(currency)">{{currency}}</a></div></div></div></div></div></div><div class="ubntMainPanel ubntMainPanel--feature"><div class="ubntPanelContent ubntPanelContent--scrollable"><div class="appContainer unifiHotspotAnalyticsContainer">\x3c!-- Revenue--\x3e<div class="appRow verticalRhythmPaddingTop"><div class="col--md12"><div class="appSubHeading appSubHeading--standalone appSubHeading--light appSubHeading__circle appSubHeading__circle--success type-larger"><span ng-if="analyticsCtrl.hasPaymentsEnabled()">{{\'HOTSPOT_ANALYTICS_SECTION_REVENUE\' | translate}}</span><span ng-if="!analyticsCtrl.hasPaymentsEnabled()">{{\'HOTSPOT_ANALYTICS_SECTION_CONNECTIONS\' | translate}}</span></div></div></div><div class="appRow appRow--comfy unifiHotspotAnalytics__sectionBottomBorder--responsive"><div class="col--lg8 col--md12"><unifi-revenue-chart></unifi-revenue-chart></div><div class="col--lg4 col--md12"><unifi-breakdown-graph></unifi-breakdown-graph></div></div>\x3c!-- Demographics--\x3e<div class="appRow verticalRhythmPaddingTop" ng-if="analyticsCtrl.hasPaymentsEnabled() || analyticsCtrl.hasSocialLoginEnabled()"><div class="col--md12"><div class="appSubHeading appSubHeading--standalone appSubHeading--light appSubHeading__circle appSubHeading__circle--danger type-larger"><span>{{\'HOTSPOT_ANALYTICS_SECTION_DEMOGRAPHICS\' | translate}}</span></div><unifi-subtabs class="noBorderTop verticalRhythmTop--condensed" unifi-subtabs-items="analyticsCtrl.ANALYTICS_SUBTABS.DEMOGRAPHY" unifi-subtabs-selected-tab="analyticsCtrl.demographySubTab" unifi-subtabs-is-responsive="false" unifi-subtabs-is-hide-all-if-only-one-present="true"></unifi-subtabs></div></div><div class="appRow appRow--comfy verticalRhythmPaddingTop" ng-if="analyticsCtrl.hasPaymentsEnabled() || analyticsCtrl.hasSocialLoginEnabled()"><div ng-switch="analyticsCtrl.demographySubTab.id"><div ng-switch-when="countries"><div class="col--lg6 col--md12"><unifi-countries-chart></unifi-countries-chart></div><div class="col--lg6 col--md12"><unifi-countries-map></unifi-countries-map></div></div><div ng-switch-when="age"><div class="col--lg4 col--md12"><unifi-age-chart></unifi-age-chart></div><div class="col--lg4 col--md12 col--lgOffset2"><unifi-gender-graph></unifi-gender-graph></div></div>\x3c!--div(ng-switch-when="languages")--\x3e\x3c!-- .col--md12--\x3e\x3c!-- unifi-languages-table--\x3e</div></div>\x3c!-- Device distribution--\x3e<div class="appRow appRow--comfy verticalRhythmPaddingTop"><div class="col--md12"><div class="appSubHeading appSubHeading--standalone appSubHeading--light appSubHeading__circle appSubHeading__circle--primary type-larger"><span>{{\'HOTSPOT_ANALYTICS_SECTION_DEVICE_DISTRIBUTION\' | translate}}</span></div></div></div><div class="appRow appRow--comfy"><div class="col--md4"><unifi-device-type-graph></unifi-device-type-graph></div><div class="col--md8"><unifi-device-type-column-chart></unifi-device-type-column-chart></div></div></div></div></div></div>'}},{"pug-runtime":2}],139:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+="<unifi-guest-list></unifi-guest-list>"}},{"pug-runtime":2}],140:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+="<unifi-operator-list></unifi-operator-list>"}},{"pug-runtime":2}],141:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+="<unifi-transaction-list></unifi-transaction-list>"}},{"pug-runtime":2}],142:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+="<unifi-voucher-list></unifi-voucher-list>"}},{"pug-runtime":2}],143:[function(t,e,n){"use strict";angular.module("base-unifi-hotspot").constant("GUEST_AUTHORIZATION",{NONE:"none",PASSWORD:"password",API:"api",FREE:"free",VOUCHER:"voucher",CREDIT:"credit",PAYPAL:"paypal",FACEBOOK:"facebook",FACEBOOK_WIFI:"facebook_wifi",GOOGLE:"google",RADIUS:"radius",WECHAT:"wechat"})},{}],144:[function(t,e,n){"use strict";angular.module("base-unifi-hotspot").filter("guestAuthorization",["$translate","currencyUtils","voucherUtils","GUEST_AUTHORIZATION",function(t,e,n,o){return function(r){switch(r.get("authorized_by")){case o.API:return t.instant("COMMON_GUEST_AUTHORIZATION_API");case o.FACEBOOK:return t.instant("COMMON_GUEST_AUTHORIZATION_FACEBOOK");case o.FACEBOOK_WIFI:return t.instant("COMMON_GUEST_AUTHORIZATION_FACEBOOK_WIFI");case o.GOOGLE:return t.instant("COMMON_GUEST_AUTHORIZATION_GOOGLE");case o.CREDIT:var i=r.get("package"),a=r.get("amount"),s=r.get("currency"),l=r.get("payment_cardtype")||t.instant("COMMON_GUEST_AUTHORIZATION_CREDIT_CARD");return i&&a&&(l+=" ["+i+", "+e.formatAmount(a,s)+"]"),l;case o.FREE:return t.instant("COMMON_GUEST_AUTHORIZATION_FREE");case o.PASSWORD:return t.instant("COMMON_GUEST_AUTHORIZATION_PASSWORD");case o.PAYPAL:return t.instant("COMMON_GUEST_AUTHORIZATION_PAYPAL");case o.RADIUS:return t.instant("COMMON_GUEST_AUTHORIZATION_RADIUS");case o.WECHAT:return t.instant("COMMON_GUEST_AUTHORIZATION_WECHAT");case o.VOUCHER:var u=r.get("voucher_code");return u?t.instant("COMMON_GUEST_AUTHORIZATION_VOUCHER_WITH_CODE",{code:n.formatCode(u)}):t.instant("COMMON_GUEST_AUTHORIZATION_VOUCHER");default:return t.instant("COMMON_GUEST_AUTHORIZATION_NONE")}}}])},{}],145:[function(t,e,n){"use strict";angular.module("base-unifi-hotspot",["base-unifi"]),t("./constants/GUEST_AUTHORIZATION.js"),t("./filters/guestAuthorization.js"),t("./services/collections/GuestCollection.js"),t("./services/collections/VoucherCollection.js"),t("./services/models/GuestModel.js"),t("./services/models/VoucherModel.js"),t("./services/voucherUtils.js")},{"./constants/GUEST_AUTHORIZATION.js":143,"./filters/guestAuthorization.js":144,"./services/collections/GuestCollection.js":146,"./services/collections/VoucherCollection.js":147,"./services/models/GuestModel.js":148,"./services/models/VoucherModel.js":149,"./services/voucherUtils.js":150}],146:[function(t,e,n){"use strict";angular.module("base-unifi-hotspot").factory("GuestCollection",["CORSCollection","GuestModel","siteUrlMixin","siteUrlWithinMixin","structureMixin","resolveMixin","webrtcMixin",function(t,e,n,o,r,i,a){return t.extend(n).extend(o).extend(r).extend(i).extend(a).extend({model:e,siteUrl:"stat/guest"})}])},{}],147:[function(t,e,n){"use strict";angular.module("base-unifi-hotspot").factory("VoucherCollection",["CORSCollection","VoucherModel","siteUrlMixin","structureMixin","resolveMixin","webrtcMixin",function(t,e,n,o,r,i){return t.extend(n).extend(o).extend(r).extend(i).extend({model:e,siteUrl:"stat/voucher"})}])},{}],148:[function(t,e,n){"use strict";angular.module("base-unifi-hotspot").factory("GuestModel",["$filter","CORSModel","siteUrlMixin","deepCopyMixin","getNestedMixin","webrtcMixin",function(t,e,n,o,r,i){return e.extend(n).extend(o).extend(r).extend(i).extend({idAttribute:"_id",siteUrl:"rest/guest",getDisplayName:function(){return this.get("hostname")||this.get("mac")},getEnd:function(){return t("moment")(1e3*this.get("end"),"format","datetime")}})}])},{}],149:[function(t,e,n){"use strict";angular.module("base-unifi-hotspot").factory("VoucherModel",["CORSModel","siteUrlMixin","deepCopyMixin","getNestedMixin","webrtcMixin",function(t,e,n,o,r){return t.extend(e).extend(n).extend(o).extend(r).extend({idAttribute:"_id",siteUrl:"stat/voucher"})}])},{}],150:[function(t,e,n){"use strict";angular.module("base-unifi-hotspot").service("voucherUtils",["$filter","$translate",function(t,e){this.getStatusText=function(n){var o=n.get("status"),r=n.get("status_expires"),i=r?t("seconds")(r.toFixed(0)):null;return n.get("quota")>0&&("USED_MULTIPLE"===o||"VALID_MULTI"===o)&&(o+="_QUOTA"),e.instant("VOUCHER_STATUS_"+o,{expires:i,quota:n.get("quota"),used:n.get("used")})},this.formatCode=function(t){return t.substring(0,5)+"-"+t.substring(5)}}])},{}],151:[function(t,e,n){"use strict";e.exports=function(t,e){var n=t.get("$q"),o=t.get("account"),r=t.get("$state"),i=t.get("ENV");if(o.isSuperAdmin()||o.isAdmin()&&!e)return n.when();r.go(i.FATAL_STATE,{error:403})}},{}],152:[function(t,e,n){"use strict";e.exports=function(t){var e=t.get("$window"),n=t.get("$q"),o=t.get("account"),r=t.get("site"),i=t.get("editAccount"),a=t.get("appUrl"),s=t.get("ENV");return o.repository.fetch().then(function(){var t=r.getActiveSite()||o.repository.model.get("last_site_name");return"hotspot"===o.repository.model.get("site_role")&&"app-unifi-hotspot"!==s.APP?n.reject().finally(function(){e.location.href=a.buildUrl(["hotspot","site",t])}):(t&&!r.getActiveSite()&&"app-unifi-overview"!==s.APP&&r.setActiveSite(t),o.isPasswordChangeRequired()&&i.editAccount(),n.when())})}},{}],153:[function(t,e,n){t("pug-runtime");function o(t,e,n,o){return!1!==e&&null!=e&&(e||"class"!==t&&"style"!==t)?!0===e?" "+(o?t:t+'="'+t+'"'):("function"==typeof e.toJSON&&(e=e.toJSON()),"string"==typeof e||(e=JSON.stringify(e),n||-1===e.indexOf('"'))?(n&&(e=function(t){var e=""+t,n=r.exec(e);if(!n)return t;var o,i,a,s="";for(o=n.index,i=0;o<e.length;o++){switch(e.charCodeAt(o)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==o&&(s+=e.substring(i,o)),i=o+1,s+=a}return i!==o?s+e.substring(i,o):s}(e))," "+t+'="'+e+'"'):" "+t+"='"+e.replace(/'/g,"'")+"'"):""}e.exports=function(t){var e="";return e=e+'<div class="unifiForgotPassword"><form class="appForm appForm--dark"'+o("novalidate",!0,!0,!0)+' autocomplete="off" name="login2FACtrl.form" ng-class="{\'is-form-validation-visible\': login2FACtrl.showValidation}" ng-submit="login2FACtrl.form.$valid && login2FACtrl.login()"><div class="unifiSettingsSection verticalRhythm" ng-if="login2FACtrl.error"><div class="appInfoBox appInfoBox--cozy appInfoBox--dark appInfoBox--danger"><div class="appInfoBox__icon icon ubnt-icon--alert"></div><div class="appInfoBox__content"><div class="appInfoBox__header" translate="ACCOUNT_NOTICE_LOGIN_ERROR_TITLE"></div><div class="appInfoBox__body"><p class="noMarginBottom" translate="{{login2FACtrl.error}}"></p></div></div></div></div><div class="appFormGroup"><label class="appLabel appLabel--primary unweighted" translate="ACCOUNT_2FA_LABEL_TOKEN"></label><input class="input--full"'+o("autofocus",!0,!0,!0)+' type="text" name="token" ng-model="login2FACtrl.token"'+o("required",!0,!0,!0)+' placeholder="{{\'ACCOUNT_2FA_PLACEHOLDER_TOKEN\' | translate}}"></div><div class="verticalRhythmTop--cozy"><button class="appMainButton appMainButton--primary appMainButton--full" id="loginButton" ng-click="login2FACtrl.showValidation = true" busy-toggle="login2FACtrl.isSubmitting" busy-toggle-spinner-classes="[\'appSpinner\', \'appSpinner--light\', \'appSpinner--centered\']">{{\'ACCOUNT_LOGIN_ACTIONS_SIGN_IN\' | translate}}</button></div><div class="verticalRhythmTop--cozy"><button class="appMainButton appMainButton--transparentDark appMainButton--full" ui-sref="{{login2FACtrl.ENV.APP_STATE_PREFIX}}account.login">{{\'ACCOUNT_FORGOT_PASSWORD_ACTIONS_BACK\' | translate}}</button></div></form></div>'};var r=/["&<>]/},{"pug-runtime":2}],154:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="unifiAccountContainer"><div class="stack spreadApart fullHeight"><div class="flexible shelfCenter"><div class="unifiAccount"><div class="unifiAccount__unifiLogo icon ubnt-icon--unifi"></div><div class="unifiAccount__appNameAndVersion"><span class="appDisplaySpaceAfter" unifi-if-app="\'app-unifi-hotspot\'" translate="ACCOUNT_TITLE_HOTSPOT_MANAGER"></span><span>{{accountCtrl.serverVersion}}</span></div><div class="unifiAccount__content"><ui-view></ui-view></div><div class="unifiAccount__oneAccount" ng-if="accountCtrl.showOneAccount"><div class="unifiAccount__ubntLogo icon ubnt-icon--ubnt-logo-u"></div><p>{{\'ACCOUNT_LABEL_ONE_ACCOUNT_FOR_ALL\' | translate}}</p><p><span>{{\'ACCOUNT_LABEL_ONE_ACCOUNT_NO_ACCOUNT\' | translate}} </span><a class="ubntLink" ng-href="https://{{::accountCtrl.accountHostname}}/register" target="_blank">{{\'ACCOUNT_LABEL_ONE_ACCOUNT_REGISTER_HERE\' | translate}}</a></p></div></div></div><div class="shelf spreadApart verticalRhythmTop--comfy inflexible" ng-if="(\'desktop\' | bowser) && (\'enableMobileAppBadges\' | featureFlagEnable)"><div class="inflexible verticalRhythm"><a class="appLink appLink--mobileAppBadge" href="https://itunes.apple.com/app/unifi/id1057750338"><img src="images/badges/app-store-badge.png"></a></div><div class="inflexible verticalRhythm"><a class="appLink appLink--mobileAppBadge" href="https://play.google.com/store/apps/details?id=com.ubnt.easyunifi"><img src="images/badges/google-play-badge.png"></a></div></div></div></div>'}},{"pug-runtime":2}],155:[function(t,e,n){t("pug-runtime");function o(t,e,n,o){return!1!==e&&null!=e&&(e||"class"!==t&&"style"!==t)?!0===e?" "+(o?t:t+'="'+t+'"'):("function"==typeof e.toJSON&&(e=e.toJSON()),"string"==typeof e||(e=JSON.stringify(e),n||-1===e.indexOf('"'))?(n&&(e=function(t){var e=""+t,n=r.exec(e);if(!n)return t;var o,i,a,s="";for(o=n.index,i=0;o<e.length;o++){switch(e.charCodeAt(o)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==o&&(s+=e.substring(i,o)),i=o+1,s+=a}return i!==o?s+e.substring(i,o):s}(e))," "+t+'="'+e+'"'):" "+t+"='"+e.replace(/'/g,"'")+"'"):""}e.exports=function(t){var e="";return e=e+'<div class="appContainer appContainer--responsive appContainer--centered"><div class="appRow--comfy"><div class="col--xs12"><div class="appInfoBox appInfoBox--danger appInfoBox--responsive verticalRhythmTop"><div class="appInfoBox__icon icon ubnt-icon--alert"></div><div class="appInfoBox__content"><div class="appInfoBox__header" ng-if="fatalCtrl.errorCode">{{fatalCtrl.errorCode}}: {{\'HTTP_STATUS_CODE_\' + fatalCtrl.errorCode | translate}}</div><div class="appInfoBox__header" ng-if="!fatalCtrl.errorCode" translate="FATAL_ERROR_GENERIC_ERROR"></div><div class="appInfoBox__body" ng-if="fatalCtrl.homeState"><p class="appLinkContainer noMarginBottom"'+o("unifi-translate-link",!0,!0,!0)+' unifi-translate-link-translate="FATAL_ERROR_LINK_TO_HOME" unifi-translate-link-state="fatalCtrl.homeState"></p></div><div class="appInfoBox__body" ng-if="fatalCtrl.loginState"><p class="appLinkContainer noMarginBottom"'+o("unifi-translate-link",!0,!0,!0)+' unifi-translate-link-translate="FATAL_ERROR_LINK_TO_LOGIN" unifi-translate-link-state="fatalCtrl.loginState"></p></div></div></div></div></div></div>'};var r=/["&<>]/},{"pug-runtime":2}],156:[function(t,e,n){t("pug-runtime");function o(t,e,n,o){return!1!==e&&null!=e&&(e||"class"!==t&&"style"!==t)?!0===e?" "+(o?t:t+'="'+t+'"'):("function"==typeof e.toJSON&&(e=e.toJSON()),"string"==typeof e||(e=JSON.stringify(e),n||-1===e.indexOf('"'))?(n&&(e=function(t){var e=""+t,n=r.exec(e);if(!n)return t;var o,i,a,s="";for(o=n.index,i=0;o<e.length;o++){switch(e.charCodeAt(o)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;case 62:a=">";break;default:continue}i!==o&&(s+=e.substring(i,o)),i=o+1,s+=a}return i!==o?s+e.substring(i,o):s}(e))," "+t+'="'+e+'"'):" "+t+"='"+e.replace(/'/g,"'")+"'"):""}e.exports=function(t){var e="";return e=e+'<div class="unifiLogin ubnt-mod-dark"><form class="appForm appForm--dark"'+o("novalidate",!0,!0,!0)+' name="loginCtrl.form" ng-class="{\'is-form-validation-visible\': loginCtrl.showValidation}" ng-submit="loginCtrl.form.$valid && loginCtrl.login()"><div class="unifiSettingsSection verticalRhythm" ng-if="loginCtrl.error"><div class="appInfoBox appInfoBox--cozy appInfoBox--dark appInfoBox--danger"><div class="appInfoBox__icon icon ubnt-icon--alert"></div><div class="appInfoBox__content"><div class="appInfoBox__header" translate="ACCOUNT_NOTICE_LOGIN_ERROR_TITLE"></div><div class="appInfoBox__body"><p class="noMarginBottom" translate="{{loginCtrl.error}}"></p></div></div></div></div><div ng-if="loginCtrl.oauthAppId"><div class="verticalRhythmTop--cozy"><button class="appMainButton appMainButton--primary appMainButton--full" id="oauthLoginButton" type="button" ng-click="loginCtrl.login(\'oauth\')" busy-toggle="loginCtrl.isSubmitting" busy-toggle-spinner-classes="[\'appSpinner\', \'appSpinner--light\', \'appSpinner--centered\']" translate="ACCOUNT_LOGIN_ACTIONS_SSO_LOGIN"></button></div><div class="verticalRhythm--cozy verticalRhythmTop--cozy alignCenter" translate="COMMON_OR"></div></div><div class="appFormGroup"><label class="appLabel appLabel--primary unweighted" translate="ACCOUNT_LOGIN_LABEL_USERNAME"></label><input class="input--full" type="text" name="username" ng-model="loginCtrl.username"'+o("required",!0,!0,!0)+' autocapitalize="off" autocorrect="off"'+o("autofocus",!0,!0,!0)+'></div><div class="appFormGroup"><label class="appLabel appLabel--primary unweighted" translate="ACCOUNT_LOGIN_LABEL_PASSWORD"></label><input class="input--full" type="password" name="password" ng-model="loginCtrl.password"'+o("required",!0,!0,!0)+'></div><div class="verticalRhythmTop--cozy"><div class="appFormGroup alignCenter"><div class="appInputGroup appInputGroup--cozy"><input id="loginRemember" type="checkbox" name="remember" ng-model="loginCtrl.remember"><label class="unweighted" for="loginRemember" translate="ACCOUNT_LOGIN_LABEL_REMEMBER_ME"></label><unifi-tooltip unifi-tooltip-class="\'ubntTooltip--small\'"><content translate="ACCOUNT_LOGIN_TOOLTIP_REMEMBER_ME"></content></unifi-tooltip></div></div></div><div class="verticalRhythmTop--cozy"><button class="appMainButton appMainButton--primary appMainButton--full" id="loginButton" ng-click="loginCtrl.showValidation = true" busy-toggle="loginCtrl.isSubmitting" busy-toggle-spinner-classes="[\'appSpinner\', \'appSpinner--light\', \'appSpinner--centered\']" translate="ACCOUNT_LOGIN_ACTIONS_SIGN_IN"></button></div><div class="verticalRhythmTop--cozy"><a class="appMainButton appMainButton--transparentDark appMainButton--full" ui-sref="{{loginCtrl.ENV.APP_STATE_PREFIX}}account.forgotpassword" unifi-if-app="[\'app-unifi-manage\', \'app-unifi-overview\']" translate="ACCOUNT_LOGIN_LINK_FORGOT_PASSWORD"></a></div></form></div>'};var r=/["&<>]/},{"pug-runtime":2}],157:[function(t,e,n){e.exports={type:"Topology",objects:{world:{type:"GeometryCollection",geometries:[{type:"Polygon",properties:{name:"Afghanistan"},id:"AFG",arcs:[[0,1,2,3,4,5]]},{type:"MultiPolygon",properties:{name:"Angola"},id:"AGO",arcs:[[[6,7,8,9]],[[10,11,12]]]},{type:"Polygon",properties:{name:"Albania"},id:"ALB",arcs:[[13,14,15,16,17]]},{type:"Polygon",properties:{name:"United Arab Emirates"},id:"ARE",arcs:[[18,19,20,21,22]]},{type:"MultiPolygon",properties:{name:"Argentina"},id:"ARG",arcs:[[[23,24]],[[25,26,27,28,29,30]]]},{type:"Polygon",properties:{name:"Armenia"},id:"ARM",arcs:[[31,32,33,34,35]]},{type:"MultiPolygon",properties:{name:"Antarctica"},id:"ATA",arcs:[[[36]],[[37]],[[38]],[[39]],[[40]],[[41]],[[42]],[[43]]]},{type:"Polygon",properties:{name:"French Southern and Antarctic Lands"},id:"ATF",arcs:[[44]]},{type:"MultiPolygon",properties:{name:"Australia"},id:"AUS",arcs:[[[45]],[[46]]]},{type:"Polygon",properties:{name:"Austria"},id:"AUT",arcs:[[47,48,49,50,51,52,53]]},{type:"MultiPolygon",properties:{name:"Azerbaijan"},id:"AZE",arcs:[[[54,-35]],[[55,56,-33,57,58]]]},{type:"Polygon",properties:{name:"Burundi"},id:"BDI",arcs:[[59,60,61]]},{type:"Polygon",properties:{name:"Belgium"},id:"BEL",arcs:[[62,63,64,65,66]]},{type:"Polygon",properties:{name:"Benin"},id:"BEN",arcs:[[67,68,69,70,71]]},{type:"Polygon",properties:{name:"Burkina Faso"},id:"BFA",arcs:[[72,73,74,-70,75,76]]},{type:"Polygon",properties:{name:"Bangladesh"},id:"BGD",arcs:[[77,78,79]]},{type:"Polygon",properties:{name:"Bulgaria"},id:"BGR",arcs:[[80,81,82,83,84,85]]},{type:"MultiPolygon",properties:{name:"The Bahamas"},id:"BHS",arcs:[[[86]],[[87]],[[88]]]},{type:"Polygon",properties:{name:"Bosnia and Herzegovina"},id:"BIH",arcs:[[89,90,91]]},{type:"Polygon",properties:{name:"Belarus"},id:"BLR",arcs:[[92,93,94,95,96]]},{type:"Polygon",properties:{name:"Belize"},id:"BLZ",arcs:[[97,98,99]]},{type:"Polygon",properties:{name:"Bolivia"},id:"BOL",arcs:[[100,101,102,103,-31]]},{type:"Polygon",properties:{name:"Brazil"},id:"BRA",arcs:[[-27,104,-103,105,106,107,108,109,110,111,112]]},{type:"Polygon",properties:{name:"Brunei"},id:"BRN",arcs:[[113,114]]},{type:"Polygon",properties:{name:"Bhutan"},id:"BTN",arcs:[[115,116]]},{type:"Polygon",properties:{name:"Botswana"},id:"BWA",arcs:[[117,118,119,120]]},{type:"Polygon",properties:{name:"Central African Republic"},id:"CAF",arcs:[[121,122,123,124,125,126,127]]},{type:"MultiPolygon",properties:{name:"Canada"},id:"CAN",arcs:[[[128]],[[129]],[[130]],[[131]],[[132]],[[133]],[[134]],[[135]],[[136]],[[137]],[[138,139,140,141]],[[142]],[[143]],[[144]],[[145]],[[146]],[[147]],[[148]],[[149]],[[150]],[[151]],[[152]],[[153]],[[154]],[[155]],[[156]],[[157]],[[158]],[[159]],[[160]]]},{type:"Polygon",properties:{name:"Switzerland"},id:"CHE",arcs:[[-51,161,162,163]]},{type:"MultiPolygon",properties:{name:"Chile"},id:"CHL",arcs:[[[-24,164]],[[-30,165,166,-101]]]},{type:"MultiPolygon",properties:{name:"China"},id:"CHN",arcs:[[[167]],[[168,169,170,171,172,173,-117,174,175,176,177,-4,178,179,180,181,182,183]]]},{type:"Polygon",properties:{name:"Ivory Coast"},id:"CIV",arcs:[[184,185,186,187,-73,188]]},{type:"Polygon",properties:{name:"Cameroon"},id:"CMR",arcs:[[189,190,191,192,193,194,-128,195]]},{type:"Polygon",properties:{name:"Democratic Republic of the Congo"},id:"COD",arcs:[[196,197,-60,198,199,-10,200,-13,201,-126,202]]},{type:"Polygon",properties:{name:"Republic of the Congo"},id:"COG",arcs:[[-12,203,204,-196,-127,-202]]},{type:"Polygon",properties:{name:"Colombia"},id:"COL",arcs:[[205,206,207,208,209,-107,210]]},{type:"Polygon",properties:{name:"Costa Rica"},id:"CRI",arcs:[[211,212,213,214]]},{type:"Polygon",properties:{name:"Cuba"},id:"CUB",arcs:[[215]]},{type:"Polygon",properties:{name:"Northern Cyprus"},id:"-99",arcs:[[216,217]]},{type:"Polygon",properties:{name:"Cyprus"},id:"CYP",arcs:[[218,-218]]},{type:"Polygon",properties:{name:"Czech Republic"},id:"CZE",arcs:[[-53,219,220,221]]},{type:"Polygon",properties:{name:"Germany"},id:"DEU",arcs:[[222,223,-220,-52,-164,224,225,-64,226,227,228]]},{type:"Polygon",properties:{name:"Djibouti"},id:"DJI",arcs:[[229,230,231,232]]},{type:"MultiPolygon",properties:{name:"Denmark"},id:"DNK",arcs:[[[233]],[[-229,234]]]},{type:"Polygon",properties:{name:"Dominican Republic"},id:"DOM",arcs:[[235,236]]},{type:"Polygon",properties:{name:"Algeria"},id:"DZA",arcs:[[237,238,239,240,241,242,243,244]]},{type:"Polygon",properties:{name:"Ecuador"},id:"ECU",arcs:[[245,-206,246]]},{type:"Polygon",properties:{name:"Egypt"},id:"EGY",arcs:[[247,248,249,250,251]]},{type:"Polygon",properties:{name:"Eritrea"},id:"ERI",arcs:[[252,253,254,-233]]},{type:"Polygon",properties:{name:"Spain"},id:"ESP",arcs:[[255,256,257,258]]},{type:"Polygon",properties:{name:"Estonia"},id:"EST",arcs:[[259,260,261]]},{type:"Polygon",properties:{name:"Ethiopia"},id:"ETH",arcs:[[-232,262,263,264,265,266,267,-253]]},{type:"Polygon",properties:{name:"Finland"},id:"FIN",arcs:[[268,269,270,271]]},{type:"MultiPolygon",properties:{name:"Fiji"},id:"FJI",arcs:[[[272]],[[273,274]],[[275,-275]]]},{type:"Polygon",properties:{name:"Falkland Islands"},id:"FLK",arcs:[[276]]},{type:"MultiPolygon",properties:{name:"France"},id:"FRA",arcs:[[[277]],[[278,-225,-163,279,280,-257,281,-66]]]},{type:"Polygon",properties:{name:"French Guiana"},id:"GUF",arcs:[[282,283,284,285,-111]]},{type:"Polygon",properties:{name:"Gabon"},id:"GAB",arcs:[[286,287,-190,-205]]},{type:"MultiPolygon",properties:{name:"United Kingdom"},id:"GBR",arcs:[[[288,289]],[[290]]]},{type:"Polygon",properties:{name:"Georgia"},id:"GEO",arcs:[[291,292,-58,-32,293]]},{type:"Polygon",properties:{name:"Ghana"},id:"GHA",arcs:[[294,-189,-77,295]]},{type:"Polygon",properties:{name:"Guinea"},id:"GIN",arcs:[[296,297,298,299,300,301,-187]]},{type:"Polygon",properties:{name:"Gambia"},id:"GMB",arcs:[[302,303]]},{type:"Polygon",properties:{name:"Guinea Bissau"},id:"GNB",arcs:[[304,305,-300]]},{type:"Polygon",properties:{name:"Equatorial Guinea"},id:"GNQ",arcs:[[306,-191,-288]]},{type:"MultiPolygon",properties:{name:"Greece"},id:"GRC",arcs:[[[307]],[[308,-15,309,-84,310]]]},{type:"Polygon",properties:{name:"Greenland"},id:"GRL",arcs:[[311]]},{type:"Polygon",properties:{name:"Guatemala"},id:"GTM",arcs:[[312,313,-100,314,315,316]]},{type:"Polygon",properties:{name:"Guyana"},id:"GUY",arcs:[[317,318,-109,319]]},{type:"Polygon",properties:{name:"Honduras"},id:"HND",arcs:[[320,321,-316,322,323]]},{type:"Polygon",properties:{name:"Croatia"},id:"HRV",arcs:[[324,-92,325,326,327,328]]},{type:"Polygon",properties:{name:"Haiti"},id:"HTI",arcs:[[-237,329]]},{type:"Polygon",properties:{name:"Hungary"},id:"HUN",arcs:[[-48,330,331,332,333,-329,334]]},{type:"MultiPolygon",properties:{name:"Indonesia"},id:"IDN",arcs:[[[335]],[[336,337]],[[338]],[[339]],[[340]],[[341]],[[342]],[[343]],[[344,345]],[[346]],[[347]],[[348,349]],[[350]]]},{type:"Polygon",properties:{name:"India"},id:"IND",arcs:[[-177,351,-175,-116,-174,352,-80,353,354]]},{type:"Polygon",properties:{name:"Ireland"},id:"IRL",arcs:[[355,-289]]},{type:"Polygon",properties:{name:"Iran"},id:"IRN",arcs:[[356,-6,357,358,359,360,-55,-34,-57,361]]},{type:"Polygon",properties:{name:"Iraq"},id:"IRQ",arcs:[[362,363,364,365,366,367,-360]]},{type:"Polygon",properties:{name:"Iceland"},id:"ISL",arcs:[[368]]},{type:"Polygon",properties:{name:"Israel"},id:"ISR",arcs:[[369,370,371,-252,372,373,374]]},{type:"MultiPolygon",properties:{name:"Italy"},id:"ITA",arcs:[[[375]],[[376]],[[377,378,-280,-162,-50]]]},{type:"Polygon",properties:{name:"Jamaica"},id:"JAM",arcs:[[379]]},{type:"Polygon",properties:{name:"Jordan"},id:"JOR",arcs:[[-370,380,-366,381,382,-372,383]]},{type:"MultiPolygon",properties:{name:"Japan"},id:"JPN",arcs:[[[384]],[[385]],[[386]]]},{type:"Polygon",properties:{name:"Kazakhstan"},id:"KAZ",arcs:[[387,388,389,390,-181,391]]},{type:"Polygon",properties:{name:"Kenya"},id:"KEN",arcs:[[392,393,394,395,-265,396]]},{type:"Polygon",properties:{name:"Kyrgyzstan"},id:"KGZ",arcs:[[-392,-180,397,398]]},{type:"Polygon",properties:{name:"Cambodia"},id:"KHM",arcs:[[399,400,401,402]]},{type:"Polygon",properties:{name:"South Korea"},id:"KOR",arcs:[[403,404]]},{type:"Polygon",properties:{name:"Kosovo"},id:"-99",arcs:[[-18,405,406,407]]},{type:"Polygon",properties:{name:"Kuwait"},id:"KWT",arcs:[[408,409,-364]]},{type:"Polygon",properties:{name:"Laos"},id:"LAO",arcs:[[410,411,-172,412,-401]]},{type:"Polygon",properties:{name:"Lebanon"},id:"LBN",arcs:[[-374,413,414]]},{type:"Polygon",properties:{name:"Liberia"},id:"LBR",arcs:[[415,416,-297,-186]]},{type:"Polygon",properties:{name:"Libya"},id:"LBY",arcs:[[417,-245,418,419,-250,420,421]]},{type:"Polygon",properties:{name:"Sri Lanka"},id:"LKA",arcs:[[422]]},{type:"Polygon",properties:{name:"Lesotho"},id:"LSO",arcs:[[423]]},{type:"Polygon",properties:{name:"Lithuania"},id:"LTU",arcs:[[424,425,426,-93,427]]},{type:"Polygon",properties:{name:"Luxembourg"},id:"LUX",arcs:[[-226,-279,-65]]},{type:"Polygon",properties:{name:"Latvia"},id:"LVA",arcs:[[428,-262,429,-94,-427]]},{type:"Polygon",properties:{name:"Morocco"},id:"MAR",arcs:[[-242,430,431]]},{type:"Polygon",properties:{name:"Moldova"},id:"MDA",arcs:[[432,433]]},{type:"Polygon",properties:{name:"Madagascar"},id:"MDG",arcs:[[434]]},{type:"Polygon",properties:{name:"Mexico"},id:"MEX",arcs:[[435,-98,-314,436,437]]},{type:"Polygon",properties:{name:"Macedonia"},id:"MKD",arcs:[[-408,438,-85,-310,-14]]},{type:"Polygon",properties:{name:"Mali"},id:"MLI",arcs:[[439,-239,440,-74,-188,-302,441]]},{type:"Polygon",properties:{name:"Myanmar"},id:"MMR",arcs:[[442,-78,-353,-173,-412,443]]},{type:"Polygon",properties:{name:"Montenegro"},id:"MNE",arcs:[[444,-326,-91,445,-406,-17]]},{type:"Polygon",properties:{name:"Mongolia"},id:"MNG",arcs:[[446,-183]]},{type:"Polygon",properties:{name:"Mozambique"},id:"MOZ",arcs:[[447,448,449,450,451,452,453,454]]},{type:"Polygon",properties:{name:"Mauritania"},id:"MRT",arcs:[[455,456,457,-240,-440]]},{type:"Polygon",properties:{name:"Malawi"},id:"MWI",arcs:[[-455,458,459]]},{type:"MultiPolygon",properties:{name:"Malaysia"},id:"MYS",arcs:[[[460,461]],[[-349,462,-115,463]]]},{type:"Polygon",properties:{name:"Namibia"},id:"NAM",arcs:[[464,-8,465,-119,466]]},{type:"Polygon",properties:{name:"New Caledonia"},id:"NCL",arcs:[[467]]},{type:"Polygon",properties:{name:"Niger"},id:"NER",arcs:[[-75,-441,-238,-418,468,-194,469,-71]]},{type:"Polygon",properties:{name:"Nigeria"},id:"NGA",arcs:[[470,-72,-470,-193]]},{type:"Polygon",properties:{name:"Nicaragua"},id:"NIC",arcs:[[471,-324,472,-213]]},{type:"Polygon",properties:{name:"Netherlands"},id:"NLD",arcs:[[-227,-63,473]]},{type:"MultiPolygon",properties:{name:"Norway"},id:"NOR",arcs:[[[474,-272,475,476]],[[477]],[[478]],[[479]]]},{type:"Polygon",properties:{name:"Nepal"},id:"NPL",arcs:[[-352,-176]]},{type:"MultiPolygon",properties:{name:"New Zealand"},id:"NZL",arcs:[[[480]],[[481]]]},{type:"MultiPolygon",properties:{name:"Oman"},id:"OMN",arcs:[[[482,483,-22,484]],[[-20,485]]]},{type:"Polygon",properties:{name:"Pakistan"},id:"PAK",arcs:[[-178,-355,486,-358,-5]]},{type:"Polygon",properties:{name:"Panama"},id:"PAN",arcs:[[487,-215,488,-208]]},{type:"Polygon",properties:{name:"Peru"},id:"PER",arcs:[[-167,489,-247,-211,-106,-102]]},{type:"MultiPolygon",properties:{name:"Philippines"},id:"PHL",arcs:[[[490]],[[491]],[[492]],[[493]],[[494]],[[495]],[[496]]]},{type:"MultiPolygon",properties:{name:"Papua New Guinea"},id:"PNG",arcs:[[[497]],[[498]],[[-345,499]],[[500]]]},{type:"Polygon",properties:{name:"Poland"},id:"POL",arcs:[[-224,501,502,-428,-97,503,504,-221]]},{type:"Polygon",properties:{name:"Puerto Rico"},id:"PRI",arcs:[[505]]},{type:"Polygon",properties:{name:"North Korea"},id:"PRK",arcs:[[506,507,-405,508,-169]]},{type:"Polygon",properties:{name:"Portugal"},id:"PRT",arcs:[[-259,509]]},{type:"Polygon",properties:{name:"Paraguay"},id:"PRY",arcs:[[-104,-105,-26]]},{type:"Polygon",properties:{name:"Qatar"},id:"QAT",arcs:[[510,511]]},{type:"Polygon",properties:{name:"Romania"},id:"ROU",arcs:[[512,-434,513,514,-81,515,-333]]},{type:"MultiPolygon",properties:{name:"Russia"},id:"RUS",arcs:[[[516]],[[-503,517,-425]],[[518,519]],[[520]],[[521]],[[522]],[[523]],[[524]],[[525]],[[526,-507,-184,-447,-182,-391,527,-59,-293,528,529,-95,-430,-261,530,-269,-475,531,-520]],[[532]],[[533]],[[534]]]},{type:"Polygon",properties:{name:"Rwanda"},id:"RWA",arcs:[[535,-61,-198,536]]},{type:"Polygon",properties:{name:"Western Sahara"},id:"ESH",arcs:[[-241,-458,537,-431]]},{type:"Polygon",properties:{name:"Saudi Arabia"},id:"SAU",arcs:[[538,-382,-365,-410,539,-512,540,-23,-484,541]]},{type:"Polygon",properties:{name:"Sudan"},id:"SDN",arcs:[[542,543,-123,544,-421,-249,545,-254,-268,546]]},{type:"Polygon",properties:{name:"South Sudan"},id:"SSD",arcs:[[547,-266,-396,548,-203,-125,549,-543]]},{type:"Polygon",properties:{name:"Senegal"},id:"SEN",arcs:[[550,-456,-442,-301,-306,551,-304]]},{type:"MultiPolygon",properties:{name:"Solomon Islands"},id:"SLB",arcs:[[[552]],[[553]],[[554]],[[555]],[[556]]]},{type:"Polygon",properties:{name:"Sierra Leone"},id:"SLE",arcs:[[557,-298,-417]]},{type:"Polygon",properties:{name:"El Salvador"},id:"SLV",arcs:[[558,-317,-322]]},{type:"Polygon",properties:{name:"Somaliland"},id:"-99",arcs:[[-263,-231,559,560]]},{type:"Polygon",properties:{name:"Somalia"},id:"SOM",arcs:[[-397,-264,-561,561]]},{type:"Polygon",properties:{name:"Republic of Serbia"},id:"SRB",arcs:[[-86,-439,-407,-446,-90,-325,-334,-516]]},{type:"Polygon",properties:{name:"Suriname"},id:"SUR",arcs:[[562,-285,563,-283,-110,-319]]},{type:"Polygon",properties:{name:"Slovakia"},id:"SVK",arcs:[[-505,564,-331,-54,-222]]},{type:"Polygon",properties:{name:"Slovenia"},id:"SVN",arcs:[[-49,-335,-328,565,-378]]},{type:"Polygon",properties:{name:"Sweden"},id:"SWE",arcs:[[-476,-271,566]]},{type:"Polygon",properties:{name:"Swaziland"},id:"SWZ",arcs:[[567,-451]]},{type:"Polygon",properties:{name:"Syria"},id:"SYR",arcs:[[-381,-375,-415,568,569,-367]]},{type:"Polygon",properties:{name:"Chad"},id:"TCD",arcs:[[-469,-422,-545,-122,-195]]},{type:"Polygon",properties:{name:"Togo"},id:"TGO",arcs:[[570,-296,-76,-69]]},{type:"Polygon",properties:{name:"Thailand"},id:"THA",arcs:[[571,-462,572,-444,-411,-400]]},{type:"Polygon",properties:{name:"Tajikistan"},id:"TJK",arcs:[[-398,-179,-3,573]]},{type:"Polygon",properties:{name:"Turkmenistan"},id:"TKM",arcs:[[-357,574,-389,575,-1]]},{type:"Polygon",properties:{name:"East Timor"},id:"TLS",arcs:[[576,-337]]},{type:"Polygon",properties:{name:"Trinidad and Tobago"},id:"TTO",arcs:[[577]]},{type:"Polygon",properties:{name:"Tunisia"},id:"TUN",arcs:[[-244,578,-419]]},{type:"MultiPolygon",properties:{name:"Turkey"},id:"TUR",arcs:[[[-294,-36,-361,-368,-570,579]],[[-311,-83,580]]]},{type:"Polygon",properties:{name:"Taiwan"},id:"TWN",arcs:[[581]]},{type:"Polygon",properties:{name:"United Republic of Tanzania"},id:"TZA",arcs:[[-394,582,-448,-460,583,-199,-62,-536,584]]},{type:"Polygon",properties:{name:"Uganda"},id:"UGA",arcs:[[-537,-197,-549,-395,-585]]},{type:"Polygon",properties:{name:"Ukraine"},id:"UKR",arcs:[[-530,585,-514,-433,-513,-332,-565,-504,-96]]},{type:"Polygon",properties:{name:"Uruguay"},id:"URY",arcs:[[-113,586,-28]]},{type:"MultiPolygon",properties:{name:"United States of America"},id:"USA",arcs:[[[587]],[[588]],[[589]],[[590]],[[591]],[[592,-438,593,-139]],[[594]],[[595]],[[596]],[[-141,597]]]},{type:"Polygon",properties:{name:"Uzbekistan"},id:"UZB",arcs:[[-576,-388,-399,-574,-2]]},{type:"Polygon",properties:{name:"Venezuela"},id:"VEN",arcs:[[598,-320,-108,-210]]},{type:"Polygon",properties:{name:"Vietnam"},id:"VNM",arcs:[[599,-402,-413,-171]]},{type:"MultiPolygon",properties:{name:"Vanuatu"},id:"VUT",arcs:[[[600]],[[601]]]},{type:"Polygon",properties:{name:"West Bank"},id:"PSE",arcs:[[-384,-371]]},{type:"Polygon",properties:{name:"Yemen"},id:"YEM",arcs:[[602,-542,-483]]},{type:"Polygon",properties:{name:"South Africa"},id:"ZAF",arcs:[[-467,-118,603,-452,-568,-450,604],[-424]]},{type:"Polygon",properties:{name:"Zambia"},id:"ZMB",arcs:[[-459,-454,605,-120,-466,-7,-200,-584]]},{type:"Polygon",properties:{name:"Zimbabwe"},id:"ZWE",arcs:[[-604,-121,-606,-453]]}]}},arcs:[[[6700,7164],[28,-23],[21,8],[6,27],[22,9],[15,18],[6,47],[23,11],[5,21],[13,-15],[8,-2]],[[6847,7265],[16,-1],[20,-12]],[[6883,7252],[9,-7],[20,19],[9,-12],[9,27],[17,-1],[4,9],[3,24],[12,20],[15,-13],[-3,-18],[9,-3],[-3,-50],[11,-19],[10,12],[12,6],[17,27],[19,-5],[29,0]],[[7082,7268],[5,-17]],[[7087,7251],[-16,-6],[-14,-11],[-32,-7],[-30,-13],[-16,-25],[6,-25],[4,-30],[-14,-25],[1,-22],[-8,-22],[-26,2],[11,-39],[-18,-15],[-12,-35],[2,-36],[-11,-16],[-10,5],[-22,-8],[-3,-16],[-20,0],[-16,-34],[-1,-50],[-36,-24],[-19,5],[-6,-13],[-16,7],[-28,-8],[-47,30]],[[6690,6820],[25,53],[-2,38],[-21,10],[-2,38],[-9,47],[12,32],[-12,9],[7,43],[12,74]],[[5664,4412],[3,-18],[-4,-29],[5,-28],[-4,-22],[3,-20],[-58,1],[-2,-188],[19,-49],[18,-37]],[[5644,4022],[-51,-24],[-67,9],[-19,28],[-113,-3],[-4,-4],[-17,27],[-18,2],[-16,-10],[-14,-12]],[[5325,4035],[-2,38],[4,51],[9,55],[2,25],[9,53],[6,24],[16,39],[9,26],[3,44],[-1,34],[-9,21],[-7,36],[-7,35],[2,12],[8,24],[-8,57],[-6,39],[-14,38],[3,11]],[[5342,4697],[11,8],[8,-1],[10,7],[82,-1],[7,-44],[8,-35],[6,-19],[11,-31],[18,5],[9,8],[16,-8],[4,14],[7,35],[17,2],[2,10],[14,1],[-3,-22],[34,1],[1,-37],[5,-23],[-4,-36],[2,-36],[9,-22],[-1,-70],[7,5],[12,-1],[17,8],[13,-3]],[[5338,4715],[-8,45]],[[5330,4760],[12,25],[8,10],[10,-20]],[[5360,4775],[-10,-12],[-4,-16],[-1,-25],[-7,-7]],[[5571,7530],[-3,-20],[4,-25],[11,-15]],[[5583,7470],[0,-15],[-9,-9],[-2,-19],[-13,-29]],[[5559,7398],[-5,5],[0,13],[-15,19],[-3,29],[2,40],[4,18],[-4,10]],[[5538,7532],[-2,18],[12,29],[1,-11],[8,6]],[[5557,7574],[6,-16],[7,-6],[1,-22]],[[6432,6490],[5,3],[1,-16],[22,9],[23,-2],[17,-1],[19,39],[20,38],[18,37]],[[6557,6597],[5,-20]],[[6562,6577],[4,-47]],[[6566,6530],[-14,0],[-3,-39],[5,-8],[-12,-12],[0,-24],[-8,-24],[-1,-24]],[[6533,6399],[-6,-12],[-83,29],[-11,60],[-1,14]],[[3140,1814],[-17,2],[-30,0],[0,132]],[[3093,1948],[11,-27],[14,-45],[36,-35],[39,-15],[-13,-30],[-26,-2],[-14,20]],[[3258,3743],[51,-96],[23,-9],[34,-44],[29,-23],[4,-26],[-28,-90],[28,-16],[32,-9],[22,10],[25,45],[4,52]],[[3482,3537],[14,11],[14,-34],[-1,-47],[-23,-33],[-19,-24],[-31,-57],[-37,-81]],[[3399,3272],[-7,-47],[-7,-61],[0,-58],[-6,-14],[-2,-38]],[[3377,3054],[-2,-31],[35,-50],[-4,-41],[18,-26],[-2,-29],[-26,-75],[-42,-32],[-55,-12],[-31,6],[6,-36],[-6,-44],[5,-30],[-16,-20],[-29,-8],[-26,21],[-11,-15],[4,-59],[18,-18],[16,19],[8,-31],[-26,-18],[-22,-37],[-4,-59],[-7,-32],[-26,0],[-22,-31],[-8,-44],[28,-43],[26,-12],[-9,-53],[-33,-33],[-18,-70],[-25,-23],[-12,-28],[9,-61],[19,-34],[-12,3]],[[3095,1968],[-26,9],[-67,8],[-11,34],[0,45],[-18,-4],[-10,21],[-3,63],[22,26],[9,37],[-4,30],[15,51],[10,78],[-3,35],[12,11],[-3,22],[-13,12],[10,25],[-13,22],[-6,68],[11,12],[-5,72],[7,61],[7,52],[17,22],[-9,58],[0,54],[21,38],[-1,50],[16,57],[0,55],[-7,11],[-13,102],[17,60],[-2,58],[10,53],[18,56],[20,36],[-9,24],[6,19],[-1,98],[30,29],[10,62],[-3,14]],[[3136,3714],[23,54],[36,-15],[16,-42],[11,47],[32,-2],[4,-13]],[[6210,7485],[39,9]],[[6249,7494],[5,-15],[11,-10],[-6,-15],[15,-21],[-8,-18],[12,-16],[13,-10],[0,-41]],[[6291,7348],[-10,-2]],[[6281,7346],[-11,34],[0,10],[-12,-1],[-9,16],[-5,-1]],[[6244,7404],[-11,17],[-21,15],[3,28],[-5,21]],[[3345,329],[-8,-30],[-8,-27],[-59,8],[-62,-3],[-34,20],[0,2],[-16,17],[63,-2],[60,-6],[20,24],[15,21],[29,-24]],[[577,361],[-53,-8],[-36,21],[-17,21],[-1,3],[-18,16],[17,22],[52,-9],[28,-18],[21,-21],[7,-27]],[[3745,447],[35,-26],[12,-36],[3,-25],[1,-30],[-43,-19],[-45,-15],[-52,-14],[-59,-11],[-65,3],[-37,20],[5,24],[59,16],[24,20],[18,26],[12,22],[17,20],[18,25],[14,0],[41,12],[42,-12]],[[1633,715],[36,-9],[33,10],[-16,-20],[-26,-15],[-39,4],[-27,21],[6,20],[33,-11]],[[1512,716],[43,-23],[-17,3],[-36,5],[-38,17],[20,12],[28,-14]],[[2250,808],[31,-8],[30,7],[17,-34],[-22,5],[-34,-2],[-34,2],[-38,-4],[-28,12],[-15,24],[18,11],[35,-8],[40,-5]],[[3098,866],[4,-27],[-5,-23],[-8,-22],[-33,-8],[-31,-12],[-36,1],[14,24],[-33,-9],[-31,-8],[-21,18],[-2,24],[30,23],[20,7],[32,-2],[8,30],[1,22],[0,47],[16,28],[25,9],[15,-22],[6,-22],[12,-26],[10,-26],[7,-26]],[[3371,1268],[-11,-13],[-21,9],[-23,-6],[-19,-14],[-20,-15],[-14,-17],[-4,-23],[2,-22],[13,-20],[-19,-14],[-26,-4],[-15,-20],[-17,-19],[-17,-25],[-4,-22],[9,-24],[15,-19],[23,-14],[21,-18],[12,-23],[6,-22],[8,-24],[13,-19],[8,-22],[4,-55],[8,-22],[2,-23],[9,-23],[-4,-31],[-15,-24],[-17,-20],[-37,-8],[-12,-21],[-17,-20],[-42,-22],[-37,-9],[-35,-13],[-37,-13],[-22,-24],[-45,-2],[-49,2],[-44,-4],[-47,0],[9,-24],[42,-10],[31,-16],[18,-21],[-31,-19],[-48,6],[-40,-15],[-2,-24],[-1,-23],[33,-20],[6,-22],[35,-22],[59,-9],[50,-16],[40,-19],[50,-18],[70,-10],[68,-16],[47,-17],[52,-20],[27,-28],[13,-22],[34,21],[46,17],[48,19],[58,15],[49,16],[69,1],[68,-8],[56,-14],[18,26],[39,17],[70,1],[55,13],[52,13],[58,8],[62,10],[43,15],[-20,21],[-12,21],[0,22],[-54,-2],[-57,-10],[-54,0],[-8,22],[4,44],[12,13],[40,14],[47,14],[34,17],[33,18],[25,23],[38,10],[38,8],[19,5],[43,2],[41,8],[34,12],[34,14],[30,14],[39,18],[24,20],[26,17],[9,24],[-30,13],[10,25],[18,18],[29,12],[31,14],[28,18],[22,23],[13,28],[21,16],[33,-3],[13,-20],[34,-2],[1,22],[14,23],[30,-6],[7,-22],[33,-3],[36,10],[35,7],[31,-3],[12,-25],[31,20],[28,10],[31,9],[31,8],[29,14],[31,9],[24,13],[17,20],[20,-15],[29,8],[20,-27],[16,-21],[32,11],[12,24],[28,16],[37,-4],[11,-22],[22,22],[30,7],[33,3],[29,-2],[31,-7],[30,-3],[13,-20],[18,-17],[31,10],[32,3],[32,0],[31,1],[28,8],[29,7],[25,16],[26,11],[28,5],[21,17],[15,32],[16,20],[29,-10],[11,-21],[24,-13],[29,4],[19,-21],[21,-15],[28,14],[10,26],[25,10],[29,20],[27,8],[33,11],[22,13],[22,14],[22,13],[26,-7],[25,21],[18,16],[26,-1],[23,14],[6,21],[23,16],[23,11],[28,10],[25,4],[25,-3],[26,-6],[22,-16],[3,-26],[24,-19],[17,-17],[33,-7],[19,-16],[23,-16],[26,-3],[23,11],[24,24],[26,-12],[27,-7],[26,-7],[27,-5],[28,0],[23,-61],[-1,-15],[-4,-27],[-26,-15],[-22,-22],[4,-23],[31,1],[-4,-23],[-14,-22],[-13,-24],[21,-19],[32,-6],[32,11],[15,23],[10,22],[15,18],[17,18],[7,21],[15,29],[18,5],[31,3],[28,7],[28,9],[14,23],[8,22],[19,22],[27,15],[23,12],[16,19],[15,11],[21,9],[27,-6],[25,6],[28,7],[30,-4],[20,17],[14,39],[11,-16],[13,-28],[23,-12],[27,-4],[26,7],[29,-5],[26,-1],[17,6],[24,-4],[21,-12],[25,8],[30,0],[25,8],[29,-8],[19,19],[14,20],[19,16],[35,44],[18,-8],[21,-16],[18,-21],[36,-36],[27,-1],[25,0],[30,7],[30,8],[23,16],[19,18],[31,2],[21,13],[22,-12],[14,-18],[19,-19],[31,2],[19,-15],[33,-15],[35,-5],[29,4],[21,19],[19,18],[25,5],[25,-8],[29,-6],[26,9],[25,0],[24,-6],[26,-5],[25,10],[30,9],[28,3],[32,0],[25,5],[25,5],[8,29],[1,24],[17,-16],[5,-27],[10,-24],[11,-20],[23,-10],[32,4],[36,1],[25,3],[37,0],[26,1],[36,-2],[31,-5],[20,-18],[-5,-22],[18,-18],[30,-13],[31,-15],[35,-11],[38,-9],[28,-9],[32,-2],[18,20],[24,-16],[21,-19],[25,-13],[34,-6],[32,-7],[13,-23],[32,-14],[21,-21],[31,-9],[32,1],[30,-4],[33,1],[34,-4],[31,-8],[28,-14],[29,-12],[20,-17],[-3,-23],[-15,-21],[-13,-27],[-9,-21],[-14,-24],[-36,-9],[-16,-21],[-36,-13],[-13,-23],[-19,-22],[-20,-18],[-11,-25],[-7,-22],[-3,-26],[0,-22],[16,-23],[6,-22],[13,-21],[52,-8],[11,-26],[-50,-9],[-43,-13],[-52,-2],[-24,-34],[-5,-27],[-12,-22],[-14,-22],[37,-20],[14,-24],[24,-22],[33,-20],[39,-19],[42,-18],[64,-19],[14,-29],[80,-12],[5,-5],[21,-17],[77,15],[63,-19],[48,-14],[-9997,-1],[24,35],[50,-19],[3,2],[30,19],[4,0],[3,-1],[40,-25],[35,25],[7,3],[81,11],[27,-14],[13,-7],[41,-20],[79,-15],[63,-18],[107,-14],[80,16],[118,-11],[67,-19],[73,17],[78,17],[6,27],[-110,3],[-89,14],[-24,23],[-74,12],[5,27],[10,24],[10,22],[-5,25],[-46,16],[-22,21],[-43,18],[68,-3],[64,9],[40,-20],[50,18],[45,22],[23,19],[-10,25],[-36,16],[-41,17],[-57,4],[-50,8],[-54,6],[-18,22],[-36,18],[-21,21],[-9,67],[14,-6],[25,-18],[45,6],[44,8],[23,-26],[44,6],[37,13],[35,16],[32,20],[41,5],[-1,22],[-9,22],[8,21],[36,11],[16,-20],[42,12],[32,15],[40,1],[38,6],[37,13],[30,13],[34,13],[22,-4],[19,-4],[41,8],[37,-10],[38,1],[37,8],[37,-6],[41,-6],[39,3],[40,-2],[42,-1],[38,3],[28,17],[34,9],[35,-13],[33,11],[30,21],[18,-19],[9,-21],[18,-19],[29,17],[33,-22],[38,-7],[32,-16],[39,3],[36,11],[41,-3],[38,-8],[38,-10],[15,25],[-18,20],[-14,21],[-36,5],[-15,22],[-6,22],[-10,43],[21,-8],[36,-3],[36,3],[33,-9],[28,-17],[12,-21],[38,-4],[36,9],[38,11],[34,7],[28,-14],[37,5],[24,45],[23,-27],[32,-10],[34,6],[23,-23],[37,-3],[33,-7],[34,-12],[21,22],[11,20],[28,-23],[38,6],[28,-13],[19,-19],[37,5],[29,13],[29,15],[33,8],[39,7],[36,8],[27,13],[16,19],[7,25],[-3,24],[-9,24],[-10,23],[-9,23],[-7,21],[-1,23],[2,23],[13,22],[11,24],[5,23],[-6,26],[-3,23],[14,27],[15,17],[18,22],[19,19],[22,17],[11,25],[15,17],[18,15],[26,3],[18,19],[19,11],[23,7],[20,15],[16,19],[22,7],[16,-15],[-10,-20],[-29,-17]],[[6914,2185],[18,-19],[26,-7],[1,-11],[-7,-27],[-43,-4],[-1,31],[4,25],[2,12]],[[9038,2648],[27,-21],[15,8],[22,12],[16,-4],[2,-70],[-9,-21],[-3,-47],[-10,16],[-19,-41],[-6,3],[-17,2],[-17,50],[-4,39],[-16,52],[1,27],[18,-5]],[[8987,4244],[10,-46],[18,22],[9,-25],[13,-23],[-3,-26],[6,-51],[5,-29],[7,-7],[7,-51],[-3,-30],[9,-40],[31,-31],[19,-28],[19,-26],[-4,-14],[16,-37],[11,-64],[11,13],[11,-26],[7,9],[5,-63],[19,-36],[13,-22],[22,-48],[8,-48],[1,-33],[-2,-37],[13,-50],[-2,-52],[-5,-28],[-7,-52],[1,-34],[-6,-43],[-12,-53],[-21,-29],[-10,-46],[-9,-29],[-8,-51],[-11,-30],[-7,-44],[-4,-41],[2,-18],[-16,-21],[-31,-2],[-26,-24],[-13,-23],[-17,-26],[-23,27],[-17,10],[5,31],[-15,-11],[-25,-43],[-24,16],[-15,9],[-16,4],[-27,17],[-18,37],[-5,45],[-7,30],[-13,24],[-27,7],[9,28],[-7,44],[-13,-41],[-25,-11],[14,33],[5,34],[10,29],[-2,44],[-22,-50],[-18,-21],[-10,-47],[-22,25],[1,31],[-18,43],[-14,22],[5,14],[-36,35],[-19,2],[-27,29],[-50,-6],[-36,-21],[-31,-20],[-27,4],[-29,-30],[-24,-14],[-6,-31],[-10,-24],[-23,-1],[-18,-5],[-24,10],[-20,-6],[-19,-3],[-17,-31],[-8,2],[-14,-16],[-13,-19],[-21,2],[-18,0],[-30,38],[-15,11],[1,34],[14,8],[4,14],[-1,21],[4,41],[-3,35],[-15,60],[-4,33],[1,34],[-11,38],[-1,18],[-12,23],[-4,47],[-16,46],[-4,26],[13,-26],[-10,55],[14,-17],[8,-23],[0,30],[-14,47],[-3,18],[-6,18],[3,34],[6,15],[4,29],[-3,35],[11,42],[2,-45],[12,41],[22,20],[14,25],[21,22],[13,4],[7,-7],[22,22],[17,6],[4,13],[8,6],[15,-2],[29,18],[15,26],[7,31],[17,30],[1,24],[1,32],[19,50],[12,-51],[12,12],[-10,28],[9,29],[12,-13],[3,45],[15,29],[7,23],[14,10],[0,17],[13,-7],[0,15],[12,8],[14,8],[20,-27],[16,-35],[17,0],[18,-6],[-6,33],[13,47],[13,15],[-5,15],[12,34],[17,21],[14,-7],[24,11],[-1,30],[-20,19],[15,9],[18,-15],[15,-24],[23,-15],[8,6],[17,-18],[17,17],[10,-5],[7,11],[12,-29],[-7,-32],[-11,-24],[-9,-2],[3,-23],[-8,-30],[-10,-29],[2,-17],[22,-32],[21,-19],[15,-20],[20,-35],[8,0],[14,-15],[4,-19],[27,-20],[18,20],[6,32],[5,26],[4,33],[8,47],[-4,28],[2,17],[-3,34],[4,45],[5,12],[-4,20],[7,31],[5,32],[1,17],[10,22],[8,-29],[2,-37],[7,-7],[1,-25],[10,-30],[2,-33],[-1,-22]],[[5471,7900],[-2,-24],[-16,0],[6,-13],[-9,-38]],[[5450,7825],[-6,-10],[-24,-1],[-14,-13],[-23,4]],[[5383,7805],[-40,15],[-6,21],[-27,-10],[-4,-12],[-16,9]],[[5290,7828],[-15,1],[-12,11],[4,15],[-1,10]],[[5266,7865],[8,3],[14,-16],[4,16],[25,-3],[20,11],[13,-2],[9,-12],[2,10],[-4,38],[10,8],[10,27]],[[5377,7945],[21,-19],[15,24],[10,5],[22,-18],[13,3],[13,-12]],[[5471,7928],[-3,-7],[3,-21]],[[6281,7346],[-19,8],[-14,27],[-4,23]],[[6349,7527],[15,-31],[14,-42],[13,-2],[8,-16],[-23,-5],[-5,-46],[-4,-21],[-11,-13],[1,-30]],[[6357,7321],[-7,-3],[-17,31],[10,30],[-9,17],[-10,-4],[-33,-44]],[[6249,7494],[6,10],[21,-17],[15,-4],[4,7],[-14,32],[7,9]],[[6288,7531],[8,-2],[19,-36],[13,-4],[4,15],[17,23]],[[5814,4792],[-1,71],[-7,27]],[[5806,4890],[17,-5],[8,34],[15,-4]],[[5846,4915],[1,-23],[6,-14],[1,-19],[-7,-12],[-11,-31],[-10,-22],[-12,-2]],[[5092,8091],[20,-5],[26,12],[17,-25],[16,-14]],[[5171,8059],[-4,-40]],[[5167,8019],[-7,-2],[-3,-33]],[[5157,7984],[-24,26],[-14,-4],[-20,28],[-13,23],[-13,1],[-4,21]],[[5069,8079],[23,12]],[[5074,5427],[-23,-7]],[[5051,5420],[-7,41],[2,136],[-6,12],[-1,29],[-10,21],[-8,17],[3,31]],[[5024,5707],[10,7],[6,26],[13,5],[6,18]],[[5059,5763],[10,17],[10,0],[21,-34]],[[5100,5746],[-1,-19],[6,-35],[-6,-24],[3,-16],[-13,-37],[-9,-18],[-5,-37],[1,-38],[-2,-95]],[[4921,5627],[-19,15],[-13,-2],[-10,-15],[-12,13],[-5,19],[-13,13]],[[4849,5670],[-1,34],[7,26],[-1,20],[23,48],[4,41],[7,14],[14,-8],[11,12],[4,16],[22,26],[5,19],[26,24],[15,9],[7,-12],[18,0]],[[5010,5939],[-2,-28],[3,-27],[16,-39],[1,-28],[32,-14],[-1,-40]],[[5024,5707],[-24,1]],[[5e3,5708],[-13,5],[-9,-9],[-12,4],[-48,-3],[-1,-33],[4,-45]],[[7573,6360],[0,-43],[-10,9],[2,-47]],[[7565,6279],[-8,30],[-1,31],[-6,28],[-11,34],[-26,3],[3,-25],[-9,-32],[-12,12],[-4,-11],[-8,6],[-11,5]],[[7472,6360],[-4,49],[-10,45],[5,35],[-17,16],[6,22],[18,22],[-20,31],[9,40],[22,-26],[14,-3],[2,-41],[26,-8],[26,1],[16,-10],[-13,-50],[-12,-3],[-9,-34],[16,-31],[4,38],[8,0],[14,-93]],[[5629,7671],[8,-25],[11,5],[21,-9],[41,-4],[13,16],[33,13],[20,-21],[17,-6]],[[5793,7640],[-15,-25],[-10,-42],[9,-34]],[[5777,7539],[-24,8],[-28,-18]],[[5725,7529],[0,-30],[-26,-5],[-19,20],[-22,-16],[-21,2]],[[5637,7500],[-2,39],[-14,19]],[[5621,7558],[5,8],[-3,7],[4,19],[11,18],[-14,26],[-2,21],[7,14]],[[2846,6461],[-7,-3],[-7,34],[-10,17],[6,38],[8,-3],[10,-49],[0,-34]],[[2838,6628],[-30,-10],[-2,22],[13,5],[18,-2],[1,-15]],[[2861,6628],[-5,-42],[-5,8],[0,31],[-12,23],[0,7],[22,-27]],[[5527,7708],[10,0],[-7,-26],[14,-23],[-4,-28],[-7,-2]],[[5533,7629],[-5,-6],[-9,-13],[-4,-33]],[[5515,7577],[-25,23],[-10,24],[-11,13],[-12,22],[-6,19],[-14,27],[6,25],[10,-14],[6,12],[13,2],[24,-10],[19,1],[12,-13]],[[5652,8242],[27,0],[30,22],[6,34],[23,19],[-3,26]],[[5735,8343],[17,10],[30,23]],[[5782,8376],[29,-15],[4,-15],[15,7],[27,-14],[3,-27],[-6,-16],[17,-39],[12,-11],[-2,-11],[19,-10],[8,-16],[-11,-13],[-23,2],[-5,-5],[7,-20],[6,-37]],[[5882,8136],[-23,-4],[-9,-13],[-2,-30],[-11,6],[-25,-3],[-7,14],[-11,-10],[-10,8],[-22,1],[-31,15],[-28,4],[-22,-1],[-15,-16],[-13,-2]],[[5653,8105],[-1,26],[-8,27],[17,12],[0,24],[-8,22],[-1,26]],[[2524,6110],[-1,8],[4,3],[5,-7],[10,36],[5,0]],[[2547,6150],[0,-8],[5,-1],[0,-16],[-5,-25],[3,-9],[-3,-21],[2,-6],[-4,-30],[-5,-16],[-5,-1],[-6,-21]],[[2529,5996],[-8,0],[2,67],[1,47]],[[3136,3714],[-20,-8],[-11,82],[-15,66],[9,57],[-15,25],[-4,43],[-13,40]],[[3067,4019],[17,64],[-12,49],[7,20],[-5,22],[10,30],[1,50],[1,41],[6,20],[-24,96]],[[3068,4411],[21,-5],[14,1],[6,18],[25,24],[14,22],[37,10],[-3,-44],[3,-23],[-2,-40],[30,-53],[31,-9],[11,-23],[19,-11],[11,-17],[18,0],[16,-17],[1,-34],[6,-18],[0,-25],[-8,-1],[11,-69],[53,-2],[-4,-35],[3,-23],[15,-16],[6,-37],[-4,-47],[-8,-26],[3,-33],[-9,-12]],[[3384,3866],[-1,18],[-25,30],[-26,1],[-49,-17],[-13,-52],[-1,-32],[-11,-71]],[[3482,3537],[6,34],[3,35],[1,32],[-10,11],[-11,-9],[-10,2],[-4,23],[-2,54],[-5,18],[-19,16],[-11,-12],[-30,11],[2,81],[-8,33]],[[3068,4411],[-15,-11],[-13,7],[2,90],[-23,-35],[-24,2],[-11,31],[-18,4],[5,25],[-15,36],[-11,53],[7,11],[0,25],[17,17],[-3,32],[7,20],[2,28],[32,40],[22,11],[4,9],[25,-2]],[[3058,4804],[13,162],[0,25],[-4,34],[-12,22],[0,42],[15,10],[6,-6],[1,23],[-16,6],[-1,37],[54,-2],[10,21],[7,-19],[6,-35],[5,8]],[[3142,5132],[15,-32],[22,4],[5,18],[21,14],[11,10],[4,25],[19,17],[-1,12],[-24,5],[-3,37],[1,40],[-13,15],[5,6],[21,-8],[22,-15],[8,14],[20,9],[31,23],[10,22],[-3,17]],[[3313,5365],[14,2],[7,-13],[-4,-26],[9,-9],[7,-28],[-8,-20],[-4,-51],[7,-30],[2,-27],[17,-28],[14,-3],[3,12],[8,3],[13,10],[9,16],[15,-5],[7,2]],[[3429,5170],[15,-5],[3,12],[-5,12],[3,17],[11,-5],[13,6],[16,-13]],[[3485,5194],[12,-12],[9,16],[6,-3],[4,-16],[13,4],[11,22],[8,44],[17,54]],[[3565,5303],[9,3],[7,-33],[16,-103],[14,-10],[1,-41],[-21,-48],[9,-18],[49,-9],[1,-60],[21,39],[35,-21],[46,-36],[14,-35],[-5,-32],[33,18],[54,-32],[41,3],[41,-49],[36,-66],[21,-17],[24,-3],[10,-18],[9,-76],[5,-35],[-11,-98],[-14,-39],[-39,-82],[-18,-67],[-21,-51],[-7,-1],[-7,-43],[2,-111],[-8,-91],[-3,-39],[-9,-23],[-5,-79],[-28,-77],[-5,-61],[-22,-26],[-7,-35],[-30,0],[-44,-23],[-19,-26],[-31,-18],[-33,-47],[-23,-58],[-5,-44],[5,-33],[-5,-60],[-6,-28],[-20,-33],[-31,-104],[-24,-47],[-19,-27],[-13,-57],[-18,-33]],[[3517,3063],[-8,33],[13,28],[-16,40],[-22,33],[-29,38],[-10,-2],[-28,46],[-18,-7]],[[8172,5325],[11,22],[23,32]],[[8206,5379],[-1,-29],[-2,-37],[-13,1],[-6,-20],[-12,31]],[[7546,6698],[12,-19],[-2,-36],[-23,-2],[-23,4],[-18,-9],[-25,22],[-1,12]],[[7466,6670],[19,44],[15,15],[20,-14],[14,-1],[12,-16]],[[5817,3752],[-39,-43],[-25,-44],[-10,-40],[-8,-22],[-15,-4],[-5,-29],[-3,-18],[-17,-14],[-23,3],[-13,17],[-12,7],[-14,-14],[-6,-28],[-14,-18],[-13,-26],[-20,-6],[-6,20],[2,36],[-16,56],[-8,9]],[[5552,3594],[0,173],[27,2],[1,210],[21,2],[43,21],[10,-24],[18,23],[9,0],[15,13]],[[5696,4014],[5,-4]],[[5701,4010],[11,-48],[5,-10],[9,-34],[32,-65],[12,-7],[0,-20],[8,-38],[21,-9],[18,-27]],[[5424,5496],[23,4],[5,16],[5,-2],[7,-13],[34,23],[12,23],[15,20],[-3,21],[8,6],[27,-4],[26,27],[20,65],[14,24],[18,10]],[[5635,5716],[3,-26],[16,-36],[0,-25],[-5,-24],[2,-18],[10,-18]],[[5661,5569],[21,-25]],[[5682,5544],[15,-24],[0,-19],[19,-31],[12,-26],[7,-35],[20,-24],[5,-18]],[[5760,5367],[-9,-7],[-18,2],[-21,6],[-10,-5],[-5,-14],[-9,-2],[-10,12],[-31,-29],[-13,6],[-4,-5],[-8,-35],[-21,11],[-20,6],[-18,22],[-23,20],[-15,-19],[-10,-30],[-3,-41]],[[5512,5265],[-18,3],[-19,10],[-16,-32],[-15,-55]],[[5444,5191],[-3,18],[-1,27],[-13,19],[-10,30],[-2,21],[-13,31],[2,18],[-3,25],[2,45],[7,11],[14,60]],[[3231,7808],[20,-8],[26,1],[-14,-24],[-10,-4],[-35,25],[-7,20],[10,18],[10,-28]],[[3283,7958],[-14,-1],[-36,19],[-26,28],[10,5],[37,-15],[28,-25],[1,-11]],[[1569,7923],[-14,-8],[-46,27],[-8,21],[-25,21],[-5,16],[-28,11],[-11,32],[2,14],[30,-13],[17,-9],[26,-6],[9,-21],[14,-28],[28,-24],[11,-33]],[[3440,8052],[-18,-52],[18,20],[19,-12],[-10,-21],[25,-16],[12,14],[28,-18],[-8,-43],[19,10],[4,-32],[8,-36],[-11,-52],[-13,-2],[-18,11],[6,48],[-8,8],[-32,-52],[-17,2],[20,28],[-27,14],[-30,-3],[-54,2],[-4,17],[17,21],[-12,16],[24,36],[28,94],[18,33],[24,21],[13,-3],[-6,-16],[-15,-37]],[[1313,8250],[27,5],[-8,-67],[24,-48],[-11,0],[-17,27],[-10,27],[-14,19],[-5,26],[1,19],[13,-8]],[[2798,8730],[-11,-31],[-12,5],[-8,17],[2,4],[10,18],[12,-1],[7,-12]],[[2725,8762],[-33,-32],[-19,1],[-6,16],[20,27],[38,0],[0,-12]],[[2634,8936],[5,-26],[15,9],[16,-15],[30,-20],[32,-19],[2,-28],[21,5],[20,-20],[-25,-18],[-43,14],[-16,26],[-27,-31],[-40,-31],[-9,35],[-38,-6],[24,30],[4,46],[9,54],[20,-5]],[[2892,9024],[-31,-3],[-7,29],[12,34],[26,8],[21,-17],[1,-25],[-4,-8],[-18,-18]],[[2343,9140],[-17,-21],[-38,18],[-22,-6],[-38,26],[24,19],[19,25],[30,-16],[17,-11],[8,-11],[17,-23]],[[3135,7724],[-18,33],[0,81],[-13,17],[-18,-10],[-10,16],[-21,-45],[-8,-46],[-10,-27],[-12,-9],[-9,-3],[-3,-15],[-51,0],[-42,0],[-12,-11],[-30,-42],[-3,-5],[-9,-23],[-26,0],[-27,0],[-12,-10],[4,-11],[2,-18],[0,-6],[-36,-30],[-29,-9],[-32,-31],[-7,0],[-10,9],[-3,8],[1,6],[6,21],[13,33],[8,35],[-5,51],[-6,53],[-29,28],[3,11],[-4,7],[-8,0],[-5,9],[-2,14],[-5,-6],[-7,2],[1,6],[-6,6],[-3,15],[-21,19],[-23,20],[-27,23],[-26,21],[-25,-17],[-9,0],[-34,15],[-23,-8],[-27,19],[-28,9],[-19,4],[-9,10],[-5,32],[-9,0],[-1,-23],[-57,0],[-95,0],[-94,0],[-84,0],[-83,0],[-82,0],[-85,0],[-27,0],[-82,0],[-79,0]],[[1588,7952],[-4,0],[-54,58],[-20,26],[-50,24],[-15,53],[3,36],[-35,25],[-5,48],[-34,43],[0,30]],[[1374,8295],[15,29],[0,37],[-48,37],[-28,68],[-17,42],[-26,27],[-19,24],[-14,31],[-28,-20],[-27,-33],[-25,39],[-19,26],[-27,16],[-28,2],[0,337],[1,219]],[[1084,9176],[51,-14],[44,-29],[29,-5],[24,24],[34,19],[41,-7],[42,26],[45,14],[20,-24],[20,14],[6,27],[20,-6],[47,-53],[37,40],[3,-45],[34,10],[11,17],[34,-3],[42,-25],[65,-22],[38,-10],[28,4],[37,-30],[-39,-29],[50,-13],[75,7],[24,11],[29,-36],[31,30],[-29,25],[18,20],[34,3],[22,6],[23,-14],[28,-32],[31,5],[49,-27],[43,9],[40,-1],[-3,37],[25,10],[43,-20],[0,-56],[17,47],[23,-1],[12,59],[-30,36],[-32,24],[2,65],[33,43],[37,-9],[28,-26],[38,-67],[-25,-29],[52,-12],[-1,-60],[38,46],[33,-38],[-9,-44],[27,-40],[29,43],[21,51],[1,65],[40,-5],[41,-8],[37,-30],[2,-29],[-21,-31],[20,-32],[-4,-29],[-54,-41],[-39,-9],[-29,18],[-8,-30],[-27,-50],[-8,-26],[-32,-40],[-40,-4],[-22,-25],[-2,-38],[-32,-7],[-34,-48],[-30,-67],[-11,-46],[-1,-69],[40,-10],[13,-55],[13,-45],[39,12],[51,-26],[28,-22],[20,-28],[35,-17],[29,-24],[46,-4],[30,-6],[-4,-51],[8,-59],[21,-66],[41,-56],[21,19],[15,61],[-14,93],[-20,31],[45,28],[31,41],[16,41],[-3,40],[-19,50],[-33,44],[32,62],[-12,54],[-9,92],[19,14],[48,-16],[29,-6],[23,15],[25,-20],[35,-34],[8,-23],[50,-4],[-1,-50],[9,-74],[25,-10],[21,-35],[40,33],[26,65],[19,28],[21,-53],[36,-75],[31,-71],[-11,-37],[37,-33],[25,-34],[44,-15],[18,-19],[11,-50],[22,-8],[11,-22],[2,-67],[-20,-22],[-20,-21],[-46,-21],[-35,-48],[-47,-10],[-59,13],[-42,0],[-29,-4],[-23,-43],[-35,-26],[-40,-78],[-32,-54],[23,9],[45,78],[58,49],[42,6],[24,-29],[-26,-40],[9,-63],[9,-45],[36,-29],[46,8],[28,67],[2,-43],[17,-22],[-34,-38],[-61,-36],[-28,-23],[-31,-43],[-21,4],[-1,50],[48,49],[-44,-2],[-31,-7]],[[1829,9377],[-14,-27],[61,17],[39,-29],[31,30],[26,-20],[23,-58],[14,25],[-20,60],[24,9],[28,-9],[31,-24],[17,-58],[9,-41],[47,-30],[50,-28],[-3,-26],[-46,-4],[18,-23],[-9,-22],[-51,9],[-48,16],[-32,-3],[-52,-20],[-70,-9],[-50,-6],[-15,28],[-38,16],[-24,-6],[-35,47],[19,6],[43,10],[39,-3],[36,11],[-54,13],[-59,-4],[-39,1],[-15,22],[64,23],[-42,-1],[-49,16],[23,44],[20,24],[74,36],[29,-12]],[[2097,9395],[-24,-39],[-44,41],[10,9],[37,2],[21,-13]],[[2879,9376],[3,-16],[-30,2],[-30,1],[-30,-8],[-8,3],[-31,32],[1,21],[14,4],[63,-6],[48,-33]],[[2595,9379],[22,-36],[26,47],[70,24],[48,-61],[-4,-38],[55,17],[26,23],[62,-30],[38,-28],[3,-25],[52,13],[29,-38],[67,-23],[24,-24],[26,-55],[-51,-28],[66,-38],[44,-13],[40,-55],[44,-3],[-9,-42],[-49,-69],[-34,26],[-44,57],[-36,-8],[-3,-34],[29,-34],[38,-27],[11,-16],[18,-58],[-9,-43],[-35,16],[-70,47],[39,-51],[29,-35],[5,-21],[-76,24],[-59,34],[-34,29],[10,17],[-42,30],[-40,29],[0,-18],[-80,-9],[-23,20],[18,44],[52,1],[57,7],[-9,21],[10,30],[36,57],[-8,27],[-11,20],[-42,29],[-57,20],[18,15],[-29,36],[-25,4],[-22,20],[-14,-18],[-51,-7],[-101,13],[-59,17],[-45,9],[-23,21],[29,27],[-39,0],[-9,60],[21,53],[29,24],[72,16],[-21,-39]],[[2212,9420],[33,-12],[50,7],[7,-17],[-26,-28],[42,-26],[-5,-53],[-45,-23],[-27,5],[-19,23],[-69,45],[0,19],[57,-7],[-31,38],[33,29]],[[2411,9357],[-30,-45],[-32,3],[-17,52],[1,29],[14,25],[28,16],[58,-2],[53,-14],[-42,-53],[-33,-11]],[[1654,9275],[-73,-29],[-15,26],[-64,31],[12,25],[19,43],[24,39],[-27,36],[94,10],[39,-13],[71,-3],[27,-17],[30,-25],[-35,-15],[-68,-41],[-34,-42],[0,-25]],[[2399,9487],[-15,-23],[-40,5],[-34,15],[15,27],[40,16],[24,-21],[10,-19]],[[2264,9590],[21,-27],[1,-31],[-13,-44],[-46,-6],[-30,10],[1,34],[-45,-4],[-2,45],[30,-2],[41,21],[40,-4],[2,8]],[[1994,9559],[11,-21],[25,10],[29,-2],[5,-29],[-17,-28],[-94,-10],[-70,-25],[-43,-2],[-3,20],[57,26],[-125,-7],[-39,10],[38,58],[26,17],[78,-20],[50,-35],[48,-5],[-40,57],[26,21],[29,-7],[9,-28]],[[2370,9612],[30,-19],[55,0],[24,-19],[-6,-22],[32,-14],[17,-14],[38,-2],[40,-5],[44,13],[57,5],[45,-5],[30,-22],[6,-24],[-17,-16],[-42,-13],[-35,8],[-80,-10],[-57,-1],[-45,8],[-74,19],[-9,32],[-4,29],[-27,26],[-58,7],[-32,19],[10,24],[58,-4]],[[1772,9645],[-4,-46],[-21,-20],[-26,-3],[-52,-26],[-44,-9],[-38,13],[47,44],[57,39],[43,-1],[38,9]],[[2393,9637],[-13,-2],[-52,4],[-7,17],[56,-1],[19,-11],[-3,-7]],[[1939,9648],[-52,-17],[-41,19],[23,19],[40,6],[39,-10],[-9,-17]],[[1954,9701],[-34,-11],[-46,0],[0,8],[29,18],[14,-3],[37,-12]],[[2338,9669],[-41,-12],[-23,13],[-12,23],[-2,24],[36,-2],[16,-4],[33,-21],[-7,-21]],[[2220,9685],[11,-25],[-45,7],[-46,19],[-62,2],[27,18],[-34,14],[-2,22],[55,-8],[75,-21],[21,-28]],[[2583,9764],[33,-20],[-38,-17],[-51,-45],[-50,-4],[-57,8],[-30,24],[0,21],[22,16],[-50,0],[-31,19],[-18,27],[20,26],[19,18],[28,4],[-12,14],[65,3],[35,-32],[47,-12],[46,-11],[22,-39]],[[3097,9967],[74,-4],[60,-8],[51,-16],[-2,-16],[-67,-25],[-68,-12],[-25,-14],[61,1],[-66,-36],[-45,-17],[-48,-48],[-57,-10],[-18,-12],[-84,-6],[39,-8],[-20,-10],[23,-29],[-26,-21],[-43,-16],[-13,-24],[-39,-17],[4,-14],[48,3],[0,-15],[-74,-35],[-73,16],[-81,-9],[-42,7],[-52,3],[-4,29],[52,13],[-14,43],[17,4],[74,-26],[-38,38],[-45,11],[23,23],[49,14],[8,21],[-39,23],[-12,31],[76,-3],[22,-6],[43,21],[-62,7],[-98,-4],[-49,20],[-23,24],[-32,17],[-6,21],[41,11],[32,2],[55,9],[41,22],[34,-3],[30,-16],[21,32],[37,9],[50,7],[85,2],[14,-6],[81,10],[60,-4],[60,-4]],[[5290,7828],[-3,-24],[-12,-10],[-20,7],[-6,-24],[-14,-2],[-5,10],[-15,-20],[-13,-3],[-12,13]],[[5190,7775],[-10,25],[-13,-9],[0,27],[21,33],[-1,15],[12,-5],[8,10]],[[5207,7871],[24,-1],[5,13],[30,-18]],[[3140,1814],[-10,-24],[-23,-18],[-14,2],[-16,5],[-21,18],[-29,8],[-35,33],[-28,32],[-38,66],[23,-12],[39,-40],[36,-21],[15,27],[9,41],[25,24],[20,-7]],[[3095,1968],[-25,0],[-13,-14],[-25,-22],[-5,-55],[-11,-1],[-32,19],[-32,41],[-34,34],[-9,37],[8,35],[-14,39],[-4,101],[12,57],[30,45],[-43,18],[27,52],[9,98],[31,-21],[15,123],[-19,15],[-9,-73],[-17,8],[9,84],[9,110],[13,40],[-8,58],[-2,66],[11,2],[17,96],[20,94],[11,88],[-6,89],[8,49],[-3,72],[16,73],[5,114],[9,123],[9,132],[-2,96],[-6,84]],[[3045,3974],[14,15],[8,30]],[[8064,6161],[-24,-28],[-23,18],[0,51],[13,26],[31,17],[16,-1],[6,-23],[-12,-26],[-7,-34]],[[8628,7562],[-18,35],[-11,-33],[-43,-26],[4,-31],[-24,2],[-13,19],[-19,-42],[-30,-32],[-23,-38]],[[8451,7416],[-39,-17],[-20,-27],[-30,-17],[15,28],[-6,23],[22,40],[-15,30],[-24,-20],[-32,-41],[-17,-39],[-27,-2],[-14,-28],[15,-40],[22,-10],[1,-26],[22,-17],[31,42],[25,-23],[18,-2],[4,-31],[-39,-16],[-13,-32],[-27,-30],[-14,-41],[30,-33],[11,-58],[17,-54],[18,-45],[0,-44],[-17,-16],[6,-32],[17,-18],[-5,-48],[-7,-47],[-15,-5],[-21,-64],[-22,-78],[-26,-70],[-38,-55],[-39,-50],[-31,-6],[-17,-27],[-10,20],[-15,-30],[-39,-29],[-29,-9],[-10,-63],[-15,-3],[-8,43],[7,22],[-37,19],[-13,-9]],[[8001,6331],[-28,15],[-14,24],[5,34],[-26,11],[-13,22],[-24,-31],[-27,-7],[-22,0],[-15,-14]],[[7837,6385],[-14,-9],[4,-68],[-15,2],[-2,14]],[[7810,6324],[-1,24],[-20,-17],[-12,11],[-21,22],[8,49],[-18,12],[-6,54],[-30,-10],[4,70],[26,50],[1,48],[-1,46],[-12,14],[-9,35],[-16,-5]],[[7703,6727],[-30,9],[9,25],[-13,36],[-20,-24],[-23,14],[-32,-37],[-25,-44],[-23,-8]],[[7466,6670],[-2,47],[-17,-13]],[[7447,6704],[-32,6],[-32,14],[-22,26],[-22,11],[-9,29],[-16,8],[-28,39],[-22,18],[-12,-14]],[[7252,6841],[-38,41],[-28,37],[-7,65],[20,-7],[1,30],[-12,30],[3,48],[-30,69]],[[7161,7154],[-45,24],[-8,46],[-21,27]],[[7082,7268],[-4,34],[1,23],[-17,13],[-9,-6],[-7,55]],[[7046,7387],[8,13],[-4,14],[26,28],[20,12],[29,-8],[11,38],[35,7],[10,23],[44,32],[4,13]],[[7229,7559],[-2,34],[19,15],[-25,103],[55,24],[14,13],[20,106],[55,-20],[15,27],[2,59],[23,6],[21,39]],[[7426,7965],[11,5]],[[7437,7970],[7,-41],[23,-32],[40,-22],[19,-47],[-10,-70],[10,-25],[33,-10],[37,-8],[33,-37],[18,-7],[12,-54],[17,-35],[30,1],[58,-13],[36,8],[28,-9],[41,-36],[34,0],[12,-18],[32,32],[45,20],[42,2],[32,21],[20,32],[20,20],[-5,19],[-9,23],[15,38],[15,-5],[29,-12],[28,31],[42,23],[20,39],[20,17],[40,8],[22,-7],[3,21],[-25,41],[-22,19],[-22,-22],[-27,10],[-16,-8],[-7,24],[20,59],[13,45]],[[8240,8005],[34,-23],[39,38],[-1,26],[26,62],[15,19],[0,33],[-16,14],[23,29],[35,11],[37,2],[41,-18],[25,-22],[17,-59],[10,-26],[10,-36],[10,-58],[49,-19],[32,-42],[12,-55],[42,0],[24,23],[46,17],[-15,-53],[-11,-21],[-9,-65],[-19,-58],[-33,11],[-24,-21],[7,-51],[-4,-69],[-14,-2],[0,-30]],[[4920,5353],[-12,-1],[-20,12],[-18,-1],[-33,-10],[-19,-18],[-27,-21],[-6,1]],[[4785,5315],[2,49],[3,7],[-1,24],[-12,24],[-8,4],[-8,17],[6,26],[-3,28],[1,18]],[[4765,5512],[5,0],[1,25],[-2,12],[3,8],[10,7],[-7,47],[-6,25],[2,20],[5,4]],[[4776,5660],[4,6],[8,-9],[21,-1],[5,18],[5,-1],[8,6],[4,-25],[7,7],[11,9]],[[4921,5627],[7,-84],[-11,-50],[-8,-66],[12,-51],[-1,-23]],[[5363,5191],[-4,4],[-16,-8],[-17,8],[-13,-4]],[[5313,5191],[-45,1]],[[5268,5192],[4,47],[-11,39],[-13,10],[-6,27],[-7,8],[1,16]],[[5236,5339],[7,42],[13,57],[8,1],[17,34],[10,1],[16,-24],[19,20],[2,25],[7,23],[4,30],[15,25],[5,41],[6,13],[4,31],[7,37],[24,46],[1,20],[3,10],[-11,24]],[[5393,5795],[1,19],[8,3]],[[5402,5817],[11,-38],[2,-39],[-1,-39],[15,-54],[-15,1],[-8,-4],[-13,6],[-6,-28],[16,-35],[13,-10],[3,-24],[9,-41],[-4,-16]],[[5444,5191],[-2,-31],[-22,14],[-22,15],[-35,2]],[[5856,5265],[-2,-69],[11,-8],[-9,-21],[-10,-16],[-11,-31],[-6,-27],[-1,-48],[-7,-22],[0,-45]],[[5821,4978],[-8,-16],[-1,-35],[-4,-5],[-2,-32]],[[5814,4792],[5,-55],[-2,-30],[5,-35],[16,-33],[15,-74]],[[5853,4565],[-11,6],[-37,-10],[-7,-7],[-8,-38],[6,-26],[-5,-70],[-3,-59],[7,-11],[19,-23],[8,11],[2,-64],[-21,1],[-11,32],[-10,25],[-22,9],[-6,31],[-17,-19],[-22,8],[-10,27],[-17,6],[-13,-2],[-2,19],[-9,1]],[[5342,4697],[-4,18]],[[5360,4775],[8,-6],[9,23],[15,-1],[2,-17],[11,-10],[16,37],[16,29],[7,19],[-1,48],[12,58],[13,30],[18,29],[3,18],[1,22],[5,21],[-2,33],[4,52],[5,37],[8,32],[2,36]],[[5760,5367],[17,-49],[12,-7],[8,10],[12,-4],[16,12],[6,-25],[25,-39]],[[5330,4760],[-22,62]],[[5308,4822],[21,33],[-11,39],[10,15],[19,7],[2,26],[15,-28],[24,-2],[9,27],[3,40],[-3,46],[-13,35],[12,68],[-7,12],[-21,-5],[-7,31],[2,25]],[[2906,5049],[-12,14],[-14,19],[-7,-9],[-24,8],[-7,25],[-5,-1],[-28,34]],[[2809,5139],[-3,18],[10,5],[-1,29],[6,22],[14,4],[12,37],[10,31],[-10,14],[5,34],[-6,54],[6,16],[-4,50],[-12,31]],[[2836,5484],[4,29],[9,-4],[5,17],[-6,35],[3,9]],[[2851,5570],[14,-2],[21,41],[12,6],[0,20],[5,50],[16,27],[17,1],[3,13],[21,-5],[22,30],[11,13],[14,28],[9,-3],[8,-16],[-6,-20]],[[3018,5753],[-18,-10],[-7,-29],[-10,-17],[-8,-22],[-4,-42],[-8,-35],[15,-4],[3,-27],[6,-13],[3,-24],[-4,-22],[1,-12],[7,-5],[7,-20],[36,5],[16,-7],[19,-51],[11,6],[20,-3],[16,7],[10,-10],[-5,-32],[-6,-20],[-2,-42],[5,-40],[8,-17],[1,-13],[-14,-30],[10,-13],[8,-21],[8,-58]],[[3058,4804],[-14,31],[-8,1],[18,61],[-21,27],[-17,-5],[-10,10],[-15,-15],[-21,7],[-16,62],[-13,15],[-9,28],[-19,28],[-7,-5]],[[2695,5543],[-15,14],[-6,12],[4,10],[-1,13],[-8,14],[-11,12],[-10,8],[-1,17],[-8,10],[2,-17],[-5,-14],[-7,17],[-9,5],[-4,12],[1,18],[3,19],[-8,8],[7,12]],[[2619,5713],[4,7],[18,-15],[7,7],[9,-5],[4,-12],[8,-4],[7,13]],[[2676,5704],[7,-32],[11,-24],[13,-25]],[[2707,5623],[-11,-6],[0,-23],[6,-9],[-4,-7],[1,-11],[-2,-12],[-2,-12]],[[2715,6427],[23,-4],[22,0],[26,-21],[11,-21],[26,6],[10,-13],[24,-37],[17,-27],[9,1],[17,-12],[-2,-17],[20,-2],[21,-24],[-3,-14],[-19,-7],[-18,-3],[-19,4],[-40,-5],[18,32],[-11,16],[-18,4],[-9,17],[-7,33],[-16,-2],[-26,16],[-8,12],[-36,10],[-10,11],[11,15],[-28,3],[-20,-31],[-11,-1],[-4,-14],[-14,-7],[-12,6],[15,18],[6,22],[13,13],[14,11],[21,6],[7,6]],[[5909,7133],[2,1],[4,14],[20,-1],[25,18],[-19,-25],[2,-11]],[[5943,7129],[-3,2],[-5,-5],[-4,1],[-2,-2],[0,6],[-2,4],[-6,0],[-7,-5],[-5,3]],[[5943,7129],[1,-5],[-28,-24],[-14,8],[-7,23],[14,2]],[[5377,7945],[-16,25],[-14,15],[-3,25],[-5,17],[21,13],[10,15],[20,11],[7,11],[7,-6],[13,6]],[[5417,8077],[13,-19],[21,-5],[-2,-17],[15,-12],[4,15],[19,-6],[3,-19],[20,-3],[13,-29]],[[5523,7982],[-8,0],[-4,-11],[-7,-3],[-2,-13],[-5,-3],[-1,-5],[-9,-7],[-12,1],[-4,-13]],[[5275,8306],[1,-23],[28,-14],[-1,-21],[29,11],[15,16],[32,-23],[13,-19]],[[5392,8233],[6,-30],[-8,-16],[11,-21],[6,-31],[-2,-21],[12,-37]],[[5207,7871],[3,42],[14,40],[-40,11],[-13,16]],[[5171,7980],[2,26],[-6,13]],[[5171,8059],[-5,62],[17,0],[7,22],[6,54],[-5,20]],[[5191,8217],[6,13],[23,3],[5,-13],[19,29],[-6,22],[-2,34]],[[5236,8305],[21,-8],[18,9]],[[6196,5808],[7,-19],[-1,-24],[-16,-14],[12,-16]],[[6198,5735],[-10,-32]],[[6188,5703],[-7,11],[-6,-5],[-16,1],[0,18],[-2,17],[9,27],[10,26]],[[6176,5798],[12,-5],[8,15]],[[5352,8343],[-17,-48],[-29,33],[-4,25],[41,19],[9,-29]],[[5236,8305],[-11,32],[-1,61],[5,16],[8,17],[24,4],[10,16],[22,17],[-1,-30],[-8,-20],[4,-16],[15,-9],[-7,-22],[-8,6],[-20,-42],[7,-29]],[[3008,6222],[3,10],[22,0],[16,-15],[8,1],[5,-21],[15,1],[-1,-17],[12,-2],[14,-22],[-10,-24],[-14,13],[-12,-3],[-9,3],[-5,-11],[-11,-3],[-4,14],[-10,-8],[-11,-41],[-7,10],[-1,17]],[[3008,6124],[0,16],[-7,17],[7,10],[2,23],[-2,32]],[[5333,6444],[-95,-112],[-81,-117],[-39,-26]],[[5118,6189],[-31,-6],[0,38],[-13,10],[-17,16],[-7,28],[-94,129],[-93,129]],[[4863,6533],[-105,143]],[[4758,6676],[1,11],[0,4]],[[4759,6691],[0,70],[44,44],[28,9],[23,16],[11,29],[32,24],[1,44],[16,5],[13,22],[36,9],[5,23],[-7,13],[-10,62],[-1,36],[-11,38]],[[4939,7135],[27,32],[30,11],[17,24],[27,18],[47,11],[46,4],[14,-8],[26,23],[30,0],[11,-13],[19,3]],[[5233,7240],[-5,-30],[4,-56],[-6,-49],[-18,-33],[3,-45],[23,-35],[0,-14],[17,-24],[12,-106]],[[5263,6848],[9,-52],[1,-28],[-5,-48],[2,-27],[-3,-32],[2,-37],[-11,-25],[17,-43],[1,-25],[10,-33],[13,11],[22,-28],[12,-37]],[[2769,4856],[15,45],[-6,25],[-11,-27],[-16,26],[5,16],[-4,54],[9,9],[5,37],[11,38],[-2,24],[15,13],[19,23]],[[2906,5049],[4,-45],[-9,-39],[-30,-62],[-33,-23],[-17,-51],[-6,-40],[-15,-24],[-12,29],[-11,7],[-12,-5],[-1,22],[8,14],[-3,24]],[[5969,6800],[-7,-23],[-6,-45],[-8,-31],[-6,-10],[-10,19],[-12,26],[-20,85],[-3,-5],[12,-63],[17,-59],[21,-92],[10,-32],[9,-34],[25,-65],[-6,-10],[1,-39],[33,-53],[4,-12]],[[6023,6357],[-110,0],[-107,0],[-112,0]],[[5694,6357],[0,218],[0,210],[-8,47],[7,37],[-5,25],[10,29]],[[5698,6923],[37,0],[27,-15],[28,-18],[13,-9],[21,19],[11,17],[25,5],[20,-8],[7,-29],[7,19],[22,-14],[22,-3],[13,15]],[[5951,6902],[18,-102]],[[6176,5798],[-10,20],[-11,34],[-12,19],[-8,21],[-24,23],[-19,1],[-7,12],[-16,-14],[-17,27],[-8,-44],[-33,13]],[[6011,5910],[-3,23],[12,87],[3,39],[9,18],[20,10],[14,34]],[[6066,6121],[16,-69],[8,-54],[15,-29],[38,-55],[16,-34],[15,-34],[8,-20],[14,-18]],[[4749,7532],[1,42],[-11,25],[39,43],[34,-11],[37,1],[30,-10],[23,3],[45,-2]],[[4947,7623],[11,-23],[51,-27],[10,13],[31,-27],[32,8]],[[5082,7567],[2,-35],[-26,-39],[-36,-12],[-2,-20],[-18,-33],[-10,-48],[11,-34],[-16,-26],[-6,-39],[-21,-11],[-20,-46],[-35,-1],[-27,1],[-17,-21],[-11,-22],[-13,5],[-11,20],[-8,34],[-26,9]],[[4792,7249],[-2,20],[10,22],[4,16],[-9,17],[7,39],[-11,36],[12,5],[1,27],[5,9],[0,46],[13,16],[-8,30],[-16,2],[-5,-8],[-16,0],[-7,29],[-11,-8],[-10,-15]],[[5675,8472],[3,35],[-10,-8],[-18,21],[-2,34],[35,17],[35,8],[30,-10],[29,2]],[[5777,8571],[4,-10],[-20,-34],[8,-55],[-12,-19]],[[5757,8453],[-22,0],[-24,22],[-13,7],[-23,-10]],[[6188,5703],[-6,-21],[10,-32],[10,-29],[11,-21],[90,-70],[24,0]],[[6327,5530],[-79,-177],[-36,-3],[-25,-41],[-17,-1],[-8,-19]],[[6162,5289],[-19,0],[-11,20],[-26,-25],[-8,-24],[-18,4],[-6,7],[-7,-1],[-9,0],[-35,50],[-19,0],[-10,20],[0,33],[-14,10]],[[5980,5383],[-17,64],[-12,14],[-5,23],[-14,29],[-17,4],[9,34],[15,2],[4,18]],[[5943,5571],[0,53]],[[5943,5624],[8,62],[13,16],[3,24],[12,45],[17,30],[11,58],[4,51]],[[5794,9138],[-4,-42],[42,-39],[-26,-45],[33,-67],[-19,-51],[25,-43],[-11,-39],[41,-40],[-11,-31],[-25,-34],[-60,-75]],[[5779,8632],[-50,-5],[-49,-21],[-45,-13],[-16,32],[-27,20],[6,58],[-14,53],[14,35],[25,37],[63,64],[19,12],[-3,25],[-39,28]],[[5663,8957],[-9,23],[-1,91],[-43,40],[-37,29]],[[5573,9140],[17,16],[30,-32],[37,3],[30,-14],[26,26],[14,44],[43,20],[35,-24],[-11,-41]],[[9954,4033],[9,-17],[-4,-31],[-17,-8],[-16,7],[-2,26],[10,21],[13,-8],[7,10]],[[0,4079],[9981,-14],[-17,-13],[-4,23],[14,12],[9,3],[-9983,18]],[[0,4108],[0,-29]],[[0,4108],[6,3],[-4,-28],[-2,-4]],[[3300,1994],[33,36],[24,-15],[16,24],[22,-27],[-8,-21],[-37,-17],[-13,20],[-23,-26],[-14,26]],[[5265,7548],[-9,-46],[-13,12],[-6,40],[5,22],[18,22],[5,-50]],[[5157,7984],[6,-6],[8,2]],[[5190,7775],[-2,-17],[9,-22],[-10,-18],[7,-46],[15,-8],[-3,-25]],[[5206,7639],[-25,-34],[-55,16],[-40,-19],[-4,-35]],[[4947,7623],[14,35],[5,118],[-28,62],[-21,30],[-42,23],[-3,43],[36,12],[47,-15],[-9,67],[26,-25],[65,46],[8,48],[24,12]],[[3485,5194],[7,25],[3,27]],[[3495,5246],[4,26],[-10,34]],[[3489,5306],[-3,41],[15,51]],[[3501,5398],[9,-7],[21,-14],[29,-50],[5,-24]],[[5308,4822],[-29,60],[-18,49],[-17,61],[1,19],[6,19],[7,43],[5,44]],[[5263,5117],[10,4],[40,-1],[0,71]],[[4827,8240],[-21,12],[-17,-1],[6,32],[-6,32]],[[4789,8315],[23,2],[30,-37],[-15,-40]],[[4916,8521],[-30,-63],[29,8],[30,-1],[-7,-48],[-25,-53],[29,-4],[2,-6],[25,-69],[19,-10],[17,-67],[8,-24],[33,-11],[-3,-38],[-14,-17],[11,-30],[-25,-31],[-37,0],[-48,-16],[-13,12],[-18,-28],[-26,7],[-19,-23],[-15,12],[41,62],[25,13],[-1,0],[-43,9],[-8,24],[29,18],[-15,32],[5,39],[42,-6],[4,35],[-19,36],[0,1],[-34,10],[-7,16],[10,27],[-9,16],[-15,-28],[-1,57],[-14,30],[10,61],[21,48],[23,-4],[33,4]],[[6154,7511],[4,26],[-7,40],[-16,22],[-16,6],[-10,19]],[[6109,7624],[4,6],[23,-10],[41,-9],[38,-28],[5,-11],[17,9],[25,-13],[9,-24],[17,-13]],[[6210,7485],[-27,29],[-29,-3]],[[5029,5408],[-44,-35],[-15,-20],[-25,-17],[-25,17]],[[5e3,5708],[-2,-18],[12,-30],[0,-43],[2,-47],[7,-21],[-6,-54],[2,-29],[8,-37],[6,-21]],[[4765,5512],[-8,1],[-5,-24],[-8,1],[-6,12],[2,24],[-11,36],[-8,-7],[-6,-1]],[[4715,5554],[-7,-3],[0,21],[-4,16],[0,17],[-6,25],[-7,21],[-23,0],[-6,-11],[-8,-1],[-4,-13],[-4,-17],[-14,-26]],[[4632,5583],[-13,35],[-10,24],[-8,7],[-6,12],[-4,26],[-4,13],[-8,10]],[[4579,5710],[13,29],[8,-2],[7,10],[6,0],[5,8],[-3,20],[3,6],[1,20]],[[4619,5801],[13,-1],[20,-14],[6,1],[3,7],[15,-5],[4,4]],[[4680,5793],[1,-22],[5,0],[7,8],[5,-2],[7,-15],[12,-5],[8,13],[9,8],[6,8],[6,-1],[6,-13],[3,-17],[12,-24],[-6,-16],[-1,-19],[6,6],[3,-7],[-1,-17],[8,-18]],[[4532,5834],[3,27]],[[4535,5861],[31,1],[6,14],[9,1],[11,-14],[8,-1],[9,10],[6,-17],[-12,-13],[-12,1],[-12,13],[-10,-14],[-5,-1],[-7,-8],[-25,1]],[[4579,5710],[-15,24],[-11,4],[-7,17],[1,9],[-9,13],[-2,12]],[[4536,5789],[15,10],[9,-2],[8,7],[51,-3]],[[5263,5117],[-5,9],[10,66]],[[5658,7167],[15,-20],[22,3],[20,-4],[0,-10],[15,7],[-4,-18],[-40,-5],[1,10],[-34,12],[5,25]],[[5723,7469],[-17,2],[-14,6],[-34,-16],[19,-33],[-14,-10],[-15,0],[-15,31],[-5,-13],[6,-36],[14,-27],[-10,-13],[15,-27],[14,-18],[0,-33],[-25,16],[8,-30],[-18,-7],[11,-52],[-19,-1],[-23,26],[-10,47],[-5,40],[-11,27],[-14,34],[-2,16]],[[5583,7470],[18,6],[11,13],[15,-2],[5,11],[5,2]],[[5725,7529],[13,-16],[-8,-37],[-7,-7]],[[3701,9939],[93,35],[97,-2],[36,21],[98,6],[222,-7],[174,-47],[-52,-23],[-106,-3],[-150,-5],[14,-11],[99,7],[83,-21],[54,18],[23,-21],[-30,-34],[71,22],[135,23],[83,-12],[15,-25],[-113,-42],[-16,-14],[-88,-10],[64,-3],[-32,-43],[-23,-38],[1,-66],[33,-38],[-43,-3],[-46,-19],[52,-31],[6,-50],[-30,-6],[36,-50],[-61,-5],[32,-24],[-9,-20],[-39,-10],[-39,0],[35,-40],[0,-26],[-55,24],[-14,-15],[37,-15],[37,-36],[10,-48],[-49,-11],[-22,22],[-34,34],[10,-40],[-33,-31],[73,-2],[39,-3],[-75,-52],[-75,-46],[-81,-21],[-31,0],[-29,-23],[-38,-62],[-60,-42],[-19,-2],[-37,-15],[-40,-13],[-24,-37],[0,-41],[-15,-39],[-45,-47],[11,-47],[-12,-48],[-14,-58],[-39,-4],[-41,49],[-56,0],[-27,32],[-18,58],[-49,73],[-14,39],[-3,53],[-39,54],[10,44],[-18,21],[27,69],[42,22],[11,25],[6,46],[-32,-21],[-15,-9],[-25,-8],[-34,19],[-2,40],[11,31],[25,1],[57,-15],[-48,37],[-24,20],[-28,-8],[-23,15],[31,55],[-17,22],[-22,41],[-34,62],[-35,23],[0,25],[-74,34],[-59,5],[-74,-3],[-68,-4],[-32,19],[-49,37],[73,19],[56,3],[-119,15],[-62,24],[3,23],[106,28],[101,29],[11,21],[-75,22],[24,23],[97,41],[40,7],[-12,26],[66,16],[86,9],[85,1],[30,-19],[74,33],[66,-22],[39,-5],[58,-19],[-66,32],[4,25]],[[2497,5869],[-14,10],[-17,1],[-13,12],[-15,24]],[[2438,5916],[1,18],[3,13],[-4,12],[13,48],[36,0],[1,20],[-5,4],[-3,12],[-10,14],[-11,20],[13,0],[0,33],[26,0],[26,0]],[[2529,5996],[10,-11],[2,9],[8,-7]],[[2549,5987],[-13,-23],[-13,-16],[-2,-12],[2,-11],[-5,-15]],[[2518,5910],[-7,-4],[2,-7],[-6,-6],[-9,-15],[-1,-9]],[[3340,5552],[18,-22],[17,-38],[1,-31],[10,-1],[15,-29],[11,-21]],[[3412,5410],[-4,-53],[-17,-15],[1,-14],[-5,-31],[13,-42],[9,-1],[3,-33],[17,-51]],[[3313,5365],[-19,45],[7,16],[0,27],[17,10],[7,11],[-10,22],[3,21],[22,35]],[[2574,5825],[-5,18],[-8,5]],[[2561,5848],[2,24],[-4,6],[-6,4],[-12,-7],[-1,8],[-8,10],[-6,12],[-8,5]],[[2549,5987],[3,-3],[6,11],[8,1],[3,-5],[4,3],[13,-6],[13,2],[9,6],[3,7],[9,-3],[6,-4],[8,1],[5,5],[13,-8],[4,-1],[9,-11],[8,-13],[10,-9],[7,-17]],[[2690,5943],[-9,2],[-4,-8],[-10,-8],[-7,0],[-6,-8],[-6,3],[-4,9],[-3,-2],[-4,-14],[-3,1],[0,-12],[-10,-17],[-5,-7],[-3,-7],[-8,12],[-6,-16],[-6,1],[-6,-2],[0,-29],[-4,0],[-3,-14],[-9,-2]],[[5522,7770],[7,-23],[9,-17],[-11,-22]],[[5515,7577],[-3,-10]],[[5512,7567],[-26,22],[-16,21],[-26,18],[-23,43],[6,5],[-13,25],[-1,19],[-17,10],[-9,-26],[-8,20],[0,21],[1,1]],[[5380,7746],[20,-2],[5,9],[9,-9],[11,-1],[0,16],[10,6],[2,24],[23,16]],[[5460,7805],[8,-7],[21,-26],[23,-11],[10,9]],[[3008,6124],[-19,10],[-13,-5],[-17,5],[-13,-11],[-15,18],[3,19],[25,-8],[21,-5],[10,13],[-12,26],[0,23],[-18,9],[7,16],[17,-3],[24,-9]],[[5471,7900],[14,-15],[10,-6],[24,7],[2,12],[11,2],[14,9],[3,-4],[13,8],[6,13],[9,4],[30,-18],[6,6]],[[5613,7918],[15,-16],[2,-16]],[[5630,7886],[-17,-12],[-13,-40],[-17,-40],[-22,-11]],[[5561,7783],[-17,2],[-22,-15]],[[5460,7805],[-6,20],[-4,0]],[[8352,4453],[-11,-2],[-37,42],[26,11],[14,-18],[10,-17],[-2,-16]],[[8471,4532],[2,-11],[1,-18]],[[8474,4503],[-18,-45],[-24,-13],[-3,8],[2,20],[12,36],[28,23]],[[8274,4579],[10,-16],[17,5],[7,-25],[-32,-12],[-19,-8],[-15,1],[10,34],[15,0],[7,21]],[[8413,4579],[-4,-32],[-42,-17],[-37,7],[0,22],[22,12],[18,-18],[18,5],[25,21]],[[8017,4657],[53,-6],[6,25],[51,-29],[10,-38],[42,-11],[34,-35],[-31,-23],[-31,24],[-25,-1],[-29,4],[-26,11],[-32,22],[-21,6],[-11,-7],[-51,24],[-5,25],[-25,5],[19,56],[34,-3],[22,-23],[12,-5],[4,-21]],[[8741,4690],[-14,-40],[-3,45],[5,21],[6,20],[7,-17],[-1,-29]],[[8534,4853],[-11,-19],[-19,10],[-5,26],[28,3],[7,-20]],[[8623,4875],[10,-45],[-23,24],[-23,5],[-16,-4],[-19,2],[6,33],[35,2],[30,-17]],[[8916,4904],[0,-193],[1,-192]],[[8917,4519],[-25,48],[-28,12],[-7,-17],[-35,-1],[12,48],[17,16],[-7,64],[-14,50],[-53,50],[-23,5],[-42,54],[-8,-28],[-11,-5],[-6,21],[0,26],[-21,29],[29,21],[20,-1],[-2,16],[-41,0],[-11,35],[-25,11],[-11,29],[37,14],[14,20],[45,-25],[4,-22],[8,-95],[29,-35],[23,62],[32,36],[25,0],[23,-21],[21,-21],[30,-11]],[[8478,5141],[-22,-58],[-21,-12],[-27,12],[-46,-3],[-24,-8],[-4,-45],[24,-53],[15,27],[52,20],[-2,-27],[-12,9],[-12,-35],[-25,-23],[27,-76],[-5,-20],[25,-68],[-1,-39],[-14,-17],[-11,20],[13,49],[-27,-23],[-7,16],[3,23],[-20,35],[3,57],[-19,-18],[2,-69],[1,-84],[-17,-9],[-12,18],[8,54],[-4,57],[-12,1],[-9,40],[12,39],[4,47],[14,89],[5,24],[24,44],[22,-18],[35,-8],[32,3],[27,43],[5,-14]],[[8574,5124],[-2,-51],[-14,6],[-4,-36],[11,-32],[-8,-7],[-11,38],[-8,75],[6,47],[9,22],[2,-32],[16,-5],[3,-25]],[[8045,5176],[5,-39],[19,-34],[18,12],[18,-4],[16,30],[13,5],[26,-17],[23,13],[14,82],[11,21],[10,67],[32,0],[24,-10]],[[8274,5302],[-16,-53],[20,-56],[-5,-28],[32,-54],[-33,-7],[-10,-40],[2,-54],[-27,-40],[-1,-59],[-10,-91],[-5,21],[-31,-26],[-11,36],[-20,3],[-14,19],[-33,-21],[-10,29],[-18,-4],[-23,7],[-4,79],[-14,17],[-13,50],[-4,52],[3,55],[16,39]],[[7939,4712],[-31,-1],[-24,49],[-35,48],[-12,36],[-21,48],[-14,44],[-21,83],[-24,49],[-9,51],[-10,46],[-25,37],[-14,51],[-21,33],[-29,65],[-3,30],[18,-2],[43,-12],[25,-57],[21,-40],[16,-25],[26,-63],[28,-1],[23,-41],[16,-49],[22,-27],[-12,-49],[16,-20],[10,-2],[5,-41],[10,-33],[20,-5],[14,-37],[-7,-74],[-1,-91]],[[7252,6841],[-17,-27],[-11,-55],[27,-23],[26,-29],[36,-33],[38,-8],[16,-30],[22,-5],[33,-14],[23,1],[4,23],[-4,38],[2,25]],[[7703,6727],[2,-22],[-10,-11],[2,-36],[-19,10],[-36,-41],[0,-33],[-15,-50],[-1,-29],[-13,-48],[-21,13],[-1,-61],[-7,-20],[3,-25],[-14,-14]],[[7472,6360],[-4,-21],[-19,1],[-34,-13],[2,-44],[-15,-35],[-40,-40],[-31,-69],[-21,-38],[-28,-38],[0,-27],[-13,-15],[-26,-21],[-12,-3],[-9,-45],[6,-77],[1,-49],[-11,-56],[0,-101],[-15,-2],[-12,-46],[8,-19],[-25,-17],[-10,-40],[-11,-17],[-26,55],[-13,83],[-11,60],[-9,28],[-15,56],[-7,74],[-5,37],[-25,81],[-12,115],[-8,75],[0,72],[-5,55],[-41,-35],[-19,7],[-36,71],[13,22],[-8,23],[-33,50]],[[6893,6457],[19,40],[61,-1],[-6,51],[-15,30],[-4,46],[-18,26],[31,62],[32,-4],[29,61],[18,60],[27,60],[-1,42],[24,34],[-23,29],[-9,40],[-10,52],[14,25],[42,-14],[31,9],[26,49]],[[4827,8240],[5,-42],[-21,-53],[-49,-35],[-40,9],[23,62],[-15,60],[38,46],[21,28]],[[6497,7255],[25,12],[19,33],[19,-1],[12,11],[20,-6],[31,-30],[22,-6],[31,-53],[21,-2],[3,-49]],[[6690,6820],[14,-31],[11,-36],[27,-26],[1,-52],[13,-10],[2,-27],[-40,-30],[-10,-69]],[[6708,6539],[-53,18],[-30,13],[-31,8],[-12,73],[-13,10],[-22,-11],[-28,-28],[-34,20],[-28,45],[-27,17],[-18,56],[-21,79],[-15,-10],[-17,20],[-11,-24]],[[6348,6825],[-15,32],[0,31],[-9,0],[5,43],[-15,45],[-34,32],[-19,56],[6,46],[14,21],[-2,34],[-18,18],[-18,70]],[[6243,7253],[-15,48],[5,18],[-8,68],[19,17]],[[6357,7321],[9,-43],[26,-13],[20,-29],[39,-10],[44,15],[2,14]],[[6348,6825],[-16,3]],[[6332,6828],[-19,5],[-20,-56]],[[6293,6777],[-52,4],[-78,119],[-41,41],[-34,16]],[[6088,6957],[-11,72]],[[6077,7029],[61,62],[11,71],[-3,43],[16,15],[14,37]],[[6176,7257],[12,9],[32,-8],[10,-15],[13,10]],[[4597,8984],[-7,-39],[31,-40],[-36,-45],[-80,-41],[-24,-10],[-36,8],[-78,19],[28,26],[-61,29],[49,12],[-1,17],[-58,14],[19,38],[42,9],[43,-40],[42,32],[35,-17],[45,32],[47,-4]],[[5992,6990],[-5,-19]],[[5987,6971],[-10,8],[-6,-39],[7,-7],[-7,-8],[-1,-15],[13,8]],[[5983,6918],[0,-23],[-14,-95]],[[5951,6902],[8,19],[-2,4],[8,27],[5,45],[4,15],[1,0]],[[5975,7012],[9,0],[3,11],[7,0]],[[5994,7023],[1,-24],[-4,-9],[1,0]],[[5431,7316],[-10,-46],[4,-19],[-6,-30],[-21,22],[-14,7],[-39,30],[4,30],[32,-6],[28,7],[22,5]],[[5255,7492],[17,-42],[-4,-78],[-13,4],[-11,-20],[-10,16],[-2,71],[-6,34],[15,-3],[14,18]],[[5383,7805],[-3,-29],[7,-25]],[[5387,7751],[-22,8],[-23,-20],[1,-30],[-3,-17],[9,-30],[26,-29],[14,-49],[31,-48],[22,0],[7,-13],[-8,-11],[25,-22],[20,-18],[24,-30],[3,-11],[-5,-22],[-16,28],[-24,10],[-12,-39],[20,-21],[-3,-31],[-11,-4],[-15,-50],[-12,-5],[0,18],[6,32],[6,12],[-11,35],[-8,29],[-12,8],[-8,25],[-18,11],[-12,24],[-21,4],[-21,26],[-26,39],[-19,34],[-8,58],[-14,7],[-23,20],[-12,-8],[-16,-28],[-12,-4]],[[2845,6150],[19,-5],[14,-15],[5,-16],[-19,-1],[-9,-10],[-15,10],[-16,21],[3,14],[12,4],[6,-2]],[[5992,6990],[31,-24],[54,63]],[[6088,6957],[-5,-8],[-56,-30],[28,-59],[-9,-10],[-5,-20],[-21,-8],[-7,-21],[-12,-19],[-31,10]],[[5970,6792],[-1,8]],[[5983,6918],[4,17],[0,36]],[[8739,7075],[4,-20],[-16,-36],[-11,19],[-15,-14],[-7,-34],[-18,16],[0,28],[15,36],[16,-7],[12,25],[20,-13]],[[8915,7252],[-10,-47],[4,-30],[-14,-42],[-35,-27],[-49,-4],[-40,-67],[-19,22],[-1,44],[-48,-13],[-33,-27],[-32,-2],[28,-43],[-19,-101],[-18,-24],[-13,23],[7,53],[-18,17],[-11,41],[26,18],[15,37],[28,30],[20,41],[55,17],[30,-12],[29,105],[19,-28],[40,59],[16,23],[18,72],[-5,67],[11,37],[30,11],[15,-82],[-1,-48],[-25,-59],[0,-61]],[[8997,7667],[19,-12],[20,25],[6,-67],[-41,-16],[-25,-59],[-43,41],[-15,-65],[-31,-1],[-4,59],[14,46],[29,3],[8,82],[9,46],[32,-62],[22,-20]],[[6970,7554],[-15,-10],[-37,-42],[-12,-42],[-11,0],[-7,28],[-36,2],[-5,48],[-14,0],[2,60],[-33,43],[-48,-5],[-32,-8],[-27,53],[-22,22],[-43,43],[-6,5],[-71,-35],[1,-218]],[[6554,7498],[-14,-3],[-20,46],[-18,17],[-32,-12],[-12,-20]],[[6458,7526],[-2,14],[7,25],[-5,21],[-32,20],[-13,53],[-15,15],[-1,19],[27,-6],[1,44],[23,9],[25,-9],[5,58],[-5,36],[-28,-2],[-24,14],[-32,-26],[-26,-12]],[[6363,7799],[-14,9],[3,31],[-18,39],[-20,-2],[-24,40],[16,45],[-8,12],[22,65],[29,-34],[3,43],[58,64],[43,2],[61,-41],[33,-24],[30,25],[44,1],[35,-30],[8,17],[39,-2],[7,28],[-45,40],[27,29],[-5,16],[26,15],[-20,41],[13,20],[104,21],[13,14],[70,22],[25,24],[50,-12],[9,-61],[29,14],[35,-20],[-2,-32],[27,3],[69,56],[-10,-19],[35,-46],[62,-150],[15,31],[39,-34],[39,16],[16,-11],[13,-34],[20,-12],[11,-25],[36,8],[15,-36]],[[7229,7559],[-17,9],[-14,21],[-42,6],[-46,2],[-10,-6],[-39,24],[-16,-12],[-4,-35],[-46,21],[-18,-9],[-7,-26]],[[6155,4958],[-20,-24],[-7,-24],[-10,-4],[-4,-42],[-9,-24],[-5,-39],[-12,-20]],[[6088,4781],[-40,59],[-1,35],[-101,120],[-5,6]],[[5941,5001],[0,63],[8,24],[14,39],[10,43],[-13,68],[-3,30],[-13,41]],[[5944,5309],[17,35],[19,39]],[[6162,5289],[-24,-67],[0,-215],[17,-49]],[[7046,7387],[-53,-9],[-34,19],[-30,-4],[3,34],[30,-10],[10,18]],[[6972,7435],[21,-6],[36,43],[-33,31],[-20,-15],[-21,22],[24,39],[-9,5]],[[7849,5777],[-7,72],[18,49],[36,11],[26,-8]],[[7922,5901],[23,-23],[12,40],[25,-21]],[[7982,5897],[6,-40],[-3,-71],[-47,-45],[13,-36],[-30,-4],[-24,-24]],[[7897,5677],[-23,9],[-11,30],[-14,61]],[[8564,7339],[24,-70],[7,-38],[0,-68],[-10,-33],[-25,-11],[-22,-25],[-25,-5],[-3,32],[5,45],[-13,61],[21,10],[-19,51]],[[8504,7288],[2,5],[12,-2],[11,27],[20,2],[11,4],[4,15]],[[5557,7574],[5,13]],[[5562,7587],[7,4],[4,20],[5,3],[4,-8],[5,-4],[3,-10],[5,-2],[5,-11],[4,0],[-3,-14],[-3,-7],[1,-5]],[[5599,7553],[-6,-2],[-17,-9],[-1,-12],[-4,0]],[[6332,6828],[6,-26],[-3,-13],[9,-45]],[[6344,6744],[-19,-1],[-7,28],[-25,6]],[[7922,5901],[9,26],[1,50],[-22,52],[-2,58],[-21,48],[-21,4],[-6,-20],[-16,-2],[-8,10],[-30,-35],[0,53],[7,62],[-19,3],[-2,36],[-12,18]],[[7780,6264],[6,21],[24,39]],[[7837,6385],[17,-47],[12,-54],[34,0],[11,-52],[-18,-15],[-8,-21],[34,-36],[23,-70],[17,-52],[21,-41],[7,-41],[-5,-59]],[[5975,7012],[10,49],[14,41],[0,2]],[[5999,7104],[13,-3],[4,-23],[-15,-22],[-7,-33]],[[4785,5315],[-7,0],[-29,28],[-25,45],[-24,32],[-18,38]],[[4682,5458],[6,19],[2,17],[12,33],[13,27]],[[5412,6408],[-20,-22],[-15,33],[-44,25]],[[5263,6848],[13,14],[3,25],[-3,24],[19,23],[8,19],[14,17],[2,45]],[[5319,7015],[32,-20],[12,5],[23,-10],[37,-26],[13,-53],[25,-11],[39,-25],[30,-29],[13,15],[13,27],[-6,45],[9,29],[20,28],[19,8],[37,-12],[10,-27],[10,0],[9,-10],[28,-7],[6,-19]],[[5694,6357],[0,-118],[-32,0],[0,-25]],[[5662,6214],[-111,113],[-111,113],[-28,-32]],[[7271,5502],[-4,-62],[-12,-16],[-24,-14],[-13,47],[-5,85],[13,96],[19,-33],[13,-42],[13,-61]],[[5804,3347],[10,-18],[-9,-29],[-4,-19],[-16,-9],[-5,-19],[-10,-6],[-21,46],[15,37],[15,23],[13,12],[12,-18]],[[5631,8267],[-2,15],[3,16],[-13,10],[-29,10]],[[5590,8318],[-6,50]],[[5584,8368],[32,18],[47,-4],[27,6],[4,-12],[15,-4],[26,-29]],[[5652,8242],[-7,19],[-14,6]],[[5584,8368],[1,44],[14,37],[26,20],[22,-44],[22,1],[6,46]],[[5757,8453],[14,-14],[2,-28],[9,-35]],[[4759,6691],[-4,0],[0,-31],[-17,-2],[-9,-14],[-13,0],[-10,8],[-23,-6],[-9,-46],[-9,-5],[-13,-74],[-38,-64],[-9,-81],[-12,-27],[-3,-21],[-63,-5]],[[4527,6323],[1,27],[11,17],[9,30],[-2,20],[10,42],[15,38],[9,9],[8,35],[0,31],[10,37],[19,21],[18,60],[0,1],[14,23],[26,6],[22,41],[14,16],[23,49],[-7,73],[10,51],[4,31],[18,40],[28,27],[21,25],[18,61],[9,36],[20,0],[17,-25],[26,4],[29,-13],[12,-1]],[[5739,7906],[6,9],[19,6],[20,-19],[12,-2],[12,-16],[-2,-20],[11,-9],[4,-25],[9,-15],[-2,-9],[5,-6],[-7,-4],[-16,1],[-3,9],[-6,-5],[2,-11],[-7,-19],[-5,-20],[-7,-6]],[[5784,7745],[-5,27],[3,25],[-1,26],[-16,35],[-9,25],[-9,17],[-8,6]],[[6376,4321],[7,-25],[7,-39],[4,-71],[7,-28],[-2,-28],[-5,-18],[-10,35],[-5,-18],[5,-43],[-2,-25],[-8,-14],[-1,-50],[-11,-69],[-14,-81],[-17,-112],[-11,-82],[-12,-69],[-23,-14],[-24,-25],[-16,15],[-22,21],[-8,31],[-2,53],[-10,47],[-2,42],[5,43],[13,10],[0,20],[13,45],[2,37],[-6,28],[-5,38],[-2,54],[9,33],[4,38],[14,2],[15,12],[11,10],[12,1],[16,34],[23,36],[8,30],[-4,25],[12,-7],[15,41],[1,36],[9,26],[10,-25]],[[2301,6586],[-10,-52],[-5,-43],[-2,-79],[-3,-29],[5,-32],[9,-29],[5,-45],[19,-44],[6,-34],[11,-29],[29,-16],[12,-25],[24,17],[21,6],[21,11],[18,10],[17,24],[7,34],[2,50],[5,17],[19,16],[29,13],[25,-2],[17,5],[6,-12],[-1,-29],[-15,-35],[-6,-36],[5,-10],[-4,-26],[-7,-46],[-7,15],[-6,-1]],[[2438,5916],[-32,64],[-14,19],[-23,16],[-15,-5],[-22,-22],[-14,-6],[-20,16],[-21,11],[-26,27],[-21,8],[-31,28],[-23,28],[-7,16],[-16,3],[-28,19],[-12,27],[-30,34],[-14,37],[-6,29],[9,5],[-3,17],[7,16],[0,20],[-10,27],[-2,23],[-9,30],[-25,59],[-28,46],[-13,37],[-24,24],[-5,14],[4,37],[-14,13],[-17,29],[-7,41],[-14,5],[-17,31],[-13,29],[-1,19],[-15,44],[-10,45],[1,23],[-20,23],[-10,-2],[-15,16],[-5,-24],[5,-28],[2,-45],[10,-24],[21,-41],[4,-14],[4,-4],[4,-20],[5,1],[6,-38],[8,-15],[6,-21],[17,-30],[10,-55],[8,-26],[8,-28],[1,-31],[13,-2],[12,-27],[10,-26],[-1,-11],[-12,-21],[-5,0],[-7,36],[-18,33],[-20,29],[-14,15],[1,43],[-5,32],[-13,19],[-19,26],[-4,-8],[-7,16],[-17,14],[-16,34],[2,5],[11,-4],[11,22],[1,27],[-22,42],[-16,17],[-10,36],[-11,39],[-12,47],[-12,54]],[[1746,6980],[32,4],[35,7],[-2,-12],[41,-29],[64,-41],[55,0],[22,0],[0,24],[48,0],[10,-20],[15,-19],[16,-26],[9,-31],[7,-32],[15,-18],[23,-18],[17,47],[23,1],[19,-24],[14,-40],[10,-35],[16,-34],[6,-41],[8,-28],[22,-18],[20,-13],[10,2]],[[5599,7553],[9,4],[13,1]],[[4661,5921],[10,11],[4,35],[9,1],[20,-16],[15,11],[11,-4],[4,13],[112,1],[6,42],[-5,7],[-13,255],[-14,255],[43,1]],[[5118,6189],[0,-136],[-15,-39],[-2,-37],[-25,-9],[-38,-5],[-10,-21],[-18,-3]],[[4680,5793],[1,18],[-2,23],[-11,16],[-5,34],[-2,37]],[[7737,5644],[-3,44],[9,45],[-10,35],[3,65],[-12,30],[-9,71],[-5,75],[-12,49],[-18,-30],[-32,-42],[-15,5],[-17,14],[9,73],[-6,56],[-21,68],[3,21],[-16,7],[-20,49]],[[7780,6264],[-16,-14],[-16,-26],[-20,-2],[-12,-64],[-12,-11],[14,-52],[17,-43],[12,-39],[-11,-51],[-9,-11],[6,-30],[19,-47],[3,-33],[0,-27],[11,-54],[-16,-55],[-13,-61]],[[5538,7532],[-6,4],[-8,19],[-12,12]],[[5533,7629],[8,-10],[4,-9],[9,-6],[10,-12],[-2,-5]],[[7437,7970],[29,10],[53,51],[42,28],[24,-18],[29,-1],[19,-28],[28,-2],[40,-15],[27,41],[-11,35],[28,61],[31,-24],[26,-7],[32,-15],[6,-44],[39,-25],[26,11],[36,7],[27,-7],[28,-29],[16,-30],[26,1],[35,-10],[26,15],[36,9],[41,42],[17,-6],[14,-20],[33,5]],[[5959,4377],[21,5],[34,-17],[7,8],[19,1],[10,18],[17,-1],[30,23],[22,34]],[[6119,4448],[5,-26],[-1,-59],[3,-52],[1,-92],[5,-29],[-8,-43],[-11,-41],[-18,-36],[-25,-23],[-31,-28],[-32,-64],[-10,-11],[-20,-42],[-11,-13],[-3,-42],[14,-45],[5,-35],[0,-17],[5,3],[-1,-58],[-4,-28],[6,-10],[-4,-25],[-11,-21],[-23,-20],[-34,-32],[-12,-21],[3,-25],[7,-4],[-3,-31]],[[5911,3478],[-21,0]],[[5890,3478],[-2,26],[-4,27]],[[5884,3531],[-3,21],[5,66],[-7,42],[-13,83]],[[5866,3743],[29,67],[7,43],[5,5],[3,35],[-5,17],[1,44],[6,41],[0,75],[-15,19],[-13,4],[-6,15],[-13,12],[-23,-1],[-2,22]],[[5840,4141],[-2,42],[84,49]],[[5922,4232],[16,-28],[8,5],[11,-15],[1,-23],[-6,-28],[2,-42],[19,-36],[8,41],[12,12],[-2,76],[-12,43],[-10,19],[-10,-1],[-7,77],[7,45]],[[4661,5921],[-18,41],[-17,43],[-18,16],[-13,17],[-16,-1],[-13,-12],[-14,5],[-10,-19]],[[4542,6011],[-2,32],[8,29],[3,55],[-3,59],[-3,29],[2,30],[-7,28],[-14,25]],[[4526,6298],[6,20],[108,-1],[-5,86],[7,30],[26,5],[-1,152],[91,-4],[0,90]],[[5922,4232],[-15,15],[9,55],[9,21],[-6,49],[6,48],[5,16],[-7,50],[-14,26]],[[5909,4512],[28,-11],[5,-16],[10,-28],[7,-80]],[[7836,5425],[7,-5],[16,-36],[12,-40],[2,-39],[-3,-27],[2,-21],[2,-35],[10,-16],[11,-52],[-1,-20],[-19,-4],[-27,44],[-32,47],[-4,30],[-16,39],[-4,49],[-10,32],[4,43],[-7,25]],[[7779,5439],[5,11],[23,-26],[2,-30],[18,7],[9,24]],[[8045,5176],[21,-20],[21,11],[6,50],[12,11],[33,13],[20,47],[14,37]],[[8206,5379],[22,41],[14,47],[11,0],[14,-30],[1,-26],[19,-16],[23,-18],[-2,-23],[-19,-3],[5,-29],[-20,-20]],[[5453,3369],[-20,45],[-11,43],[-6,58],[-7,42],[-9,91],[-1,71],[-3,32],[-11,25],[-15,48],[-14,71],[-6,37],[-23,58],[-2,45]],[[5644,4022],[23,14],[18,-4],[11,-13],[0,-5]],[[5552,3594],[0,-218],[-25,-30],[-15,-4],[-17,11],[-13,4],[-4,25],[-11,17],[-14,-30]],[[9604,3812],[23,-36],[14,-28],[-10,-14],[-16,16],[-19,27],[-18,31],[-19,42],[-4,20],[12,-1],[16,-20],[12,-20],[9,-17]],[[5412,6408],[7,-92],[10,-15],[1,-19],[11,-20],[-6,-25],[-11,-120],[-1,-77],[-35,-56],[-12,-78],[11,-22],[0,-38],[18,-1],[-3,-28]],[[5393,5795],[-5,-1],[-19,64],[-6,3],[-22,-33],[-21,17],[-15,3],[-8,-8],[-17,2],[-16,-25],[-14,-2],[-34,31],[-13,-15],[-14,1],[-10,23],[-28,22],[-30,-7],[-7,-13],[-4,-34],[-8,-24],[-2,-53]],[[5236,5339],[-29,-21],[-11,3],[-10,-13],[-23,1],[-15,37],[-9,43],[-19,39],[-21,-1],[-25,0]],[[2619,5713],[-10,18],[-13,24],[-6,20],[-12,19],[-13,26],[3,9],[4,-9],[2,5]],[[2690,5943],[-2,-5],[-2,-13],[3,-22],[-6,-20],[-3,-24],[-1,-26],[1,-15],[1,-27],[-4,-6],[-3,-25],[2,-15],[-6,-16],[2,-16],[4,-9]],[[5092,8091],[14,16],[24,87],[38,25],[23,-2]],[[5863,9167],[-47,-24],[-22,-5]],[[5573,9140],[-17,-2],[-4,-39],[-53,9],[-7,-33],[-27,1],[-18,-42],[-28,-66],[-43,-83],[10,-20],[-10,-24],[-27,1],[-18,-55],[2,-79],[17,-29],[-9,-70],[-23,-40],[-12,-34]],[[5306,8535],[-19,36],[-55,-69],[-37,-13],[-38,30],[-10,63],[-9,137],[26,38],[73,49],[55,61],[51,82],[66,115],[47,44],[76,74],[61,26],[46,-3],[42,49],[51,-3],[50,12],[87,-43],[-36,-16],[30,-37]],[[5686,9657],[-62,-24],[-49,13],[19,16],[-16,19],[57,11],[11,-22],[40,-13]],[[5506,9766],[92,-44],[-70,-23],[-15,-44],[-25,-11],[-13,-49],[-34,-2],[-59,36],[25,21],[-42,17],[-54,50],[-21,46],[75,21],[16,-20],[39,0],[11,21],[40,2],[35,-21]],[[5706,9808],[55,-21],[-41,-32],[-81,-7],[-82,10],[-5,16],[-40,1],[-30,27],[86,17],[40,-14],[28,17],[70,-14]],[[9805,2640],[6,-24],[20,24],[8,-25],[0,-25],[-10,-27],[-18,-44],[-14,-24],[10,-28],[-22,-1],[-23,-22],[-8,-39],[-16,-60],[-21,-26],[-14,-17],[-26,1],[-18,20],[-30,4],[-5,22],[15,43],[35,59],[18,11],[20,22],[24,31],[16,31],[13,44],[10,15],[5,33],[19,27],[6,-25]],[[9849,2922],[20,-63],[1,41],[13,-16],[4,-45],[22,-19],[19,-5],[16,22],[14,-6],[-7,-53],[-8,-34],[-22,1],[-7,-18],[3,-25],[-4,-11],[-11,-32],[-14,-41],[-21,-23],[-5,15],[-12,9],[16,48],[-9,33],[-30,23],[1,22],[20,20],[5,46],[-1,38],[-12,40],[1,10],[-13,25],[-22,52],[-12,42],[11,4],[15,-33],[21,-15],[8,-52]],[[6475,6041],[-9,41],[-22,98]],[[6444,6180],[83,59],[19,118],[-13,42]],[[6566,6530],[12,-40],[16,-22],[20,-8],[17,-10],[12,-34],[8,-20],[10,-7],[0,-13],[-10,-36],[-5,-16],[-12,-19],[-10,-41],[-13,3],[-5,-14],[-5,-30],[4,-39],[-3,-7],[-13,0],[-17,-22],[-3,-29],[-6,-12],[-18,0],[-10,-15],[0,-24],[-14,-16],[-15,5],[-19,-19],[-12,-4]],[[6557,6597],[8,20],[3,-5],[-2,-25],[-4,-10]],[[6893,6457],[-20,15],[-9,43],[-21,45],[-51,-12],[-45,-1],[-39,-8]],[[2836,5484],[-9,17],[-6,32],[7,16],[-7,4],[-5,20],[-14,16],[-12,-4],[-6,-20],[-11,-15],[-6,-2],[-3,-13],[13,-32],[-7,-7],[-4,-9],[-13,-3],[-5,35],[-4,-10],[-9,4],[-5,24],[-12,3],[-7,7],[-12,0],[-1,-13],[-3,9]],[[2707,5623],[10,-22],[-1,-12],[11,-3],[3,5],[8,-14],[13,4],[12,15],[17,12],[9,17],[16,-3],[-1,-6],[15,-2],[12,-10],[10,-18],[10,-16]],[[3045,3974],[-28,33],[-2,25],[-55,59],[-50,65],[-22,36],[-11,49],[4,17],[-23,77],[-28,109],[-26,118],[-11,27],[-9,43],[-21,39],[-20,24],[9,26],[-14,57],[9,41],[22,37]],[[8510,5555],[2,-40],[2,-33],[-9,-54],[-11,60],[-13,-30],[9,-43],[-8,-28],[-32,35],[-8,42],[8,28],[-17,28],[-9,-24],[-13,2],[-21,-33],[-4,17],[11,50],[17,17],[15,22],[10,-27],[21,17],[5,26],[19,1],[-1,46],[22,-28],[3,-30],[2,-21]],[[8443,5665],[-10,-20],[-9,-37],[-8,-17],[-17,40],[5,16],[7,17],[3,36],[16,4],[-5,-40],[21,57],[-3,-56]],[[8291,5608],[-37,-56],[14,41],[20,37],[16,41],[15,58],[5,-48],[-18,-33],[-15,-40]],[[8385,5760],[16,-18],[18,0],[0,-25],[-13,-25],[-18,-18],[-1,28],[2,30],[-4,28]],[[8485,5776],[8,-66],[-21,16],[0,-20],[7,-37],[-13,-13],[-1,42],[-9,3],[-4,36],[16,-5],[0,22],[-17,45],[27,-1],[7,-22]],[[8375,5830],[-7,-51],[-12,29],[-15,45],[24,-2],[10,-21]],[[8369,6151],[17,-17],[9,15],[2,-15],[-4,-24],[9,-43],[-7,-49],[-16,-19],[-5,-48],[7,-47],[14,-7],[13,7],[34,-32],[-2,-32],[9,-15],[-3,-27],[-22,29],[-10,31],[-7,-22],[-18,36],[-25,-9],[-14,13],[1,25],[9,15],[-8,13],[-4,-21],[-14,34],[-4,26],[-1,56],[11,-19],[3,92],[9,54],[17,0]],[[9329,4655],[-8,-6],[-12,22],[-12,38],[-6,45],[4,6],[3,-18],[8,-13],[14,-38],[13,-20],[-4,-16]],[[9221,4734],[-15,-5],[-4,-17],[-15,-14],[-15,-14],[-14,0],[-23,18],[-16,16],[2,18],[25,-8],[15,4],[5,29],[4,1],[2,-31],[16,4],[8,20],[16,21],[-4,35],[17,1],[6,-9],[-1,-33],[-9,-36]],[[8916,4904],[48,-41],[51,-34],[19,-30],[16,-30],[4,-34],[46,-37],[7,-31],[-25,-7],[6,-39],[25,-39],[18,-62],[15,2],[-1,-27],[22,-10],[-9,-11],[30,-25],[-3,-17],[-18,-4],[-7,16],[-24,6],[-28,9],[-22,38],[-16,32],[-14,52],[-36,26],[-24,-17],[-17,-20],[4,-43],[-22,-20],[-16,9],[-28,3]],[[9253,4792],[-9,-16],[-5,35],[-6,23],[-13,19],[-16,25],[-20,18],[8,14],[15,-17],[9,-13],[12,-14],[11,-25],[11,-19],[3,-30]],[[5392,8233],[19,18],[43,27],[35,20],[28,-10],[2,-14],[27,-1]],[[5546,8273],[34,-7],[51,1]],[[5653,8105],[14,-52],[-3,-17],[-14,-6],[-25,-50],[7,-26],[-6,3]],[[5626,7957],[-26,23],[-20,-8],[-13,6],[-17,-13],[-14,21],[-11,-8],[-2,4]],[[3159,6151],[14,-5],[5,-12],[-7,-15],[-21,1],[-17,-2],[-1,25],[4,9],[23,-1]],[[8628,7562],[4,-10]],[[8632,7552],[-11,3],[-12,-20],[-8,-20],[1,-42],[-14,-13],[-5,-11],[-11,-17],[-18,-10],[-12,-16],[-1,-25],[-3,-7],[11,-9],[15,-26]],[[8504,7288],[-13,11],[-4,-11],[-8,-5],[-1,11],[-7,5],[-8,10],[8,26],[7,7],[-3,11],[7,31],[-2,10],[-16,7],[-13,15]],[[4792,7249],[-11,-15],[-14,8],[-15,-6],[5,46],[-3,36],[-12,6],[-7,22],[2,39],[11,21],[2,24],[6,36],[-1,25],[-5,21],[-1,20]],[[6411,6520],[-2,43],[7,31],[8,6],[8,-18],[1,-35],[-6,-35]],[[6427,6512],[-8,-4],[-8,12]],[[5630,7886],[12,13],[17,-7],[18,0],[13,-14],[10,9],[20,5],[7,14],[12,0]],[[5784,7745],[12,-11],[13,9],[13,-10]],[[5822,7733],[0,-15],[-13,-13],[-9,6],[-7,-71]],[[5629,7671],[-5,10],[6,10],[-7,7],[-8,-13],[-17,17],[-2,25],[-17,14],[-3,18],[-15,24]],[[8989,8056],[28,-105],[-41,19],[-17,-85],[27,-61],[-1,-41],[-21,36],[-18,-46],[-5,50],[3,57],[-3,64],[6,45],[2,79],[-17,58],[3,80],[25,28],[-11,27],[13,8],[7,-39],[10,-57],[-1,-58],[11,-59]],[[5546,8273],[6,26],[38,19]],[[0,9132],[68,-45],[73,-59],[-3,-37],[19,-15],[-6,43],[75,-8],[55,-56],[-28,-26],[-46,-6],[0,-57],[-11,-13],[-26,2],[-22,21],[-36,17],[-7,26],[-28,9],[-31,-7],[-16,20],[6,22],[-33,-14],[13,-28],[-16,-25]],[[0,8896],[0,236]],[[0,9282],[9999,-40],[-30,-3],[-5,19],[-9964,24]],[[0,9282],[4,3],[23,0],[40,-17],[-2,-8],[-29,-14],[-36,-4],[0,40]],[[8988,9383],[-42,-1],[-57,7],[-5,3],[27,23],[34,6],[40,-23],[3,-15]],[[9186,9493],[-32,-23],[-44,5],[-52,23],[7,20],[51,-9],[70,-16]],[[9029,9522],[-22,-44],[-102,1],[-46,-14],[-55,39],[15,40],[37,11],[73,-2],[100,-31]],[[6598,9235],[-17,-5],[-91,8],[-7,26],[-50,16],[-4,32],[28,13],[-1,32],[55,50],[-25,7],[66,52],[-7,27],[62,31],[91,38],[93,11],[48,22],[54,8],[19,-23],[-19,-19],[-98,-29],[-85,-28],[-86,-57],[-42,-57],[-43,-57],[5,-49],[54,-49]],[[0,8896],[9963,-26],[-36,4],[25,-31],[17,-49],[13,-16],[3,-24],[-7,-16],[-52,13],[-78,-44],[-25,-7],[-42,-42],[-40,-36],[-11,-27],[-39,41],[-73,-46],[-12,22],[-27,-26],[-37,8],[-9,-38],[-33,-58],[1,-24],[31,-13],[-4,-86],[-25,-2],[-12,-49],[11,-26],[-48,-30],[-10,-67],[-41,-15],[-9,-60],[-40,-55],[-10,41],[-12,86],[-15,131],[13,82],[23,35],[2,28],[43,13],[50,75],[47,60],[50,48],[23,83],[-34,-5],[-17,-49],[-70,-65],[-23,73],[-72,-20],[-69,-99],[23,-36],[-62,-16],[-43,-6],[2,43],[-43,9],[-35,-29],[-85,10],[-91,-18],[-90,-115],[-106,-139],[43,-8],[14,-37],[27,-13],[18,30],[30,-4],[40,-65],[1,-50],[-21,-59],[-3,-71],[-12,-94],[-42,-86],[-9,-41],[-38,-69],[-38,-68],[-18,-35],[-37,-34],[-17,-1],[-17,29],[-38,-44],[-4,-19]],[[6363,7799],[-12,-35],[-27,-10],[-28,-61],[25,-56],[-2,-40],[30,-70]],[[6109,7624],[-35,49],[-32,23],[-24,34],[20,10],[23,49],[-15,24],[41,24],[-1,13],[-25,-10]],[[6061,7840],[1,26],[14,17],[27,4],[5,20],[-7,33],[12,30],[-1,18],[-41,19],[-16,-1],[-17,28],[-21,-9],[-35,20],[0,12],[-10,26],[-22,3],[-2,18],[7,12],[-18,33],[-29,-5],[-8,3],[-7,-14],[-11,3]],[[5777,8571],[31,33],[-29,28]],[[5863,9167],[29,20],[46,-35],[76,-14],[105,-67],[21,-28],[2,-40],[-31,-31],[-45,-15],[-124,44],[-21,-7],[45,-43],[2,-28],[2,-60],[36,-18],[22,-15],[3,28],[-17,26],[18,22],[67,-37],[24,15],[-19,43],[65,58],[25,-4],[26,-20],[16,40],[-23,35],[14,36],[-21,36],[78,-18],[16,-34],[-35,-7],[0,-33],[22,-20],[43,13],[7,38],[58,28],[97,50],[20,-3],[-27,-35],[35,-7],[19,21],[52,1],[42,25],[31,-36],[32,39],[-29,35],[14,19],[82,-18],[39,-18],[100,-68],[19,31],[-28,31],[-1,13],[-34,6],[10,28],[-15,46],[-1,19],[51,53],[18,54],[21,11],[74,-15],[5,-33],[-26,-48],[17,-19],[9,-41],[-6,-81],[31,-36],[-12,-40],[-55,-84],[32,-8],[11,21],[31,15],[7,29],[24,29],[-16,33],[13,39],[-31,5],[-6,33],[22,59],[-36,48],[50,40],[-7,42],[14,2],[15,-33],[-11,-57],[29,-11],[-12,43],[46,23],[58,3],[51,-34],[-25,49],[-2,63],[48,12],[67,-2],[60,7],[-23,31],[33,39],[31,2],[54,29],[74,8],[9,16],[73,6],[23,-14],[62,32],[51,-1],[8,25],[26,25],[66,25],[48,-19],[-38,-15],[63,-9],[7,-29],[25,14],[82,-1],[62,-29],[23,-22],[-7,-30],[-31,-18],[-73,-33],[-21,-17],[35,-8],[41,-15],[25,11],[14,-38],[12,15],[44,10],[90,-10],[6,-28],[116,-9],[2,46],[59,-11],[44,1],[45,-32],[13,-37],[-17,-25],[35,-47],[44,-24],[27,62],[44,-26],[48,16],[53,-18],[21,16],[45,-8],[-20,55],[37,25],[251,-38],[24,-35],[72,-45],[112,11],[56,-10],[23,-24],[-4,-44],[35,-16],[37,12],[49,1],[52,-11],[53,6],[49,-52],[34,19],[-23,37],[13,27],[88,-17],[58,4],[80,-29],[-9960,-25]],[[7918,9684],[-157,-23],[51,77],[23,7],[21,-4],[70,-33],[-8,-24]],[[6420,9816],[-37,-8],[-25,-4],[-4,-10],[-33,-10],[-30,14],[16,19],[-62,2],[54,10],[43,1],[5,-16],[16,14],[26,10],[42,-13],[-11,-9]],[[7775,9718],[-60,-8],[-78,17],[-46,23],[-21,42],[-38,12],[72,40],[60,14],[54,-30],[64,-57],[-7,-53]],[[5844,4990],[11,-33],[-1,-35],[-8,-7]],[[5821,4978],[7,-6],[16,18]],[[4526,6298],[1,25]],[[6188,6023],[-4,26],[-8,17],[-2,24],[-15,21],[-15,50],[-7,48],[-20,40],[-12,10],[-18,56],[-4,41],[2,35],[-16,66],[-13,23],[-15,12],[-10,34],[2,13],[-8,31],[-8,13],[-11,44],[-17,48],[-14,40],[-14,0],[5,33],[1,20],[3,24]],[[6344,6744],[11,-51],[14,-13],[5,-21],[18,-25],[2,-24],[-3,-20],[4,-20],[8,-16],[4,-20],[4,-14]],[[6427,6512],[5,-22]],[[6444,6180],[-80,-23],[-26,-26],[-20,-62],[-13,-10],[-7,20],[-11,-3],[-27,6],[-5,5],[-32,-1],[-7,-5],[-12,15],[-7,-29],[3,-25],[-12,-19]],[[5943,5617],[-4,1],[0,29],[-3,20],[-14,24],[-4,42],[4,44],[-13,4],[-2,-13],[-17,-3],[7,-17],[2,-36],[-15,-32],[-14,-43],[-14,-6],[-23,34],[-11,-12],[-3,-17],[-14,-11],[-1,-12],[-28,0],[-3,12],[-20,2],[-10,-10],[-8,5],[-14,34],[-5,17],[-20,-9],[-8,-27],[-7,-53],[-10,-11],[-8,-6]],[[5663,5567],[-2,2]],[[5635,5716],[0,14],[-10,17],[-1,35],[-5,23],[-10,-4],[3,22],[7,25],[-3,24],[9,18],[-6,14],[7,36],[13,44],[24,-4],[-1,234]],[[6023,6357],[9,-58],[-6,-10],[4,-61],[11,-71],[10,-14],[15,-22]],[[5943,5624],[0,-7]],[[5943,5617],[0,-46]],[[5944,5309],[-17,-28],[-20,1],[-22,-14],[-18,13],[-11,-16]],[[5682,5544],[-19,23]],[[4535,5861],[-11,46],[-14,21],[12,11],[14,41],[6,31]],[[4536,5789],[-4,45]],[[9502,4438],[8,-20],[-19,0],[-11,37],[17,-15],[5,-2]],[[9467,4474],[-11,-1],[-17,6],[-5,9],[1,23],[19,-9],[9,-12],[4,-16]],[[9490,4490],[-4,-11],[-21,52],[-5,35],[9,0],[10,-47],[11,-29]],[[9440,4565],[1,-12],[-22,25],[-15,21],[-10,20],[4,6],[13,-14],[23,-27],[6,-19]],[[9375,4623],[-5,-3],[-13,14],[-11,24],[1,10],[17,-25],[11,-20]],[[4682,5458],[-8,5],[-20,24],[-14,31],[-5,22],[-3,43]],[[2561,5848],[-3,-14],[-16,1],[-10,6],[-12,12],[-15,3],[-8,13]],[[6198,5735],[9,-11],[5,-25],[13,-24],[14,-1],[26,16],[30,7],[25,18],[13,4],[10,11],[16,2]],[[6359,5732],[0,-1],[0,-25],[0,-59],[0,-31],[-13,-36],[-19,-50]],[[6359,5732],[9,1],[13,9],[14,6],[14,20],[10,0],[1,-16],[-3,-35],[0,-31],[-6,-21],[-7,-64],[-14,-66],[-17,-75],[-24,-87],[-23,-66],[-33,-81],[-28,-48],[-42,-58],[-25,-45],[-31,-72],[-6,-31],[-6,-14]],[[3412,5410],[34,-11],[2,10],[23,4],[30,-15]],[[3489,5306],[10,-35],[-4,-25]],[[5626,7957],[-8,-15],[-5,-24]],[[5380,7746],[7,5]],[[5663,8957],[-47,-17],[-27,-41],[4,-36],[-44,-48],[-54,-50],[-20,-84],[20,-41],[26,-33],[-25,-67],[-29,-14],[-11,-99],[-15,-55],[-34,6],[-16,-47],[-32,-3],[-9,56],[-23,67],[-21,84]],[[5890,3478],[-5,-26],[-17,-6],[-16,32],[0,20],[7,22],[3,17],[8,5],[14,-11]],[[5999,7104],[-2,45],[7,25]],[[6004,7174],[7,13],[7,13],[2,33],[9,-12],[31,17],[14,-12],[23,1],[32,22],[15,-1],[32,9]],[[5051,5420],[-22,-12]],[[7849,5777],[-25,28],[-24,-2],[4,47],[-24,0],[-2,-65],[-15,-87],[-10,-52],[2,-43],[18,-2],[12,-53],[5,-52],[15,-33],[17,-7],[14,-31]],[[7779,5439],[-11,23],[-4,29],[-15,34],[-14,28],[-4,-35],[-5,33],[3,37],[8,56]],[[6883,7252],[16,60],[-6,44],[-20,14],[7,26],[23,-3],[13,33],[9,38],[37,13],[-6,-27],[4,-17],[12,2]],[[6497,7255],[-5,42],[4,62],[-22,20],[8,40],[-19,4],[6,49],[26,-14],[25,19],[-20,35],[-8,34],[-23,-15],[-3,-43],[-8,38]],[[6554,7498],[31,1],[-4,29],[24,21],[23,34],[37,-31],[3,-47],[11,-12],[30,2],[9,-10],[14,-61],[32,-41],[18,-28],[29,-29],[37,-25],[-1,-36]],[[8471,4532],[3,14],[24,13],[19,2],[9,8],[10,-8],[-10,-16],[-29,-25],[-23,-17]],[[3286,5693],[16,8],[6,-2],[-1,-44],[-23,-7],[-5,6],[8,16],[-1,23]],[[5233,7240],[31,24],[19,-7],[-1,-30],[24,22],[2,-12],[-14,-29],[0,-27],[9,-15],[-3,-51],[-19,-29],[6,-33],[14,-1],[7,-28],[11,-9]],[[6004,7174],[-11,27],[11,22],[-17,-5],[-23,13],[-19,-34],[-43,-6],[-22,31],[-30,2],[-6,-24],[-20,-7],[-26,31],[-31,-1],[-16,59],[-21,33],[14,46],[-18,28],[31,56],[43,3],[12,45],[53,-8],[33,38],[32,17],[46,1],[49,-42],[40,-22],[32,9],[24,-6],[33,31]],[[5777,7539],[3,-23],[25,-19],[-5,-14],[-33,-3],[-12,-19],[-23,-31],[-9,27],[0,12]],[[8382,6499],[-17,-95],[-12,-49],[-14,50],[-4,44],[17,58],[22,45],[13,-18],[-5,-35]],[[6088,4781],[-12,-73],[1,-33],[18,-22],[1,-15],[-8,-36],[2,-18],[-2,-28],[10,-37],[11,-58],[10,-13]],[[5909,4512],[-15,18],[-18,10],[-11,10],[-12,15]],[[5844,4990],[10,8],[31,-1],[56,4]],[[6061,7840],[-22,-5],[-18,-19],[-26,-3],[-24,-22],[1,-37],[14,-14],[28,4],[-5,-21],[-31,-11],[-37,-34],[-16,12],[6,28],[-30,17],[5,12],[26,19],[-8,14],[-43,15],[-2,22],[-25,-8],[-11,-32],[-21,-44]],[[3517,3063],[-12,-38],[-31,-32],[-21,11],[-15,-6],[-26,25],[-18,-1],[-17,32]],[[679,6185],[-4,-10],[-7,8],[1,17],[-4,21],[1,7],[5,10],[-2,11],[1,6],[3,-1],[10,-10],[5,-5],[5,-8],[7,-21],[-1,-3],[-11,-13],[-9,-9]],[[664,6277],[-9,-4],[-5,12],[-3,5],[0,4],[3,5],[9,-6],[8,-9],[-3,-7]],[[646,6309],[-1,-7],[-15,2],[2,7],[14,-2]],[[621,6317],[-2,-3],[-2,1],[-9,2],[-4,13],[-1,2],[7,8],[3,-3],[8,-20]],[[574,6356],[-4,-6],[-9,11],[1,4],[5,6],[6,-1],[1,-14]],[[3135,7724],[5,-19],[-30,-29],[-29,-20],[-29,-18],[-15,-35],[-4,-13],[-1,-31],[10,-32],[11,-1],[-3,21],[8,-13],[-2,-17],[-19,-9],[-13,1],[-20,-10],[-12,-3],[-17,-3],[-23,-17],[41,11],[8,-11],[-39,-18],[-17,0],[0,7],[-8,-16],[8,-3],[-6,-43],[-20,-45],[-2,15],[-6,3],[-9,15],[5,-32],[7,-10],[1,-23],[-9,-23],[-16,-47],[-2,3],[8,40],[-14,22],[-3,49],[-5,-25],[5,-38],[-18,10],[19,-19],[1,-57],[8,-4],[3,-20],[4,-59],[-17,-44],[-29,-18],[-18,-34],[-14,-4],[-14,-22],[-4,-20],[-31,-38],[-16,-28],[-13,-35],[-4,-42],[5,-41],[9,-51],[13,-41],[0,-26],[13,-69],[-1,-39],[-1,-23],[-7,-36],[-8,-8],[-14,7],[-4,26],[-11,14],[-15,51],[-13,45],[-4,23],[6,39],[-8,33],[-22,49],[-10,9],[-28,-27],[-5,3],[-14,28],[-17,14],[-32,-7],[-24,7],[-21,-5],[-12,-9],[5,-15],[0,-24],[5,-12],[-5,-8],[-10,9],[-11,-11],[-20,2],[-20,31],[-25,-8],[-20,14],[-17,-4],[-24,-14],[-25,-44],[-27,-25],[-16,-28],[-6,-27],[0,-41],[1,-28],[5,-20]],[[1746,6980],[-4,30],[-18,34],[-13,7],[-3,17],[-16,3],[-10,16],[-26,6],[-7,9],[-3,32],[-27,60],[-23,82],[1,14],[-13,19],[-21,50],[-4,48],[-15,32],[6,49],[-1,51],[-8,45],[10,56],[4,53],[3,54],[-5,79],[-9,51],[-8,27],[4,12],[40,-20],[15,-56],[7,15],[-5,49],[-9,48]],[[750,8432],[-28,-23],[-14,15],[-4,28],[25,21],[15,9],[18,-4],[12,-18],[-24,-28]],[[401,8597],[-18,-9],[-18,11],[-17,16],[28,10],[22,-6],[3,-22]],[[230,8826],[17,-12],[17,6],[23,-15],[27,-8],[-2,-7],[-21,-12],[-21,13],[-11,11],[-24,-4],[-7,5],[2,23]],[[1374,8295],[-15,22],[-25,19],[-8,52],[-36,47],[-15,56],[-26,4],[-44,2],[-33,17],[-57,61],[-27,11],[-49,21],[-38,-5],[-55,27],[-33,25],[-30,-12],[5,-41],[-15,-4],[-32,-12],[-25,-20],[-30,-13],[-4,35],[12,58],[30,18],[-8,15],[-35,-33],[-19,-39],[-40,-42],[20,-29],[-26,-42],[-30,-25],[-28,-18],[-7,-26],[-43,-31],[-9,-28],[-32,-25],[-20,5],[-25,-17],[-29,-20],[-23,-20],[-47,-16],[-5,9],[31,28],[27,18],[29,33],[35,6],[14,25],[38,35],[6,12],[21,21],[5,44],[14,35],[-32,-18],[-9,11],[-15,-22],[-18,30],[-8,-21],[-10,29],[-28,-23],[-17,0],[-3,35],[5,21],[-17,22],[-37,-12],[-23,28],[-19,14],[0,34],[-22,25],[11,34],[23,33],[10,30],[22,4],[19,-9],[23,28],[20,-5],[21,19],[-5,27],[-16,10],[21,23],[-17,-1],[-30,-13],[-8,-13],[-22,13],[-39,-6],[-41,14],[-12,24],[-35,34],[39,25],[62,29],[23,0],[-4,-30],[59,2],[-23,37],[-34,23],[-20,29],[-26,25],[-38,19],[15,31],[49,2],[35,27],[7,29],[28,28],[28,6],[52,27],[26,-4],[42,31],[42,-12],[21,-27],[12,11],[47,-3],[-2,-14],[43,-10],[28,6],[59,-18],[53,-6],[21,-8],[37,10],[42,-18],[31,-8]],[[3018,5753],[-1,-14],[-16,-7],[9,-26],[0,-31],[-12,-35],[10,-47],[12,4],[6,43],[-8,21],[-2,45],[35,24],[-4,27],[10,19],[10,-41],[19,-1],[18,-33],[1,-20],[25,0],[30,6],[16,-27],[21,-7],[16,18],[0,15],[34,4],[34,1],[-24,-18],[10,-28],[22,-4],[21,-29],[4,-48],[15,2],[11,-14]],[[8001,6331],[-37,-51],[-24,-56],[-6,-41],[22,-62],[25,-77],[26,-37],[17,-47],[12,-109],[-3,-104],[-24,-39],[-31,-38],[-23,-49],[-35,-55],[-10,37],[8,40],[-21,34]],[[9661,4085],[-9,-8],[-9,26],[1,16],[17,-34]],[[9641,4175],[4,-47],[-7,7],[-6,-3],[-4,16],[0,45],[13,-18]],[[6475,6041],[-21,-16],[-5,-26],[-1,-20],[-27,-25],[-45,-28],[-24,-41],[-13,-3],[-8,3],[-16,-25],[-18,-11],[-23,-3],[-7,-3],[-6,-16],[-8,-4],[-4,-15],[-14,1],[-9,-8],[-19,3],[-7,35],[1,32],[-5,17],[-5,44],[-8,24],[5,3],[-2,27],[3,12],[-1,25]],[[5817,3752],[11,0],[14,-10],[9,7],[15,-6]],[[5911,3478],[-7,-43],[-3,-49],[-7,-27],[-19,-30],[-5,-8],[-12,-30],[-8,-31],[-16,-42],[-31,-61],[-20,-36],[-21,-26],[-29,-23],[-14,-3],[-3,-17],[-17,9],[-14,-11],[-30,11],[-17,-7],[-12,3],[-28,-23],[-24,-10],[-17,-22],[-13,-1],[-11,21],[-10,1],[-12,26],[-1,-8],[-4,16],[0,34],[-9,40],[9,11],[0,45],[-19,55],[-14,50],[0,1],[-20,76]],[[5840,4141],[-21,-8],[-15,-23],[-4,-21],[-10,-4],[-24,-49],[-15,-38],[-10,-2],[-9,7],[-31,7]]],transform:{scale:[.036003600360036005,.016927109510951093],translate:[-180,-85.609038]}}},{}],158:[function(t,e,n){"use strict";angular.module("unifi-datamap",["unifi"]),t("./services/Datamap.js")},{"./services/Datamap.js":159}],159:[function(t,e,n){"use strict"; // Code ported from https://github.com/markmarkoh/datamaps on MIT license angular.module("unifi-datamap").factory("Datamap",["d3",function(e){var n=t("topojson"),o={scope:"world",responsive:!1,aspectRatio:.5625,setProjection:function(t,n){var o,r,i=n.width||t.offsetWidth,a=n.height||t.offsetHeight,s=this.svg;n&&void 0===n.scope&&(n.scope="world");if("usa"===n.scope)o=e.geoAlbersUsa().scale(i).translate([i/2,a/2]);else if("world"===n.scope){var l=n.projection;l="geo"+l.charAt(0).toUpperCase()+l.slice(1),o=e[l]().scale((i+1)/2/Math.PI).translate([i/2,a/("mercator"===n.projection?1.45:1.8)])}"orthographic"===n.projection&&(s.append("defs").append("path").datum({type:"Sphere"}).attr("id","sphere").attr("d",r),s.append("use").attr("class","stroke").attr("xlink:href","#sphere"),s.append("use").attr("class","fill").attr("xlink:href","#sphere"),o.scale(250).clipAngle(90).rotate(n.projectionConfig.rotation));return{path:r=e.geoPath().projection(o),projection:o}},projection:"equirectangular",dataType:"json",data:{},done:function(){},fills:{defaultFill:"#ABDDA4"},filters:{},geographyConfig:{dataUrl:null,hideAntarctica:!0,hideHawaiiAndAlaska:!1,borderWidth:1,borderOpacity:1,borderColor:"#FDFDFD",popupTemplate:function(t){return'<div class="hoverinfo"><strong>'+t.properties.name+"</strong></div>"},popupOnHover:!0,highlightOnHover:!0,highlightFillColor:"#FC8D59",highlightBorderColor:"rgba(250, 15, 160, 0.2)",highlightBorderWidth:2,highlightBorderOpacity:1},projectionConfig:{rotation:[97,0]},bubblesConfig:{borderWidth:2,borderOpacity:1,borderColor:"#FFFFFF",popupOnHover:!0,radius:null,popupTemplate:function(t,e){return'<div class="hoverinfo"><strong>'+e.name+"</strong></div>"},fillOpacity:.75,animate:!0,highlightOnHover:!0,highlightFillColor:"#FC8D59",highlightBorderColor:"rgba(250, 15, 160, 0.2)",highlightBorderWidth:2,highlightBorderOpacity:1,highlightFillOpacity:.85,exitDelay:100,key:JSON.stringify},arcConfig:{strokeColor:"#DD1C77",strokeWidth:1,arcSharpness:1,animationSpeed:600,popupOnHover:!1,popupTemplate:function(t,e){return e.origin&&e.destination&&e.origin.latitude&&e.origin.longitude&&e.destination.latitude&&e.destination.longitude?'<div class="hoverinfo"><strong>Arc</strong><br>Origin: '+JSON.stringify(e.origin)+"<br>Destination: "+JSON.stringify(e.destination)+"</div>":e.origin&&e.destination?'<div class="hoverinfo"><strong>Arc</strong><br>'+e.origin+" -> "+e.destination+"</div>":""}}};function r(t,e,n){void 0===n&&(n=e);var o=void 0!==t?t:e;if(void 0===o)return null;if("function"==typeof o){var r=[n];return n.geography&&(r=[n.geography,n.data]),o.apply(null,r)}return o}function i(){var t=this.svg,n=void 0,o=void 0,r=e.zoom().on("zoom",function(){o=e.event.transform,t.selectAll("g").attr("transform",e.event.transform)});this.fitZoom=function(){o||e.event&&e.event.transform?t.selectAll("g").attr("transform",o||e.event.transform):function(){n=n||t.node().getBoundingClientRect().width;var i=t.node().getBoundingClientRect().width,a=.4*i/2,s=.25*t.node().getBoundingClientRect().height;r.transform(t,e.zoomIdentity.translate(a,s).scale(.6*i/n)),o=void 0}()},t.call(r)}function a(t,n){if(n=n||{},this.options.fills){var o="<dl>",r="";for(var i in n.legendTitle&&(o="<h2>"+n.legendTitle+"</h2>"+o),this.options.fills){if("defaultFill"===i){if(!n.defaultFillName)continue;r=n.defaultFillName}else r=n.labels&&n.labels[i]?n.labels[i]:i+": ";o+="<dt>"+r+"</dt>",o+='<dd style="background-color:'+this.options.fills[i]+'"> </dd>'}o+="</dl>",e.select(this.options.element).append("div").attr("class","datamaps-legend").html(o)}}function s(){var t=e.geoGraticule();this.svg.insert("path",".datamaps-subunits").datum(t).attr("class","datamaps-graticule").attr("d",this.path)}function l(t,n,i){var a=this,s=this.svg;if(!n||n&&!n.slice)throw"Datamaps Error - arcs must be an array";for(var l=0;l<n.length;l++)n[l]=p(n[l],n[l].options),delete n[l].options;void 0===i&&(i=o.arcConfig);var u=t.selectAll("path.datamaps-arc").data(n,JSON.stringify),c=e.geoPath().projection(a.projection);u.enter().append("svg:path").attr("class",function(t){return"datamaps-arc"+(t.strokeCss?" "+t.strokeCss:"")}).style("stroke-linecap","round").style("stroke",function(t){return r(t.strokeColor,i.strokeColor,t)}).style("fill","none").style("stroke-width",function(t){return r(t.strokeWidth,i.strokeWidth,t)}).attr("d",function(t){var n,o;if("string"==typeof t.origin)switch(t.origin){case"CAN":n=a.latLngToXY(56.624472,-114.665293);break;case"CHL":n=a.latLngToXY(-33.44889,-70.669265);break;case"HRV":n=a.latLngToXY(45.815011,15.981919);break;case"IDN":n=a.latLngToXY(-6.208763,106.845599);break;case"JPN":n=a.latLngToXY(35.689487,139.691706);break;case"MYS":n=a.latLngToXY(3.139003,101.686855);break;case"NOR":n=a.latLngToXY(59.913869,10.752245);break;case"USA":n=a.latLngToXY(41.140276,-100.760145);break;case"VNM":n=a.latLngToXY(21.027764,105.83416);break;default:n=a.path.centroid(s.select("path."+t.origin).data()[0])}else n=a.latLngToXY(r(t.origin.latitude,t),r(t.origin.longitude,t));if("string"==typeof t.destination)switch(t.destination){case"CAN":o=a.latLngToXY(56.624472,-114.665293);break;case"CHL":o=a.latLngToXY(-33.44889,-70.669265);break;case"HRV":o=a.latLngToXY(45.815011,15.981919);break;case"IDN":o=a.latLngToXY(-6.208763,106.845599);break;case"JPN":o=a.latLngToXY(35.689487,139.691706);break;case"MYS":o=a.latLngToXY(3.139003,101.686855);break;case"NOR":o=a.latLngToXY(59.913869,10.752245);break;case"USA":o=a.latLngToXY(41.140276,-100.760145);break;case"VNM":o=a.latLngToXY(21.027764,105.83416);break;default:o=a.path.centroid(s.select("path."+t.destination).data()[0])}else o=a.latLngToXY(r(t.destination.latitude,t),r(t.destination.longitude,t));if(i.greatArc){var l=e.geoGreatArc().source(function(t){return[r(t.origin.longitude,t),r(t.origin.latitude,t)]}).target(function(t){return[r(t.destination.longitude,t),r(t.destination.latitude,t)]});return c(l(t))}var u,p=o[0]-n[0],d=o[1]-n[1],f=[n[0]+p/2,n[1]+d/2],h=r(t.arcSharpness,i.arcSharpness,t)*Math.sqrt(p*p+d*d),g=Math.atan2(d,p)+Math.PI/2;return u=Math.sin(g)>0?[f[0]-Math.cos(g)*h,f[1]-Math.sin(g)*h]:[f[0]+Math.cos(g)*h,f[1]+Math.sin(g)*h],"M"+n[0]+","+n[1]+"Q"+u[0]+","+u[1]+" "+o[0]+","+o[1]}).attr("data-info",function(t){return JSON.stringify(t)}).on("mouseover",function(t){var n=e.select(this);i.popupOnHover&&a.updatePopup(n,t,i,s)}).on("mouseout",function(){e.selectAll(".datamaps-hoverover").style("display","none")}).transition().delay(100).style("fill",function(t){var e=this.getTotalLength();return this.style.transition=this.style.WebkitTransition="none",this.style.strokeDasharray=e+" "+e,this.style.strokeDashoffset=e,this.getBoundingClientRect(),this.style.transition=this.style.WebkitTransition="stroke-dashoffset "+r(t.animationSpeed,i.animationSpeed,t)+"ms ease-out",this.style.strokeDashoffset="0","none"}),u.exit().transition().style("opacity",0).remove()}function u(t,e){var n=this;e=e||{};var o=this.projection([-67.707617,42.722131]);this.svg.selectAll(".datamaps-subunit").attr("data-foo",function(r){var i,a,s=n.path.centroid(r),l=7.5,u=5;["FL","KY","MI"].indexOf(r.id)>-1&&(l=-2.5),"NY"===r.id&&(l=-1),"MI"===r.id&&(u=18),"LA"===r.id&&(l=13),i=s[0]-l,a=s[1]+u;var c=["VT","NH","MA","RI","CT","NJ","DE","MD","DC"].indexOf(r.id);if(c>-1){var p=o[1];i=o[0],a=p+c*(2+(e.fontSize||12)),t.append("line").attr("x1",i-3).attr("y1",a-5).attr("x2",s[0]).attr("y2",s[1]).style("stroke",e.labelColor||"#000").style("stroke-width",e.lineWidth||1)}return t.append("text").attr("x",i).attr("y",a).style("font-size",(e.fontSize||10)+"px").style("font-family",e.fontFamily||"Verdana").style("fill",e.labelColor||"#000").text(function(){return e.customLabelText&&e.customLabelText[r.id]?e.customLabelText[r.id]:r.id}),"bar"})}function c(t,n,o){var i=this,a=this.options.fills,s=this.options.filters,l=this.svg;if(!n||n&&!n.slice)throw"Datamaps Error - bubbles must be an array";var u=t.selectAll("circle.datamaps-bubble").data(n,o.key);function c(t){return void 0!==t&&void 0!==t.latitude&&void 0!==t.longitude}u.enter().append("svg:circle").attr("class","datamaps-bubble").attr("cx",function(t){var e;return c(t)?e=i.latLngToXY(t.latitude,t.longitude):t.centered&&(e="USA"===t.centered?i.projection([-98.58333,39.83333]):i.path.centroid(l.select("path."+t.centered).data()[0])),e&&e[0]}).attr("cy",function(t){var e;return c(t)?e=i.latLngToXY(t.latitude,t.longitude):t.centered&&(e="USA"===t.centered?i.projection([-98.58333,39.83333]):i.path.centroid(l.select("path."+t.centered).data()[0])),e&&e[1]}).attr("r",function(t){return o.animate?0:r(t.radius,o.radius,t)}).attr("data-info",function(t){return JSON.stringify(t)}).attr("filter",function(t){return s[r(t.filterKey,o.filterKey,t)]}).style("stroke",function(t){return r(t.borderColor,o.borderColor,t)}).style("stroke-width",function(t){return r(t.borderWidth,o.borderWidth,t)}).style("stroke-opacity",function(t){return r(t.borderOpacity,o.borderOpacity,t)}).style("fill-opacity",function(t){return r(t.fillOpacity,o.fillOpacity,t)}).style("fill",function(t){return a[r(t.fillKey,o.fillKey,t)]||a.defaultFill}).on("mouseover",function(t){var n=e.select(this);if(o.highlightOnHover){var a={fill:n.style("fill"),stroke:n.style("stroke"),"stroke-width":n.style("stroke-width"),"fill-opacity":n.style("fill-opacity")};n.style("fill",r(t.highlightFillColor,o.highlightFillColor,t)).style("stroke",r(t.highlightBorderColor,o.highlightBorderColor,t)).style("stroke-width",r(t.highlightBorderWidth,o.highlightBorderWidth,t)).style("stroke-opacity",r(t.highlightBorderOpacity,o.highlightBorderOpacity,t)).style("fill-opacity",r(t.highlightFillOpacity,o.highlightFillOpacity,t)).attr("data-previousAttributes",JSON.stringify(a))}o.popupOnHover&&i.updatePopup(n,t,o,l)}).on("mouseout",function(){var t=e.select(this);if(o.highlightOnHover){var n=JSON.parse(t.attr("data-previousAttributes"));for(var r in n)t.style(r,n[r])}e.selectAll(".datamaps-hoverover").style("display","none")}),u.transition().duration(400).attr("r",function(t){return r(t.radius,o.radius,t)}).transition().duration(0).attr("data-info",function(t){return JSON.stringify(t)}),u.exit().transition().delay(o.exitDelay).attr("r",0).remove()}function p(t){return Array.prototype.slice.call(arguments,1).forEach(function(e){if(e)for(var n in e)null==t[n]&&("function"==typeof e[n]?t[n]=e[n]:t[n]=JSON.parse(JSON.stringify(e[n])))}),t}function d(t){if(void 0===e||void 0===n)throw new Error("Include d3.js (v3.0.3 or greater) and topojson on this page before creating a new map");return this.options=p(t,o),this.options.geographyConfig=p(t.geographyConfig,o.geographyConfig),this.options.projectionConfig=p(t.projectionConfig,o.projectionConfig),this.options.bubblesConfig=p(t.bubblesConfig,o.bubblesConfig),this.options.arcConfig=p(t.arcConfig,o.arcConfig),function(t,n,o){return this.svg=e.select(t).append("svg").attr("width",o||t.offsetWidth).attr("data-width",o||t.offsetWidth).attr("class","datamap").attr("height",n||t.offsetHeight).style("overflow","hidden"),this.options.responsive&&(e.select(this.options.element).style({position:"relative","padding-bottom":100*this.options.aspectRatio+"%"}),e.select(this.options.element).select("svg").style({position:"absolute",width:"100%",height:"100%"}),e.select(this.options.element).select("svg").select("g").selectAll("path").style("vector-effect","non-scaling-stroke")),this.svg}.call(this,this.options.element,this.options.height,this.options.width),this.options.zoomable&&i.call(this),this.addPlugin("bubbles",c),this.addPlugin("legend",a),this.addPlugin("arc",l),this.addPlugin("labels",u),this.addPlugin("graticule",s),this.options.disableDefaultStyles||e.select(".datamaps-style-block").empty()&&e.select("head").append("style").attr("class","datamaps-style-block").html('.datamap path.datamaps-graticule { fill: none; stroke: #777; stroke-width: 0.5px; stroke-opacity: .5; pointer-events: none; } .datamap .labels {pointer-events: none;} .datamap path:not(.datamaps-arc), .datamap circle, .datamap line {stroke: #FFFFFF; vector-effect: non-scaling-stroke; stroke-width: 1px;} .datamaps-legend dt, .datamaps-legend dd { float: left; margin: 0 3px 0 0;} .datamaps-legend dd {width: 20px; margin-right: 6px; border-radius: 3px;} .datamaps-legend {padding-bottom: 20px; z-index: 1001; position: absolute; left: 4px; font-size: 12px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;} .datamaps-hoverover {display: none; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } .hoverinfo {padding: 4px; border-radius: 1px; background-color: #FFF; box-shadow: 1px 1px 5px #CCC; font-size: 12px; border: 1px solid #CCC; } .hoverinfo hr {border:1px dotted #CCC; }'),this.draw()}return d.prototype.resize=function(){var t=this.options;if(t.responsive){var n=t.element.clientWidth,o=e.select(t.element).select("svg").attr("data-width");e.select(t.element).select("svg").selectAll("g").attr("transform","scale("+n/o+")")}},d.prototype.draw=function(){var t=this,o=t.options,i=o.setProjection.apply(this,[o.element,o]);return this.path=i.path,this.projection=i.projection,o.geographyConfig.dataUrl?e.json(o.geographyConfig.dataUrl,function(e,n){if(e)throw new Error(e);t.customTopo=n,a(n)}):a(this[o.scope+"Topo"]||o.geographyConfig.dataJson),this;function a(o){t.options.dataUrl&&e[t.options.dataType](t.options.dataUrl,function(e){if("csv"===t.options.dataType&&e&&e.slice){for(var n={},o=0;o<e.length;o++)n[e[o].id]=e[o];e=n}d.prototype.updateChoropleth.call(t,e)}),function(t){var e=this.options.fills,o=this.options.data||{},i=this.options.geographyConfig,a=this.svg.select("g.datamaps-subunits");a.empty()&&(a=this.addLayer("datamaps-subunits",null,!0));var s=n.feature(t,t.objects[this.options.scope]).features;i.hideAntarctica&&(s=s.filter(function(t){return"ATA"!==t.id})),i.hideHawaiiAndAlaska&&(s=s.filter(function(t){return"HI"!==t.id&&"AK"!==t.id})),a.selectAll("path.datamaps-subunit").data(s).enter().append("path").attr("d",this.path).attr("class",function(t){return"datamaps-subunit "+t.id}).attr("data-info",function(t){return JSON.stringify(o[t.id])}).style("fill",function(t){var n,i=o[t.id];return i&&i.fillKey&&(n=e[r(i.fillKey,{data:o[t.id],geography:t})]),void 0===n&&(n=r(i&&i.fillColor,e.defaultFill,{data:o[t.id],geography:t})),n}).style("stroke-width",i.borderWidth).style("stroke-opacity",i.borderOpacity).style("stroke",i.borderColor)}.call(t,o),function(){var t=this.svg,n=this,o=this.options.geographyConfig;(o.highlightOnHover||o.popupOnHover)&&t.selectAll(".datamaps-subunit").on("mouseover",function(i){var a=e.select(this),s=n.options.data[i.id]||{};if(o.highlightOnHover){var l={fill:a.style("fill"),stroke:a.style("stroke"),"stroke-width":a.style("stroke-width"),"fill-opacity":a.style("fill-opacity")};a.style("fill",r(s.highlightFillColor,o.highlightFillColor,s)).style("stroke",r(s.highlightBorderColor,o.highlightBorderColor,s)).style("stroke-width",r(s.highlightBorderWidth,o.highlightBorderWidth,s)).style("stroke-opacity",r(s.highlightBorderOpacity,o.highlightBorderOpacity,s)).style("fill-opacity",r(s.highlightFillOpacity,o.highlightFillOpacity,s)).attr("data-previousAttributes",JSON.stringify(l)),/((MSIE)|(Trident))/.test(navigator.userAgent)||function(){this.parentNode.appendChild(this)}.call(this)}o.popupOnHover&&n.updatePopup(a,i,o,t)}).on("mouseout",function(){var t=e.select(this);if(o.highlightOnHover){var n=JSON.parse(t.attr("data-previousAttributes"));for(var r in n)t.style(r,n[r])}t.on("mousemove",null),e.selectAll(".datamaps-hoverover").style("display","none")})}.call(t),(t.options.geographyConfig.popupOnHover||t.options.bubblesConfig.popupOnHover)&&e.select(t.options.element).append("div").attr("class","datamaps-hoverover").style("z-index",10001).style("position","absolute"),t.options.done(t)}},d.prototype.worldTopo=t("../data/world.topo.json"),d.prototype.latLngToXY=function(t,e){return this.projection([e,t])},d.prototype.addLayer=function(t,e,n){return(n?this.svg.insert("g",":first-child"):this.svg.append("g")).attr("id",e||"").attr("class",t||"")},d.prototype.updateChoropleth=function(t,e){var n=this.svg;for(var o in e&&!0===e.reset&&n.selectAll(".datamaps-subunit").attr("data-info",function(){return"{}"}).transition().style("fill",this.options.fills.defaultFill),t)if(t.hasOwnProperty(o)){var r,i=t[o];if(!o)continue;r="string"==typeof i?i:"string"==typeof i.color?i.color:"string"==typeof i.fillColor?i.fillColor:this.options.fills[i.fillKey],i===Object(i)&&(this.options.data[o]=p(i,this.options.data[o]||{}),this.svg.select("."+o).attr("data-info",JSON.stringify(this.options.data[o]))),n.selectAll("."+o).transition().style("fill",r)}},d.prototype.updatePopup=function(t,n,o){var r=this;t.on("mousemove",null),t.on("mousemove",function(){var i=e.mouse(r.options.element);e.select(r.svg.node().parentNode).select(".datamaps-hoverover").style("top",i[1]+30+"px").html(function(){var e=JSON.parse(t.attr("data-info"));try{return o.popupTemplate(n,e)}catch(t){return""}}).style("left",i[0]+"px")}),e.select(r.svg.node().parentNode).select(".datamaps-hoverover").style("display","block")},d.prototype.addPlugin=function(t,e){var n=this;void 0===d.prototype[t]&&(d.prototype[t]=function(o,r,i,a){var s;void 0===a&&(a=!1),"function"==typeof r&&(i=r,r=void 0),r=p(r||{},n.options[t+"Config"]),!a&&this.options[t+"Layer"]?(s=this.options[t+"Layer"],r=r||this.options[t+"Options"]):(s=this.addLayer(t),this.options[t+"Layer"]=s,this.options[t+"Options"]=r),e.apply(this,[s,o,r]),i&&i(s)})},d}])},{"../data/world.topo.json":157,topojson:6}],160:[function(t,e,n){"use strict";angular.module("unifi-zopim").value("ZOPIM_ID","2Py4AB4RxBBmRdbSCUfXLEGB4dT4YLxm")},{}],161:[function(t,e,n){"use strict";angular.module("unifi-zopim").constant("ZOPIM_DEFAULTS",{DEPARTMENT:"UniFi Controller"})},{}],162:[function(t,e,n){"use strict";angular.module("unifi-zopim").constant("ZOPIM_EVENTS",{OPEN_ZOPIM:"open-zopim"})},{}],163:[function(t,e,n){"use strict";angular.module("unifi-zopim").directive("zopimSideNav",["$interval","$q","$timeout","$window","zopim","ZOPIM_EVENTS",function(e,n,o,r,i,a){return{template:t("./zopimSideNav.pug")(),restrict:"E",replace:!0,scope:{label:"=zopimSideNavLabel",zopimConfig:"=?zopimSideNavConfig",unifiStyle:"=?zopimSideNavUnifiStyle"},link:function(t){t.zopim=i;var r,s=t.zopimConfig||{},l=function(){return r||(r=n.defer(),i.initialize(s),t.zopimLoadingInterval=e(function(){2===document.querySelectorAll(".zopim iframe").length&&i.getLivechat()&&(e.cancel(t.zopimLoadingInterval),t.zopimLoadingInterval=void 0,r.resolve())},100)),r.promise};t.$on(a.OPEN_ZOPIM,function(){l().then(function(){i.getDisplay()||(i.toggle(),t.applyStyles())})}),s.initializeOnStart&&o(function(){l().then(function(){i.getDisplay()||(i.toggle(),t.applyStyles())})},s.initializeOnStart),t.toggle=function(){l().then(function(){i.toggle(),t.applyStyles()})},t.applyStyles=function(){if(t.unifiStyle){var e=document.querySelectorAll(".zopim iframe")[1];if(e&&!t.stylesApplied){var n=e.contentDocument?e.contentDocument:e.contentWindow.document,o=[".meshim_widget_components_ChatWindow {color: #ffffff}",".meshim_widget_components_chatWindow_MainStack {box-shadow: none}",".meshim_widget_components_chatWindow_MainStack.ms_bl {border-radius: 0}",".meshim_widget_widgets_TitleBar {background: none; height: auto;}",".meshim_widget_widgets_TitleBar.bl {border-radius: 0}",".meshim_widget_widgets_TitleBar .border_overlay {display: none}",".meshim_widget_widgets_TitleBar .title {line-height: normal; text-align: left; font-size: 16px; font-weight: 300; text-transform: uppercase}",".meshim_widget_widgets_TitleBar.ltr .title {padding: 15px 40px 0 20px;}",".meshim_widget_widgets_TitleBar.rtl .title {padding: 15px 20px 0 40px;}",".meshim_widget_widgets_titleBar_MinimizeButton {text-align: center; vertical-align: middle}",".meshim_widget_widgets_titleBar_MinimizeButton .bar {width: auto; height: auto; margin: auto; color: white; background: none; font-size: 10px}",'.meshim_widget_widgets_titleBar_MinimizeButton .bar:before {content: "\\2573"; display: inline-block;}',".meshim_widget_widgets_BorderOverlay {display: none}",".meshim_widget_widgets_TitleBar .icons > div:first-child {display: none}",".meshim_widget_components_chatWindow_PreChatOfflineForm {background: rgba(30, 36, 44, 0.95); border-radius: 0px}",".meshim_widget_components_chatWindow_PreChatOfflineForm.has_title_bar {padding-top: 50px}",".meshim_widget_components_chatWindow_PreChatOfflineForm .meshim_widget_widgets_FakeInput {color: #666}",".meshim_widget_widgets_ActionBar {background: none}",".meshim_widget_widgets_ActionBar .border_overlay {border: none}",".meshim_widget_widgets_actionBar_DefaultActionBar {background: none}",".meshim_widget_components_chatWindow_PreChatOfflineForm .container {background: none; border: none}",'.meshim_widget_Widget input:not([type="submit"]) {background: rgba(15, 20, 23, 0.8); border-radius: 3px; border: none; color: #ddd}',".meshim_widget_Widget textarea {background: rgba(15, 20, 23, 0.8); border-radius: 3px; border: none; color: #ddd;}",".meshim_widget_Widget .select_container {background: rgba(15, 20, 23, 0.8); border-radius: 3px; border: none; color: #ddd;}",".meshim_widget_widgets_FakeInput {background: rgba(15, 20, 23, 0.8); border-radius: 3px; border: none; color: #ddd; box-shadow: none !important;}",".meshim_widget_widgets_Bottom {border: none; padding: 10px 20px 0; text-align: right}",".meshim_widget_widgets_Bottom.bottom_large {padding-left:20px; padding-right: 20px}",'.meshim_widget_Widget input[type="submit"],',".meshim_widget_widgets_Button:active,",".meshim_widget_widgets_Button:focus,",".meshim_widget_widgets_Button:hover,",".meshim_widget_widgets_Button {background: #006fff; border-color: #006fff; color: #ffffff; box-shadow: none}",'.meshim_widget_Widget input[type="submit"],',".meshim_widget_widgets_Button {border-radius: 20px; border: 1px solid #006fff; font-size: 11px; padding: 7px 24px !important; font-weight: 300}",".meshim_widget_widgets_Button.secondary:active,",".meshim_widget_widgets_Button.secondary:focus,",".meshim_widget_widgets_Button.secondary:hover,",".meshim_widget_widgets_Button.secondary {background: #31373a; border: 1px solid #2c3234}",".meshim_widget_widgets_chatLogRenderer_Button.secondary:active,",".meshim_widget_widgets_chatLogRenderer_Button.secondary:focus,",".meshim_widget_widgets_chatLogRenderer_Button.secondary:hover,",".meshim_widget_widgets_chatLogRenderer_Button.secondary {background: #31373a; border: 1px solid #2c3234; box-shadow: none}",".meshim_widget_components_chatWindow_ChatPanel {background: rgba(30, 36, 44, 0.95); border-radius: 0px}",".meshim_widget_components_chatWindow_ChatPanel .meshim_widget_widgets_TitleBar .title {display: none}",".meshim_widget_components_chatWindow_ChatPanel .chat_panel_container: {padding-bottom: 50px}",".meshim_widget_components_chatWindow_ChatPanel .chat_panel_container .served_by_container {border-bottom: 1px solid #3c5f87}",".meshim_widget_components_chatWindow_ChatPanel .container {background: none; border: none}",".meshim_widget_components_chatWindow_ChatPanel .meshim_widget_widgets_TitleBar {height: 24px}",".meshim_widget_widgets_chatLogRenderer_ChatBubble,",".meshim_widget_components_chatWindow_chatPanel_ChatLog .visitor .chat_bubble,",".meshim_widget_components_chatWindow_chatPanel_ChatLog .agent .chat_bubble {background: none; border: none; padding-left: 0; padding-right: 0; padding-top: 0; margin: 0}",".meshim_widget_components_chatWindow_chatPanel_ChatLog .visitor .chat_bubble {float: left !important; text-align: left}",".meshim_widget_components_chatWindow_chatPanel_ChatLog .agent .chat_bubble {float: right !important; text-align: right}",".meshim_widget_widgets_chatLogRenderer_BubbleAvatarRenderer .avatar_cell {display: none}",".meshim_widget_widgets_chatLogRenderer_ChatBubble .arrow_border {display: none}",".meshim_widget_widgets_chatLogRenderer_ChatBubble .arrow_background {display: none}",".meshim_widget_widgets_chatLogRenderer_ChatName .text_name {text-transform: uppercase; color: #888888; font-size: 0.8em}",".meshim_widget_components_chatWindow_chatPanel_ChatLog .group_head,",".meshim_widget_components_chatWindow_chatPanel_ChatLog .group_children.bubble_avatar,",".meshim_widget_components_chatWindow_chatPanel_ChatLogContainer .group_head {margin-top: 0}",".meshim_widget_components_chatWindow_chatPanel_ChatTextArea {border-top: none; padding-bottom: 5px}",".meshim_widget_widgets_chatLogRenderer_SystemLogRenderer.system_msg {margin: 10px 0; padding: 5px; background: rgba(0,0,0,0.2)}",".meshim_widget_widgets_AgentProfileCard .profile_name {font-size: 1.3em; line-height: 1em; color: white}",".meshim_widget_widgets_ScrollableFrame .scrollable_inner {padding-top: 0px !important}",".meshim_widget_components_chatWindow_AboutPanel {background: rgba(30, 36, 44, 0.95); border-radius: 0px}",".meshim_widget_components_chatWindow_AboutPanel .container {background: none; border: none}",".meshim_widget_components_chatWindow_AboutPanel .title {display: none}",".meshim_widget_components_chatWindow_AgentList {background: rgba(30, 36, 44, 0.95); border-radius: 0px; padding-bottom: 24px}",".meshim_widget_components_chatWindow_AgentList .container {background: none; border: none}",".meshim_widget_components_chatWindow_AgentList .title {display: none}",".meshim_widget_components_chatWindow_AgentList .profile_name {font-size: 1.3em; line-height: 1em; color: white}",".meshim_widget_components_chatWindow_RatingPanel {background: rgba(30, 36, 44, 0.95); border-radius: 0px}",".meshim_widget_components_chatWindow_RatingPanel .container {background: none; border: none}",".meshim_widget_components_chatWindow_RatingPanel .title {display: none}","button.wide,",'input[type="button"].wide,','input[type="submit"].wide {width: auto !important}'].join("\n");n.querySelectorAll("head").forEach(function(t){var e=document.createElement("style");e.type="text/css",e.name="ubntCss",e.styleSheet?e.styleSheet.cssText=o:e.appendChild(document.createTextNode(o)),t.appendChild(e)}),i.getLivechat().theme.setColor("#111111"),i.getLivechat().theme.setTheme("simple"),t.stylesApplied=!0}e&&(e.parentElement.style.borderRadius="5px")}}}}}])},{"./zopimSideNav.pug":164}],164:[function(t,e,n){t("pug-runtime");e.exports=function(t){var e="";return e+='<div class="ubntNavigation__item" ng-class="{\'is-item-selected\' : zopim.getDisplay() }" ng-click="toggle()"><unifi-aura-icon unifi-aura-icon="\'chat\'" unifi-aura-icon-class="[\'ubntIcon\', \'ubntIcon--navigation\']"></unifi-aura-icon><div class="ubntTooltip ubntTooltip--navigation" ng-show="!zopim.getDisplay()" translate="{{::label}}"></div></div>'}},{"pug-runtime":2}],165:[function(t,e,n){"use strict";angular.module("unifi-zopim",["pascalprecht.translate","unifi"]),t("./config/config.js"),t("./constants/ZOPIM_DEFAULTS.js"),t("./constants/ZOPIM_EVENTS.js"),t("./directives/zopimSideNav.js"),t("./services/zopim.js")},{"./config/config.js":160,"./constants/ZOPIM_DEFAULTS.js":161,"./constants/ZOPIM_EVENTS.js":162,"./directives/zopimSideNav.js":163,"./services/zopim.js":166}],166:[function(t,e,n){"use strict";angular.module("unifi-zopim").provider("zopim",function(){var t=function(t,e,n,o){t.livechat.hideAll(),t.livechat.button.setPosition(n.position||"bl"),t.livechat.window.setPosition(n.position||"bl"),t.livechat.window.setOffsetVertical(n.offsetVertical||20),t.livechat.window.setOffsetHorizontal(n.offsetHorizontal||55),t.livechat.window.setTitle(n.title||e.instant("ZOPIM_TITLE")),t.livechat.window.onHide(function(){t.livechat.hideAll()}),t.livechat.departments.setVisitorDepartment(n.department||o.DEPARTMENT),t.livechat.prechatForm.setGreetings(n.greetings||e.instant("ZOPIM_GREETINGS")),n.tags&&t.livechat.addTags(n.tags)};this.configureOnReady=function(e){t=e},this.$get=["$translate","$window","ZOPIM_ID","ZOPIM_DEFAULTS",function(e,n,o,r){function i(){}return i.prototype.initialize=function(i){var a,s,l,u,c;n.$zopim||(a=n.document,s="script",l=n.$zopim=function(t){l._.push(t)},u=l.s=a.createElement(s),c=a.getElementsByTagName(s)[0],l.set=function(t){l.set._.push(t)},l._=[],l.set._=[],u.async=!0,u.setAttribute("charset","utf-8"),u.src="//v2.zopim.com/?"+o,l.t=+new Date,u.type="text/javascript",c.parentNode.insertBefore(u,c)),n.$zopim&&n.$zopim(function(){t(n.$zopim,e,i,r)})},i.prototype.getLivechat=function(){return n.$zopim&&n.$zopim.livechat},i.prototype.getDisplay=function(){var t=this.getLivechat();return t&&t.window.getDisplay()},i.prototype.toggle=function(){var t=this.getLivechat();t&&(this.getDisplay()?t.hideAll():t.window.show())},new i}]})},{}]},{},[103]);
Simpan