diff --git a/prod/wasabee.meta.js b/prod/wasabee.meta.js index adec336d..edbf0003 100644 --- a/prod/wasabee.meta.js +++ b/prod/wasabee.meta.js @@ -2,7 +2,7 @@ // @id Wasabee.user.js // @name IITC plugin: Wasabee Draw Tools // @namespace https://wasabee.rocks/ -// @version 0.22.20230923194814 +// @version 0.22.20231025095536 // @updateURL https://cdn2.wasabee.rocks/iitcplugin/prod/wasabee.meta.js // @downloadURL https://cdn2.wasabee.rocks/iitcplugin/prod/wasabee.user.js // @description Wasabee is not for dating. diff --git a/prod/wasabee.user.js b/prod/wasabee.user.js index 28947258..cf07200b 100644 --- a/prod/wasabee.user.js +++ b/prod/wasabee.user.js @@ -2,7 +2,7 @@ // @id Wasabee.user.js // @name IITC plugin: Wasabee Draw Tools // @namespace https://wasabee.rocks/ -// @version 0.22.20230923194814 +// @version 0.22.20231025095536 // @updateURL https://cdn2.wasabee.rocks/iitcplugin/prod/wasabee.meta.js // @downloadURL https://cdn2.wasabee.rocks/iitcplugin/prod/wasabee.user.js // @description Wasabee is not for dating. @@ -24,7 +24,7 @@ function wrapper(plugin_info) { // Code injection function setup () { /*! For license information please see wasabee.user.js.LICENSE.txt */ -(()=>{var e={375:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"arrows-rotate",icon:[512,512,[128472,"refresh","sync"],"f021","M464 16c-17.67 0-32 14.31-32 32v74.09C392.1 66.52 327.4 32 256 32C161.5 32 78.59 92.34 49.58 182.2c-5.438 16.81 3.797 34.88 20.61 40.28c16.89 5.5 34.88-3.812 40.3-20.59C130.9 138.5 189.4 96 256 96c50.5 0 96.26 24.55 124.4 64H336c-17.67 0-32 14.31-32 32s14.33 32 32 32h128c17.67 0 32-14.31 32-32V48C496 30.31 481.7 16 464 16zM441.8 289.6c-16.92-5.438-34.88 3.812-40.3 20.59C381.1 373.5 322.6 416 256 416c-50.5 0-96.25-24.55-124.4-64H176c17.67 0 32-14.31 32-32s-14.33-32-32-32h-128c-17.67 0-32 14.31-32 32v144c0 17.69 14.33 32 32 32s32-14.31 32-32v-74.09C119.9 445.5 184.6 480 255.1 480c94.45 0 177.4-60.34 206.4-150.2C467.9 313 458.6 294.1 441.8 289.6z"]},t.T8=t.DF},789:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"asterisk",icon:[448,512,[10033,61545],"2a","M417.1 368c-5.937 10.27-16.69 16-27.75 16c-5.422 0-10.92-1.375-15.97-4.281L256 311.4V448c0 17.67-14.33 32-31.1 32S192 465.7 192 448V311.4l-118.3 68.29C68.67 382.6 63.17 384 57.75 384c-11.06 0-21.81-5.734-27.75-16c-8.828-15.31-3.594-34.88 11.72-43.72L159.1 256L41.72 187.7C26.41 178.9 21.17 159.3 29.1 144C36.63 132.5 49.26 126.7 61.65 128.2C65.78 128.7 69.88 130.1 73.72 132.3L192 200.6V64c0-17.67 14.33-32 32-32S256 46.33 256 64v136.6l118.3-68.29c3.838-2.213 7.939-3.539 12.07-4.051C398.7 126.7 411.4 132.5 417.1 144c8.828 15.31 3.594 34.88-11.72 43.72L288 256l118.3 68.28C421.6 333.1 426.8 352.7 417.1 368z"]},t.$X=t.DF},117:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"ban",icon:[512,512,[128683,"cancel"],"f05e","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM99.5 144.8C77.15 176.1 64 214.5 64 256C64 362 149.1 448 256 448C297.5 448 335.9 434.9 367.2 412.5L99.5 144.8zM448 256C448 149.1 362 64 256 64C214.5 64 176.1 77.15 144.8 99.5L412.5 367.2C434.9 335.9 448 297.5 448 256V256z"]},t.gP=t.DF},49:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M118.6 105.4l128 127.1C252.9 239.6 256 247.8 256 255.1s-3.125 16.38-9.375 22.63l-128 127.1c-9.156 9.156-22.91 11.9-34.88 6.943S64 396.9 64 383.1V128c0-12.94 7.781-24.62 19.75-29.58S109.5 96.23 118.6 105.4z"]},t.I4=t.DF},55:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"check",icon:[448,512,[10004,10003],"f00c","M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"]},t.LE=t.DF},98:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"desktop",icon:[576,512,[61704,128421,"desktop-alt"],"f390","M528 0h-480C21.5 0 0 21.5 0 48v320C0 394.5 21.5 416 48 416h192L224 464H152C138.8 464 128 474.8 128 488S138.8 512 152 512h272c13.25 0 24-10.75 24-24s-10.75-24-24-24H352L336 416h192c26.5 0 48-21.5 48-48v-320C576 21.5 554.5 0 528 0zM512 288H64V64h448V288z"]},t.tc=t.DF},755:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"eraser",icon:[512,512,[],"f12d","M480 416C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H150.6C133.7 480 117.4 473.3 105.4 461.3L25.37 381.3C.3786 356.3 .3786 315.7 25.37 290.7L258.7 57.37C283.7 32.38 324.3 32.38 349.3 57.37L486.6 194.7C511.6 219.7 511.6 260.3 486.6 285.3L355.9 416H480zM265.4 416L332.7 348.7L195.3 211.3L70.63 336L150.6 416L265.4 416z"]},t.xf=t.DF},610:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"left-right",icon:[512,512,[8596,"arrows-alt-h"],"f337","M503.1 273.6l-112 104c-6.984 6.484-17.17 8.219-25.92 4.406s-14.41-12.45-14.41-22v-56l-192 .001V360c0 9.547-5.656 18.19-14.41 22c-8.75 3.812-18.94 2.078-25.92-4.406l-112-104c-9.781-9.094-9.781-26.09 0-35.19l112-104c6.984-6.484 17.17-8.219 25.92-4.406C154 133.8 159.7 142.5 159.7 152v55.1l192-.001v-56c0-9.547 5.656-18.19 14.41-22s18.94-2.078 25.92 4.406l112 104C513.8 247.5 513.8 264.5 503.1 273.6z"]},t.Bq=t.DF},467:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"location-dot",icon:[384,512,["map-marker-alt"],"f3c5","M168.3 499.2C116.1 435 0 279.4 0 192C0 85.96 85.96 0 192 0C298 0 384 85.96 384 192C384 279.4 267 435 215.7 499.2C203.4 514.5 180.6 514.5 168.3 499.2H168.3zM192 256C227.3 256 256 227.3 256 192C256 156.7 227.3 128 192 128C156.7 128 128 156.7 128 192C128 227.3 156.7 256 192 256z"]},t.op=t.DF},102:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"palette",icon:[512,512,[127912],"f53f","M512 255.1C512 256.9 511.1 257.8 511.1 258.7C511.6 295.2 478.4 319.1 441.9 319.1H344C317.5 319.1 296 341.5 296 368C296 371.4 296.4 374.7 297 377.9C299.2 388.1 303.5 397.1 307.9 407.8C313.9 421.6 320 435.3 320 449.8C320 481.7 298.4 510.5 266.6 511.8C263.1 511.9 259.5 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256V255.1zM96 255.1C78.33 255.1 64 270.3 64 287.1C64 305.7 78.33 319.1 96 319.1C113.7 319.1 128 305.7 128 287.1C128 270.3 113.7 255.1 96 255.1zM128 191.1C145.7 191.1 160 177.7 160 159.1C160 142.3 145.7 127.1 128 127.1C110.3 127.1 96 142.3 96 159.1C96 177.7 110.3 191.1 128 191.1zM256 63.1C238.3 63.1 224 78.33 224 95.1C224 113.7 238.3 127.1 256 127.1C273.7 127.1 288 113.7 288 95.1C288 78.33 273.7 63.1 256 63.1zM384 191.1C401.7 191.1 416 177.7 416 159.1C416 142.3 401.7 127.1 384 127.1C366.3 127.1 352 142.3 352 159.1C352 177.7 366.3 191.1 384 191.1z"]},t.q2=t.DF},371:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32zM421.7 220.3L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3z"]},t.Iw=t.DF},986:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M480 288H32c-17.62 0-32 14.38-32 32v128c0 17.62 14.38 32 32 32h448c17.62 0 32-14.38 32-32v-128C512 302.4 497.6 288 480 288zM352 408c-13.25 0-24-10.75-24-24s10.75-24 24-24s24 10.75 24 24S365.3 408 352 408zM416 408c-13.25 0-24-10.75-24-24s10.75-24 24-24s24 10.75 24 24S429.3 408 416 408zM480 32H32C14.38 32 0 46.38 0 64v128c0 17.62 14.38 32 32 32h448c17.62 0 32-14.38 32-32V64C512 46.38 497.6 32 480 32zM352 152c-13.25 0-24-10.75-24-24S338.8 104 352 104S376 114.8 376 128S365.3 152 352 152zM416 152c-13.25 0-24-10.75-24-24S402.8 104 416 104S440 114.8 440 128S429.3 152 416 152z"]},t.xf=t.DF},619:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128H416L394.8 466.1z"]},t.$=t.DF},874:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},818:(e,t,a)=>{var o=a(874),n=a(851),i=Object.hasOwnProperty,r={};for(var s in o)i.call(o,s)&&(r[o[s]]=s);var l=e.exports={to:{},get:{}};function c(e,t,a){return Math.min(Math.max(t,e),a)}function d(e){var t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}l.get=function(e){var t,a;switch(e.substring(0,3).toLowerCase()){case"hsl":t=l.get.hsl(e),a="hsl";break;case"hwb":t=l.get.hwb(e),a="hwb";break;default:t=l.get.rgb(e),a="rgb"}return t?{model:a,value:t}:null},l.get.rgb=function(e){if(!e)return null;var t,a,n,r=[0,0,0,1];if(t=e.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(n=t[2],t=t[1],a=0;a<3;a++){var s=2*a;r[a]=parseInt(t.slice(s,s+2),16)}n&&(r[3]=parseInt(n,16)/255)}else if(t=e.match(/^#([a-f0-9]{3,4})$/i)){for(n=(t=t[1])[3],a=0;a<3;a++)r[a]=parseInt(t[a]+t[a],16);n&&(r[3]=parseInt(n+n,16)/255)}else if(t=e.match(/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)){for(a=0;a<3;a++)r[a]=parseInt(t[a+1],0);t[4]&&(t[5]?r[3]=.01*parseFloat(t[4]):r[3]=parseFloat(t[4]))}else{if(!(t=e.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)))return(t=e.match(/^(\w+)$/))?"transparent"===t[1]?[0,0,0,0]:i.call(o,t[1])?((r=o[t[1]])[3]=1,r):null:null;for(a=0;a<3;a++)r[a]=Math.round(2.55*parseFloat(t[a+1]));t[4]&&(t[5]?r[3]=.01*parseFloat(t[4]):r[3]=parseFloat(t[4]))}for(a=0;a<3;a++)r[a]=c(r[a],0,255);return r[3]=c(r[3],0,1),r},l.get.hsl=function(e){if(!e)return null;var t=e.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){var a=parseFloat(t[4]);return[(parseFloat(t[1])%360+360)%360,c(parseFloat(t[2]),0,100),c(parseFloat(t[3]),0,100),c(isNaN(a)?1:a,0,1)]}return null},l.get.hwb=function(e){if(!e)return null;var t=e.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){var a=parseFloat(t[4]);return[(parseFloat(t[1])%360+360)%360,c(parseFloat(t[2]),0,100),c(parseFloat(t[3]),0,100),c(isNaN(a)?1:a,0,1)]}return null},l.to.hex=function(){var e=n(arguments);return"#"+d(e[0])+d(e[1])+d(e[2])+(e[3]<1?d(Math.round(255*e[3])):"")},l.to.rgb=function(){var e=n(arguments);return e.length<4||1===e[3]?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"},l.to.rgb.percent=function(){var e=n(arguments),t=Math.round(e[0]/255*100),a=Math.round(e[1]/255*100),o=Math.round(e[2]/255*100);return e.length<4||1===e[3]?"rgb("+t+"%, "+a+"%, "+o+"%)":"rgba("+t+"%, "+a+"%, "+o+"%, "+e[3]+")"},l.to.hsl=function(){var e=n(arguments);return e.length<4||1===e[3]?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"},l.to.hwb=function(){var e=n(arguments),t="";return e.length>=4&&1!==e[3]&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"},l.to.keyword=function(e){return r[e.slice(0,3)]}},426:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-dialog button.drawb{border:2px solid #daa520;border-radius:35px;cursor:pointer;margin:auto 0 auto auto;padding:4px 17px;text-align:center;width:max-content}.wasabee-dialog-fanfield .container,.wasabee-dialog-flipflop .container,.wasabee-dialog-homogeneous .container,.wasabee-dialog-madrid .container,.wasabee-dialog-multimax .container,.wasabee-dialog-onion .container,.wasabee-dialog-savelinks .container,.wasabee-dialog-starburst .container{grid-gap:.2em .5em;align-items:center;display:grid;grid-template-columns:minmax(min-content,10em) min-content auto;max-width:700px}.wasabee-dialog-link .container{grid-gap:.2em .5em;align-items:center;display:grid;max-width:700px}.wasabee-dialog-fanfield label,.wasabee-dialog-flipflop label,.wasabee-dialog-link label,.wasabee-dialog-madrid label,.wasabee-dialog-multimax label,.wasabee-dialog-onion label,.wasabee-dialog-savelinks label,.wasabee-dialog-starburst label{grid-column:1;text-decoration:dotted underline}.wasabee-dialog-fanfield button,.wasabee-dialog-flipflop button,.wasabee-dialog-homogeneous button,.wasabee-dialog-link button,.wasabee-dialog-madrid button,.wasabee-dialog-multimax button,.wasabee-dialog-onion button,.wasabee-dialog-savelinks button,.wasabee-dialog-starburst button{cursor:pointer;grid-column:2;padding:4px}.wasabee-dialog-homogeneous .drawb{grid-column:4}.wasabee-dialog-link .drawb{grid-column:1/3}.wasabee-dialog-fanfield .drawb,.wasabee-dialog-flipflop .drawb,.wasabee-dialog-madrid .drawb,.wasabee-dialog-multimax .drawb,.wasabee-dialog-onion .drawb,.wasabee-dialog-savelinks .drawb,.wasabee-dialog-starburst .drawb{grid-column:3}.wasabee-dialog-fanfield .desc,.wasabee-dialog-flipflop .desc,.wasabee-dialog-madrid .desc,.wasabee-dialog-multimax .desc,.wasabee-dialog-onion .desc,.wasabee-dialog-savelinks .desc,.wasabee-dialog-starburst .desc{grid-column:1/4}.wasabee-dialog-fanfield .desc.secondary,.wasabee-dialog-starburst .desc.secondary{color:#d3d3d3}.wasabee-dialog-homogeneous .desc{grid-column:1/5}.wasabee-dialog-homogeneous .set-portal-display{grid-column:3/5}.wasabee-dialog-link .portal{grid-column:1/4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wasabee-dialog-link .add,.wasabee-dialog-link .desc{grid-column:3}",""]),e.exports=n},509:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".ui-dialog{max-width:calc(100vw - 2px)}.ui-dialog a.enl{color:#03fe03}.ui-dialog a.res{color:#00c5ff}.ui-dialog a.mac{color:#f74a4a}",""]),e.exports=n},283:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-tooltip{background:rgba(30,130,76,.66);border:1px solid transparent;-webkit-border-radius:4px;border-radius:4px;color:#fff;margin-left:20px;margin-top:-21px;padding:2px 4px;position:absolute;white-space:nowrap;z-index:6}.wasabee-tooltip:before{border-bottom:6px solid transparent;border-right:6px solid rgba(99,99,88,.66);border-top:6px solid transparent;content:\"\";left:-7px;position:absolute;top:7px}.wasabee-tooltip-single{margin-top:-12px}.wasabee-error-tooltip{background-color:#f2dede;border:1px solid #e6b6bd;color:#b94a48}.wasabee-error-tooltip:before{border-right-color:#e6b6bd}.ui-tooltip.wasabee-zone-tooltip:before{border:transparent}.leaflet-popup.wasabee-popup .leaflet-popup-content-wrapper{background:hsla(0,0%,92%,.75)!important;-webkit-border-radius:6px!important;font-weight:bolder}#map .wasabee-popup .leaflet-popup-content{color:#000}.wasabee-popup a.enl{color:#388e3c!important}.wasabee-popup a.res{color:#0087ff!important}.wasabee-popup a.mac{color:#8e1111!important}.wasabee-anchor-popup .info-block,.wasabee-link-popup .info-block{display:flex;flex-wrap:wrap;justify-content:space-between}.wasabee-link-popup .buttonset{display:grid}.wasabee-marker-popup div.desc{color:#000;overflow:hidden;padding:4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-popup-assignment{color:#000;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-popup-assignment a.wasabee-agent-label{margin-left:4px}.wasabee-marker-popup-kind{color:#000;margin-right:4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-marker-popup-comment{cursor:pointer;font-weight:400}.wasabee-marker-popup-comment:hover{text-decoration:underline}.wasabee-marker-popup-kind{cursor:pointer}.wasabee-marker-popup-kind:hover{text-decoration:underline}.wasabee-marker-buttonset button{display:block;width:100%}.wasabee-agent-popup div.desc{color:#000;overflow:hidden;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-agent-popup button{display:block;width:100%}.wasabee-agent-popup ul.assignments{color:#388e3c}.wasabee-agent-popup li.assignment{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wasabee-anchor-popup div.desc{color:#000;overflow:hidden;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-anchor-popup .key-missing{color:brown}.wasabee-anchor-buttonset{display:grid;grid-template-columns:1fr 1fr}.wasabee-anchor-buttonset button{grid-column:1/3;width:100%}.wasabee-anchor-buttonset button.swap{grid-column:1/2}.wasabee-anchor-buttonset button.duplicate{grid-column:2/3}.wasabee-wd-popup ul{padding-left:1em}.wasabee-marker-icon{background-size:cover}.wasabee-marker-icon.CapturePortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2385296a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2385296a'/%3E%3Cpath d='m86.734 110.528-7.736 5.429 86.863 169.397 9.735-4.428-44.828-87.224S205.842 193.538 236 142c4.003-6.841 7-16 7-16s-5.78 6.297-22 8c-24.16 2.537-104.488-3.399-131-21-2.099-1.394-3.266-2.472-3.266-2.472Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CapturePortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2385296a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2385296a'/%3E%3Cpath d='m86.734 110.528-7.736 5.429 86.863 169.397 9.735-4.428-44.828-87.224S205.842 193.538 236 142c4.003-6.841 7-16 7-16s-5.78 6.297-22 8c-24.16 2.537-104.488-3.399-131-21-2.099-1.394-3.266-2.472-3.266-2.472Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CapturePortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2385296a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2385296a'/%3E%3Cpath d='m86.734 110.528-7.736 5.429 86.863 169.397 9.735-4.428-44.828-87.224S205.842 193.538 236 142c4.003-6.841 7-16 7-16s-5.78 6.297-22 8c-24.16 2.537-104.488-3.399-131-21-2.099-1.394-3.266-2.472-3.266-2.472Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CapturePortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2385296a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2385296a'/%3E%3Cpath d='m86.734 110.528-7.736 5.429 86.863 169.397 9.735-4.428-44.828-87.224S205.842 193.538 236 142c4.003-6.841 7-16 7-16s-5.78 6.297-22 8c-24.16 2.537-104.488-3.399-131-21-2.099-1.394-3.266-2.472-3.266-2.472Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.LetDecayPortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%237d7d7d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%237d7d7d'/%3E%3Cpath d='M94 123s-1 32.333 3 43c3.732 9.953 26 21 26 21s-22.368 9.465-26 19c-4 10.5-3 44-3 44h-8v9h93v-8h-9s1.667-33.333-2-44c-3.222-9.372-25-20-25-20s21.894-9.822 25-19c3.667-10.833 2-46 2-46h9v-8H85v9h9Z' style='fill:%23fff' transform='translate(25 -4)'/%3E%3Cpath d='M130 245s-.835-4.053-.847-8.241c-.008-2.996-.595-7.06 1.847-7.759 6.934-1.985 20.167-3.333 27-17 3.683-7.365 5.957-23.188 2-31 0 0-19.667-8-24-16-1.564-2.887 15.077 7.331 27.892-.462C174.757 157.93 195 154 195 154s.36 10.553-7 16c-5.211 3.857-21 11-21 11l-2.519 24.418s.104 7.157 4.519 11.582c4.753 4.764 24.013 4.212 26 11 2 6.833 0 18 0 18l-65-1Z' style='fill:%237d7d7d' transform='translate(-5)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.LetDecayPortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%237d7d7d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%237d7d7d'/%3E%3Cpath d='M94 123s-1 32.333 3 43c3.732 9.953 26 21 26 21s-22.368 9.465-26 19c-4 10.5-3 44-3 44h-8v9h93v-8h-9s1.667-33.333-2-44c-3.222-9.372-25-20-25-20s21.894-9.822 25-19c3.667-10.833 2-46 2-46h9v-8H85v9h9Z' style='fill:%23fff' transform='translate(25 -4)'/%3E%3Cpath d='M130 245s-.835-4.053-.847-8.241c-.008-2.996-.595-7.06 1.847-7.759 6.934-1.985 20.167-3.333 27-17 3.683-7.365 5.957-23.188 2-31 0 0-19.667-8-24-16-1.564-2.887 15.077 7.331 27.892-.462C174.757 157.93 195 154 195 154s.36 10.553-7 16c-5.211 3.857-21 11-21 11l-2.519 24.418s.104 7.157 4.519 11.582c4.753 4.764 24.013 4.212 26 11 2 6.833 0 18 0 18l-65-1Z' style='fill:%237d7d7d' transform='translate(-5)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.LetDecayPortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%237d7d7d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%237d7d7d'/%3E%3Cpath d='M94 123s-1 32.333 3 43c3.732 9.953 26 21 26 21s-22.368 9.465-26 19c-4 10.5-3 44-3 44h-8v9h93v-8h-9s1.667-33.333-2-44c-3.222-9.372-25-20-25-20s21.894-9.822 25-19c3.667-10.833 2-46 2-46h9v-8H85v9h9Z' style='fill:%23fff' transform='translate(25 -4)'/%3E%3Cpath d='M130 245s-.835-4.053-.847-8.241c-.008-2.996-.595-7.06 1.847-7.759 6.934-1.985 20.167-3.333 27-17 3.683-7.365 5.957-23.188 2-31 0 0-19.667-8-24-16-1.564-2.887 15.077 7.331 27.892-.462C174.757 157.93 195 154 195 154s.36 10.553-7 16c-5.211 3.857-21 11-21 11l-2.519 24.418s.104 7.157 4.519 11.582c4.753 4.764 24.013 4.212 26 11 2 6.833 0 18 0 18l-65-1Z' style='fill:%237d7d7d' transform='translate(-5)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.LetDecayPortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%237d7d7d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%237d7d7d'/%3E%3Cpath d='M94 123s-1 32.333 3 43c3.732 9.953 26 21 26 21s-22.368 9.465-26 19c-4 10.5-3 44-3 44h-8v9h93v-8h-9s1.667-33.333-2-44c-3.222-9.372-25-20-25-20s21.894-9.822 25-19c3.667-10.833 2-46 2-46h9v-8H85v9h9Z' style='fill:%23fff' transform='translate(25 -4)'/%3E%3Cpath d='M130 245s-.835-4.053-.847-8.241c-.008-2.996-.595-7.06 1.847-7.759 6.934-1.985 20.167-3.333 27-17 3.683-7.365 5.957-23.188 2-31 0 0-19.667-8-24-16-1.564-2.887 15.077 7.331 27.892-.462C174.757 157.93 195 154 195 154s.36 10.553-7 16c-5.211 3.857-21 11-21 11l-2.519 24.418s.104 7.157 4.519 11.582c4.753 4.764 24.013 4.212 26 11 2 6.833 0 18 0 18l-65-1Z' style='fill:%237d7d7d' transform='translate(-5)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.DestroyPortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23b7222a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23b7222a'/%3E%3Ccircle cx='162.5' cy='183.5' r='65.5' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 34.835 45.392)'/%3E%3Cpath d='M159.5 136V86v50ZM159 230v50-50Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3Ccircle cx='159.5' cy='184.5' r='5.5' style='fill:%23fff' transform='translate(-84.175 -94.98) scale(1.52577)'/%3E%3Cpath d='M209 184h42-42Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 44.392)'/%3E%3Cpath d='M113 174.862H68A8.142 8.142 0 0 0 59.862 183 8.142 8.142 0 0 0 68 191.138h45a8.142 8.142 0 0 0 8.138-8.138 8.142 8.142 0 0 0-8.138-8.138Z' style='fill:%23fff' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.DestroyPortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23b7222a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23b7222a'/%3E%3Ccircle cx='162.5' cy='183.5' r='65.5' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 34.835 45.392)'/%3E%3Cpath d='M159.5 136V86v50ZM159 230v50-50Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3Ccircle cx='159.5' cy='184.5' r='5.5' style='fill:%23fff' transform='translate(-84.175 -94.98) scale(1.52577)'/%3E%3Cpath d='M209 184h42-42Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 44.392)'/%3E%3Cpath d='M113 174.862H68A8.142 8.142 0 0 0 59.862 183 8.142 8.142 0 0 0 68 191.138h45a8.142 8.142 0 0 0 8.138-8.138 8.142 8.142 0 0 0-8.138-8.138Z' style='fill:%23fff' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.DestroyPortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23b7222a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23b7222a'/%3E%3Ccircle cx='162.5' cy='183.5' r='65.5' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 34.835 45.392)'/%3E%3Cpath d='M159.5 136V86v50ZM159 230v50-50Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3Ccircle cx='159.5' cy='184.5' r='5.5' style='fill:%23fff' transform='translate(-84.175 -94.98) scale(1.52577)'/%3E%3Cpath d='M209 184h42-42Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 44.392)'/%3E%3Cpath d='M113 174.862H68A8.142 8.142 0 0 0 59.862 183 8.142 8.142 0 0 0 68 191.138h45a8.142 8.142 0 0 0 8.138-8.138 8.142 8.142 0 0 0-8.138-8.138Z' style='fill:%23fff' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.DestroyPortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23b7222a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23b7222a'/%3E%3Ccircle cx='162.5' cy='183.5' r='65.5' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 34.835 45.392)'/%3E%3Cpath d='M159.5 136V86v50ZM159 230v50-50Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3Ccircle cx='159.5' cy='184.5' r='5.5' style='fill:%23fff' transform='translate(-84.175 -94.98) scale(1.52577)'/%3E%3Cpath d='M209 184h42-42Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 44.392)'/%3E%3Cpath d='M113 174.862H68A8.142 8.142 0 0 0 59.862 183 8.142 8.142 0 0 0 68 191.138h45a8.142 8.142 0 0 0 8.138-8.138 8.142 8.142 0 0 0-8.138-8.138Z' style='fill:%23fff' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.FarmPortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23f17030'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23f17030'/%3E%3Cuse xlink:href='%23a' x='70' y='120' width='176' height='143'/%3E%3Cpath d='M122.538 112.791c-1.934-12.24 28.787-17.533 17.117.729 0 0 23.934-9.799 15.114 10.82-5.029 24.429-43.717.032-43.957-1.575-21.691-16.796 3.509-30.807 11.726-9.974Z' style='fill:%23fff'/%3E%3Cdefs%3E%3Cimage id='a' width='176' height='143' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACPCAYAAABam1EmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ1klEQVR4nO2dedwV1XnHvw+iKC8WxQVCYhAKDcSdYMEalQgYo2JKjBo1bqVaozVLmyZ2S6JNPs2KbTaN1hibj4qaD6BJRQRJlGjcUbHRmmgScQGXClYQZfn1jzP39Xq5+8ycMzN3vp/PeN93tue5w8/znjnnOc9j5AxJI4GxwGCgL9oGA08Dd5rZ2oDulXjGQjvQCkkG7AscC3wYeF+T07cADwPLgDuAW8xsXepOlpTUImmgpPMl/V7d86ykUyUNCP19SnoISdMkPRpDuLXcJ+ng0N+rpOBI2lPSvASFW8t1kiarbJFLkiYS1sspireaVZKukDRL0pDQ370k50j6kKR1nsRbywZJCyWdKWmb0M+iJGdIOk3SpkDireUBSQeFfiYlOUHSX4ZWbAN+KGn30M+npDXBxoEl7Q/cA2wXyocWrAHONLMFoR0paUwQAUvaEbgf+JMQ9jtgI3C0mS0O7UhJfbwPJ8nNrH2f7IsXYFtgvqQ/De1ISX1CjId+PNryQh9ws6QJoR0p2RqvXQhJ2wG/BfbwaTchHgX2M7MtoR0peQvfLfBJ5FO8AHsDx4d2ouTteGuB5aZvHwXy/Kf4cWBvM9sc2pESh88W+BjyLV6A8cDJoZ3IK5L+LLQPXSFpmFxEWJIsUBTLEH0uSPj+jXgk9PPMI5ImStoo6dTQvrSNpD5J/yBpTcIiuknSuBpb46L9PhgZ6pnmEUmDJT0WPbt1yvqIjqTtJJ0rF/WVNK9IOqaB3WOi42mTn1YkA0j6Ts3zWyFpcGi/tkLSAEknS3oyRfFc38KH61O0XeEqX88070g6ssEz/FQS90/kJU6SSToKeBC4GhiTxH0b8MuYx5NgutyMYkkTJO0KXNng8ElJ2IgtYLn+4GLgv4D9YnvUmgdjHk+CkcA7PNjJLdH/4JcBIxqcMlnS6Lh2YglY0gzgIWBaXEc64DcxjyfFKE928soZwKwW53wsrpGuBCxpG0kXAouA3eI60SEvxjyeFKWAGyBpFPDvbZwaW8ADO71A0ghcP/fwuMa7ZDdgdYvjPigFXAe5GdcrgR3bOH0fSX1xcnd01AJLmgosJ5x4AcbFPJ4UpYDr89fAB9o814D3xDHWtoAlnQfcRuNOuS8mxjyeFMM92ckNksYDX+vwsvfGsdmWgCXNBr7b7vkp8/6Yx5NikCc7uUDSQOAqYPsOL401K9dSkJI+Blwex0jCzFCTmThghic/SgG/nQuAblaupNcCSzoW+DHZSgK4E3C26sRCAGdHx31QCjhC0gHAF7u8/N1xbDcchZA0Hbih2TkBmQlsiaZ0F+Na3dOj/b4oBQxI+iPgOrrXyc5x7NdtWeUS4d2Ky7tbUp+HzOyA0E6EJJptu4Z447lrzKxrEW/VhZA0FjctXIq3OWULDGcRfzJiqGIkW3zbhZIG4f4cDI3pVC/Q0wKWtB/w7QRuZcTQW63yv4m/cdS807MClktMcz3JPYP4ApZ0HG4WpaQ9elLAUb/3UpJNTNPXht1xkg6T9LZx5gHRwTHAFQk61Av0pICB2SS/sLXh+5akkZIWAU8AvwAWStq2cnyAXLKRuZT93k4Zoh7LJyxpH+A7Kdy6bgss6UBc0Z4jqnZPBQ6r/DIA+CpwYApOFR3D36RJcKLVFfPpfKq4HbYScBTs/jNg1zrnf7Tyg0Xdh2E122hgCjApJYeLwnvM7InQTqRN1O9cAqRVKOcEM7uhyt4w4C4aR6q9CAw3Mw00s6eAp+qdFfU19sOJeQruC+yZoON5Z5fQDqRNVXxvmlWe+lvgaCh3Hs3DLHcDdgDWN53+M7ONuDy+9+Oi0ZD0LuAQ4NDoc684nuecwgsYuJAEVk60oA/6Rzh+SFUftwmDaSXgepjZM8C10VbpGx3MW4KeCPTKy82w0A6kiaQzgH/yYGqfSLxfpv0RjsGQQKCOmb0E3BhtyJWtOoi3BD2Z4vajC9sCSzocf2G0x+NWencSjJWMgGsxs9dwEWKLof8F4C6giIEvhRSwXOqnefiLRBxG55GEg8HDCgsz24Ab/C5iStLCdSEkDQduJvvzAjuApyVCZrYc+LoPW54pVAssqQ/XFdwzsCvt4KcFruIi3HRgkRgf2oGkkLQTLgZ8cmhf2sSvgKu6EkVi32gUJtfIFXX8OZCnBNTeW2DM7Je4YPkiMTW0A3GQtAdwB7B/aF86ZED/fzyTRBB0lgiZ5CUW0eqbZcRMLhKIYAJejCuWUhRm5DHVqqS9ceLNa4ahMAI2M5FOSF4oxuIK2OSGKEzxdsJnWYpDsBYY4D+BNwLZToOL4ixM9EmU324p+R/DDifgaLbugRC2U2J/4M9DO9EKSbOAhcCQ0L4kQNAWGOBXAW2nwYXVS12yhFzRnTm46eGixKX0QVgB3x3QdhrsDVyZta5ElGz6DuAzoX1JmNEQVsD3BLSdFqcA38vKqISkmbh8znmZXeuEsRBWwM8HtJ0m5wBfDSliSe+UNBe4iZi5xzLMWAicdVLSJoob/H41cEG0AMALUR/8fNwqiiK8qDVjIzA4tIBfo42kFjnmdeAbwDeikZdUiFr7GcC3cH3xXmFM6BeODYHtp80OwBeAJyTNjlarJIak7SWdicudsIjeEi/A2JD9tAHAenorw80m3OjLUly9kbvN7M1ObhC1tuNwCy3PA3ZP2skccW5IAY+guC9y7bIeVxr3YeAVYE3VZ/XPA3ErdadH2x4hnM0gc0IKeArFm8wo8cuCkH3gPQPaLikGQ0IKeJ+AtkuKwfYhBXxIQNslxWBQEAFH+a+6qSlWUlJNsBb4QHpr+KwkHYIJeHoguyXFIpiAPxzIbkmxGOR9HDiKT/29b7slheTVEC1w2foWm00ebQ0MIeDMrx0r6ZpVwDqP9l7yKuCo9sGhPm2WeOXXnu2t9t0CH01xA9hL/K9z9C7gsv9bXIQrBuOTF7wJOCqoeKQveyXeudPMfuvZptcWeBLFXj7U6/wogE2vAp7q0VaJX1bi0oX5xquA26n9VZJPLotqCvpmtZeZuGi59yuUXYgi8howOiq3hqQ1+CsQM8pXC/w+SvEWlR9UxOuZVcBKXwKe6slOiV/WEy7X891m5i0R3VRPdkr88kUz+0Pll2io1FdGoHvAQ260qP+bZqXzkjAsAebU7BuLv5lWPwLGVbMvep6uXuNFYLaZbanZ7yvru4D7wY+A81pEpKQ+a4FjzOzpOsd8rTT/bzP7P/Aj4Hd6sFHihzeBj5jZvQ2O+4o07M8t7UPA7/JgoyR9NgKnmNnSegclVdJf+aA/o1Mp4JJ22AScbGY/aXLOscA7PPiyGZe4G/Aj4EJVdO9BNgAnthAvwN/7cAZYYmYvVn4Z6MHgZg82StLhOeA4M2saqC7pA7hoQx/Mrf7Fh4BDBHmUxOcpYKqZrWx2kqRtgEv8uMSbwILqHT66EKWA88dS2hBvxOfwVyx8oZmtqd7hQ8AdZSAvCcrzwGxgRjvilTQB+OfUvXqLubU7fHQhXvdgo1N+g+vflTHKjjW4aeGL2y1GE4UIXIOrA+KD9cBPa3f6EPCTHmx0yu7ks9DiRiDJcrbPAJcC3zWztR1e+y+4GtG++KmZbZVzwkcXwneugHYYipsS/QpuXj8vLAV+QrzsNy/gRDsNGGVmX+lUvJKm4fq+Prms3s7UV2RIGkM2W+ElZjZD0o7A8biKPxMD+9SKN3DxBmuB04FP0t5E0bPArbh1a8vMrOuhzSg5zUP4LTRzLzDFzFR7wIeAt8EtO8lalXQBh5nZMugvX3UqcDH+oqq64RYz+xD0+zwaNwNWry/6GvA7M1udlHFJ8/GfHuwjZja/3gFfa+KW47e/1C6PAQeY2RuVHZL6cDXYzsJlkc9E4e4aJjcJqEkNSbOB//Bs9nFgrzqhm4C/Yt/3e7LTKROAL1XvMLN1ZnaFmU3BtW4X497Ss8S5Po1JMkl/B/zAp92IrzUSrzckzVR22SKpacYgSUMlXSJpY1hX+9ksabKnf7v3SvpZoO+5Um6ZUkN8tcBLcON4WcSAuZIaBmOb2Voz+wTuJe8q/ObArccA4Li0bi5pmKQTJc3FVRE9Oi1bLfhmq1K83vp3kuYBs3zZ64KngYPN7JlWJ0r6Y+CvgNOA4Wk71oBLzCxWV0LSLsABuCLh44Ax0edo/DVujXgZN8zXNN+wj4mMCjeSbQG/G7hZ0lQz+99mJ5rZk8DnJH0eV+/uU7h4WJ/Pc6shpYYnulmzybj8HJOAg8iGSJvxb63EC35b4F1wg+hZfmgAD+JiAZqKuJbo+30GJ+a0F7HeDJxRHRfbwKe9gBOAs4ERKfuUJH8AJphZyzAEr0NEkm4FZvi02SVdiRhA0s64PMjnkXyM7HPAp83shjb8GEr2Rk/a5Tgzm9fOib4F/EHgFp82Y9C1iCvIzUKeBpxBvNXZq4Dv4f6sthtsk1cBLwGOqDfrVg/fAjbcNOS+Pu3GILaIK0iaBBwFfBT30tTs2T8LPAK8hIt/uLZ6sqVNe3kU8CZgXzN7rN0LQtSJ+zjwY992Y5CYiH0iF6ubxUCqZnzLzD7byQUhXqiuwyVEzgsTgcVyQSx5YmZoBzpkFXBRpxd5F3CUCLk2p1bWmQjcLikXKQIkDcDFcuSJz5vZq51eFCRQRdIQ3MTBziHsx2AlcJSZPRrakWZIOp0wNSu65VfA+7uJeQgyJhu9SX89hO2Y7AHcISmzS5Hk4jouDe1HB7wJnNNtwE7ISYU5uFC5vLEzcKukL0vytR6sLSTNBOaTvdjrZvyjmT3S7cVBY10lHQ7cFtKHmDyNW5b0o1ZBJ2kj6ZO4RiFPlVB/AUyLEy4ZPFhb0rW4API88xzwfeByM3vBp2FJI4Bv45ZF5Ym1uDHfemla2yYLAh6J60rsGNqXBHgDmIcbKlxayWGbBpJ2BS7ABbdnqivTJqeY2TVxbxJcwACSPo1b+VAkNuGKX98GLAMeTqKaTxQ09Angs/grZ5U0c83spCRulBUBDwQeID9TzN3yHLACN028Itp+3ar/HIn2aNw09JEkmxvCN8/gug6vJHGzTAgYQG6JzO3AoNC+eGYTbhaq0crh4bhVx3l6OWvGdDNL7MU9MwIGkHQELnlxr4m4V5hjZn+b5A0zJWDoD7m8kVLEReMK4NykhxsztzrCzBbhEmd0FD5Yklk2A+cDZ6UxVp65FrhCNCW6gLIlzjMvAyc0KgyTBJlrgSuY2S24xYeZDpwpacgK4MA0xQsZFjCAmS3HrSv7VyBsdpaSdnkVN0Y9ycx+l7axzHYhaomG2a7CXzr7ks7YAlwOfMHndHqmW+BqzOweXBKOiykrH2WNn+OSJJ7jOxYkNy1wNZJG4xIs/wXQNHdWSaoswgUSLWx3FXHS5FLAFaJAoL8BzgH6ArvTK6wFrsSltnoitDO5FnCFKFbgfFzG8rwtU8oLK3C5Ka5uNzeFDwoh4AqSBuOCXk6MPvO0MiGLPIabFV0A3Buqm9CMQgm4GrnaF8figuU/SL4juHwhXAjoAuBGM/ufwP60pLACribKVzYLlyvhEMoC5NU8C9yJywB0k5k9H9ifjugJAVcT5UwYjxPyIcCh+K24E5LNwHLgrsrWZjnZzNJzAq6HpFE4MR+Eq5sxgXylI63HGlwf9vHo8z7gvnZy7uaJUsANkLQTbtZvAq7FHh/9PJrs9KfX4oLhn8IJtXp7MYsvXUlTCrhDogybQ3ErJYbjytbWfg7DTbAMqvms/nlbXMjo68CG6PP1Or+/hBNp7bbazDak/X2zzv8DaocFDs5vmOIAAAAASUVORK5CYII='/%3E%3C/defs%3E%3C/svg%3E\")}.wasabee-marker-icon.FarmPortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23f17030'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23f17030'/%3E%3Cuse xlink:href='%23a' x='70' y='120' width='176' height='143'/%3E%3Cpath d='M122.538 112.791c-1.934-12.24 28.787-17.533 17.117.729 0 0 23.934-9.799 15.114 10.82-5.029 24.429-43.717.032-43.957-1.575-21.691-16.796 3.509-30.807 11.726-9.974Z' style='fill:%23fff'/%3E%3Cdefs%3E%3Cimage id='a' width='176' height='143' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACPCAYAAABam1EmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ1klEQVR4nO2dedwV1XnHvw+iKC8WxQVCYhAKDcSdYMEalQgYo2JKjBo1bqVaozVLmyZ2S6JNPs2KbTaN1hibj4qaD6BJRQRJlGjcUbHRmmgScQGXClYQZfn1jzP39Xq5+8ycMzN3vp/PeN93tue5w8/znjnnOc9j5AxJI4GxwGCgL9oGA08Dd5rZ2oDulXjGQjvQCkkG7AscC3wYeF+T07cADwPLgDuAW8xsXepOlpTUImmgpPMl/V7d86ykUyUNCP19SnoISdMkPRpDuLXcJ+ng0N+rpOBI2lPSvASFW8t1kiarbJFLkiYS1sspireaVZKukDRL0pDQ370k50j6kKR1nsRbywZJCyWdKWmb0M+iJGdIOk3SpkDireUBSQeFfiYlOUHSX4ZWbAN+KGn30M+npDXBxoEl7Q/cA2wXyocWrAHONLMFoR0paUwQAUvaEbgf+JMQ9jtgI3C0mS0O7UhJfbwPJ8nNrH2f7IsXYFtgvqQ/De1ISX1CjId+PNryQh9ws6QJoR0p2RqvXQhJ2wG/BfbwaTchHgX2M7MtoR0peQvfLfBJ5FO8AHsDx4d2ouTteGuB5aZvHwXy/Kf4cWBvM9sc2pESh88W+BjyLV6A8cDJoZ3IK5L+LLQPXSFpmFxEWJIsUBTLEH0uSPj+jXgk9PPMI5ImStoo6dTQvrSNpD5J/yBpTcIiuknSuBpb46L9PhgZ6pnmEUmDJT0WPbt1yvqIjqTtJJ0rF/WVNK9IOqaB3WOi42mTn1YkA0j6Ts3zWyFpcGi/tkLSAEknS3oyRfFc38KH61O0XeEqX88070g6ssEz/FQS90/kJU6SSToKeBC4GhiTxH0b8MuYx5NgutyMYkkTJO0KXNng8ElJ2IgtYLn+4GLgv4D9YnvUmgdjHk+CkcA7PNjJLdH/4JcBIxqcMlnS6Lh2YglY0gzgIWBaXEc64DcxjyfFKE928soZwKwW53wsrpGuBCxpG0kXAouA3eI60SEvxjyeFKWAGyBpFPDvbZwaW8ADO71A0ghcP/fwuMa7ZDdgdYvjPigFXAe5GdcrgR3bOH0fSX1xcnd01AJLmgosJ5x4AcbFPJ4UpYDr89fAB9o814D3xDHWtoAlnQfcRuNOuS8mxjyeFMM92ckNksYDX+vwsvfGsdmWgCXNBr7b7vkp8/6Yx5NikCc7uUDSQOAqYPsOL401K9dSkJI+Blwex0jCzFCTmThghic/SgG/nQuAblaupNcCSzoW+DHZSgK4E3C26sRCAGdHx31QCjhC0gHAF7u8/N1xbDcchZA0Hbih2TkBmQlsiaZ0F+Na3dOj/b4oBQxI+iPgOrrXyc5x7NdtWeUS4d2Ky7tbUp+HzOyA0E6EJJptu4Z447lrzKxrEW/VhZA0FjctXIq3OWULDGcRfzJiqGIkW3zbhZIG4f4cDI3pVC/Q0wKWtB/w7QRuZcTQW63yv4m/cdS807MClktMcz3JPYP4ApZ0HG4WpaQ9elLAUb/3UpJNTNPXht1xkg6T9LZx5gHRwTHAFQk61Av0pICB2SS/sLXh+5akkZIWAU8AvwAWStq2cnyAXLKRuZT93k4Zoh7LJyxpH+A7Kdy6bgss6UBc0Z4jqnZPBQ6r/DIA+CpwYApOFR3D36RJcKLVFfPpfKq4HbYScBTs/jNg1zrnf7Tyg0Xdh2E122hgCjApJYeLwnvM7InQTqRN1O9cAqRVKOcEM7uhyt4w4C4aR6q9CAw3Mw00s6eAp+qdFfU19sOJeQruC+yZoON5Z5fQDqRNVXxvmlWe+lvgaCh3Hs3DLHcDdgDWN53+M7ONuDy+9+Oi0ZD0LuAQ4NDoc684nuecwgsYuJAEVk60oA/6Rzh+SFUftwmDaSXgepjZM8C10VbpGx3MW4KeCPTKy82w0A6kiaQzgH/yYGqfSLxfpv0RjsGQQKCOmb0E3BhtyJWtOoi3BD2Z4vajC9sCSzocf2G0x+NWencSjJWMgGsxs9dwEWKLof8F4C6giIEvhRSwXOqnefiLRBxG55GEg8HDCgsz24Ab/C5iStLCdSEkDQduJvvzAjuApyVCZrYc+LoPW54pVAssqQ/XFdwzsCvt4KcFruIi3HRgkRgf2oGkkLQTLgZ8cmhf2sSvgKu6EkVi32gUJtfIFXX8OZCnBNTeW2DM7Je4YPkiMTW0A3GQtAdwB7B/aF86ZED/fzyTRBB0lgiZ5CUW0eqbZcRMLhKIYAJejCuWUhRm5DHVqqS9ceLNa4ahMAI2M5FOSF4oxuIK2OSGKEzxdsJnWYpDsBYY4D+BNwLZToOL4ixM9EmU324p+R/DDifgaLbugRC2U2J/4M9DO9EKSbOAhcCQ0L4kQNAWGOBXAW2nwYXVS12yhFzRnTm46eGixKX0QVgB3x3QdhrsDVyZta5ElGz6DuAzoX1JmNEQVsD3BLSdFqcA38vKqISkmbh8znmZXeuEsRBWwM8HtJ0m5wBfDSliSe+UNBe4iZi5xzLMWAicdVLSJoob/H41cEG0AMALUR/8fNwqiiK8qDVjIzA4tIBfo42kFjnmdeAbwDeikZdUiFr7GcC3cH3xXmFM6BeODYHtp80OwBeAJyTNjlarJIak7SWdicudsIjeEi/A2JD9tAHAenorw80m3OjLUly9kbvN7M1ObhC1tuNwCy3PA3ZP2skccW5IAY+guC9y7bIeVxr3YeAVYE3VZ/XPA3ErdadH2x4hnM0gc0IKeArFm8wo8cuCkH3gPQPaLikGQ0IKeJ+AtkuKwfYhBXxIQNslxWBQEAFH+a+6qSlWUlJNsBb4QHpr+KwkHYIJeHoguyXFIpiAPxzIbkmxGOR9HDiKT/29b7slheTVEC1w2foWm00ebQ0MIeDMrx0r6ZpVwDqP9l7yKuCo9sGhPm2WeOXXnu2t9t0CH01xA9hL/K9z9C7gsv9bXIQrBuOTF7wJOCqoeKQveyXeudPMfuvZptcWeBLFXj7U6/wogE2vAp7q0VaJX1bi0oX5xquA26n9VZJPLotqCvpmtZeZuGi59yuUXYgi8howOiq3hqQ1+CsQM8pXC/w+SvEWlR9UxOuZVcBKXwKe6slOiV/WEy7X891m5i0R3VRPdkr88kUz+0Pll2io1FdGoHvAQ260qP+bZqXzkjAsAebU7BuLv5lWPwLGVbMvep6uXuNFYLaZbanZ7yvru4D7wY+A81pEpKQ+a4FjzOzpOsd8rTT/bzP7P/Aj4Hd6sFHihzeBj5jZvQ2O+4o07M8t7UPA7/JgoyR9NgKnmNnSegclVdJf+aA/o1Mp4JJ22AScbGY/aXLOscA7PPiyGZe4G/Aj4EJVdO9BNgAnthAvwN/7cAZYYmYvVn4Z6MHgZg82StLhOeA4M2saqC7pA7hoQx/Mrf7Fh4BDBHmUxOcpYKqZrWx2kqRtgEv8uMSbwILqHT66EKWA88dS2hBvxOfwVyx8oZmtqd7hQ8AdZSAvCcrzwGxgRjvilTQB+OfUvXqLubU7fHQhXvdgo1N+g+vflTHKjjW4aeGL2y1GE4UIXIOrA+KD9cBPa3f6EPCTHmx0yu7ks9DiRiDJcrbPAJcC3zWztR1e+y+4GtG++KmZbZVzwkcXwneugHYYipsS/QpuXj8vLAV+QrzsNy/gRDsNGGVmX+lUvJKm4fq+Prms3s7UV2RIGkM2W+ElZjZD0o7A8biKPxMD+9SKN3DxBmuB04FP0t5E0bPArbh1a8vMrOuhzSg5zUP4LTRzLzDFzFR7wIeAt8EtO8lalXQBh5nZMugvX3UqcDH+oqq64RYz+xD0+zwaNwNWry/6GvA7M1udlHFJ8/GfHuwjZja/3gFfa+KW47e/1C6PAQeY2RuVHZL6cDXYzsJlkc9E4e4aJjcJqEkNSbOB//Bs9nFgrzqhm4C/Yt/3e7LTKROAL1XvMLN1ZnaFmU3BtW4X497Ss8S5Po1JMkl/B/zAp92IrzUSrzckzVR22SKpacYgSUMlXSJpY1hX+9ksabKnf7v3SvpZoO+5Um6ZUkN8tcBLcON4WcSAuZIaBmOb2Voz+wTuJe8q/ObArccA4Li0bi5pmKQTJc3FVRE9Oi1bLfhmq1K83vp3kuYBs3zZ64KngYPN7JlWJ0r6Y+CvgNOA4Wk71oBLzCxWV0LSLsABuCLh44Ax0edo/DVujXgZN8zXNN+wj4mMCjeSbQG/G7hZ0lQz+99mJ5rZk8DnJH0eV+/uU7h4WJ/Pc6shpYYnulmzybj8HJOAg8iGSJvxb63EC35b4F1wg+hZfmgAD+JiAZqKuJbo+30GJ+a0F7HeDJxRHRfbwKe9gBOAs4ERKfuUJH8AJphZyzAEr0NEkm4FZvi02SVdiRhA0s64PMjnkXyM7HPAp83shjb8GEr2Rk/a5Tgzm9fOib4F/EHgFp82Y9C1iCvIzUKeBpxBvNXZq4Dv4f6sthtsk1cBLwGOqDfrVg/fAjbcNOS+Pu3GILaIK0iaBBwFfBT30tTs2T8LPAK8hIt/uLZ6sqVNe3kU8CZgXzN7rN0LQtSJ+zjwY992Y5CYiH0iF6ubxUCqZnzLzD7byQUhXqiuwyVEzgsTgcVyQSx5YmZoBzpkFXBRpxd5F3CUCLk2p1bWmQjcLikXKQIkDcDFcuSJz5vZq51eFCRQRdIQ3MTBziHsx2AlcJSZPRrakWZIOp0wNSu65VfA+7uJeQgyJhu9SX89hO2Y7AHcISmzS5Hk4jouDe1HB7wJnNNtwE7ISYU5uFC5vLEzcKukL0vytR6sLSTNBOaTvdjrZvyjmT3S7cVBY10lHQ7cFtKHmDyNW5b0o1ZBJ2kj6ZO4RiFPlVB/AUyLEy4ZPFhb0rW4API88xzwfeByM3vBp2FJI4Bv45ZF5Ym1uDHfemla2yYLAh6J60rsGNqXBHgDmIcbKlxayWGbBpJ2BS7ABbdnqivTJqeY2TVxbxJcwACSPo1b+VAkNuGKX98GLAMeTqKaTxQ09Angs/grZ5U0c83spCRulBUBDwQeID9TzN3yHLACN028Itp+3ar/HIn2aNw09JEkmxvCN8/gug6vJHGzTAgYQG6JzO3AoNC+eGYTbhaq0crh4bhVx3l6OWvGdDNL7MU9MwIGkHQELnlxr4m4V5hjZn+b5A0zJWDoD7m8kVLEReMK4NykhxsztzrCzBbhEmd0FD5Yklk2A+cDZ6UxVp65FrhCNCW6gLIlzjMvAyc0KgyTBJlrgSuY2S24xYeZDpwpacgK4MA0xQsZFjCAmS3HrSv7VyBsdpaSdnkVN0Y9ycx+l7axzHYhaomG2a7CXzr7ks7YAlwOfMHndHqmW+BqzOweXBKOiykrH2WNn+OSJJ7jOxYkNy1wNZJG4xIs/wXQNHdWSaoswgUSLWx3FXHS5FLAFaJAoL8BzgH6ArvTK6wFrsSltnoitDO5FnCFKFbgfFzG8rwtU8oLK3C5Ka5uNzeFDwoh4AqSBuOCXk6MPvO0MiGLPIabFV0A3Buqm9CMQgm4GrnaF8figuU/SL4juHwhXAjoAuBGM/ufwP60pLACribKVzYLlyvhEMoC5NU8C9yJywB0k5k9H9ifjugJAVcT5UwYjxPyIcCh+K24E5LNwHLgrsrWZjnZzNJzAq6HpFE4MR+Eq5sxgXylI63HGlwf9vHo8z7gvnZy7uaJUsANkLQTbtZvAq7FHh/9PJrs9KfX4oLhn8IJtXp7MYsvXUlTCrhDogybQ3ErJYbjytbWfg7DTbAMqvms/nlbXMjo68CG6PP1Or+/hBNp7bbazDak/X2zzv8DaocFDs5vmOIAAAAASUVORK5CYII='/%3E%3C/defs%3E%3C/svg%3E\")}.wasabee-marker-icon.FarmPortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23f17030'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23f17030'/%3E%3Cuse xlink:href='%23a' x='70' y='120' width='176' height='143'/%3E%3Cpath d='M122.538 112.791c-1.934-12.24 28.787-17.533 17.117.729 0 0 23.934-9.799 15.114 10.82-5.029 24.429-43.717.032-43.957-1.575-21.691-16.796 3.509-30.807 11.726-9.974Z' style='fill:%23fff'/%3E%3Cdefs%3E%3Cimage id='a' width='176' height='143' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACPCAYAAABam1EmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ1klEQVR4nO2dedwV1XnHvw+iKC8WxQVCYhAKDcSdYMEalQgYo2JKjBo1bqVaozVLmyZ2S6JNPs2KbTaN1hibj4qaD6BJRQRJlGjcUbHRmmgScQGXClYQZfn1jzP39Xq5+8ycMzN3vp/PeN93tue5w8/znjnnOc9j5AxJI4GxwGCgL9oGA08Dd5rZ2oDulXjGQjvQCkkG7AscC3wYeF+T07cADwPLgDuAW8xsXepOlpTUImmgpPMl/V7d86ykUyUNCP19SnoISdMkPRpDuLXcJ+ng0N+rpOBI2lPSvASFW8t1kiarbJFLkiYS1sspireaVZKukDRL0pDQ370k50j6kKR1nsRbywZJCyWdKWmb0M+iJGdIOk3SpkDireUBSQeFfiYlOUHSX4ZWbAN+KGn30M+npDXBxoEl7Q/cA2wXyocWrAHONLMFoR0paUwQAUvaEbgf+JMQ9jtgI3C0mS0O7UhJfbwPJ8nNrH2f7IsXYFtgvqQ/De1ISX1CjId+PNryQh9ws6QJoR0p2RqvXQhJ2wG/BfbwaTchHgX2M7MtoR0peQvfLfBJ5FO8AHsDx4d2ouTteGuB5aZvHwXy/Kf4cWBvM9sc2pESh88W+BjyLV6A8cDJoZ3IK5L+LLQPXSFpmFxEWJIsUBTLEH0uSPj+jXgk9PPMI5ImStoo6dTQvrSNpD5J/yBpTcIiuknSuBpb46L9PhgZ6pnmEUmDJT0WPbt1yvqIjqTtJJ0rF/WVNK9IOqaB3WOi42mTn1YkA0j6Ts3zWyFpcGi/tkLSAEknS3oyRfFc38KH61O0XeEqX88070g6ssEz/FQS90/kJU6SSToKeBC4GhiTxH0b8MuYx5NgutyMYkkTJO0KXNng8ElJ2IgtYLn+4GLgv4D9YnvUmgdjHk+CkcA7PNjJLdH/4JcBIxqcMlnS6Lh2YglY0gzgIWBaXEc64DcxjyfFKE928soZwKwW53wsrpGuBCxpG0kXAouA3eI60SEvxjyeFKWAGyBpFPDvbZwaW8ADO71A0ghcP/fwuMa7ZDdgdYvjPigFXAe5GdcrgR3bOH0fSX1xcnd01AJLmgosJ5x4AcbFPJ4UpYDr89fAB9o814D3xDHWtoAlnQfcRuNOuS8mxjyeFMM92ckNksYDX+vwsvfGsdmWgCXNBr7b7vkp8/6Yx5NikCc7uUDSQOAqYPsOL401K9dSkJI+Blwex0jCzFCTmThghic/SgG/nQuAblaupNcCSzoW+DHZSgK4E3C26sRCAGdHx31QCjhC0gHAF7u8/N1xbDcchZA0Hbih2TkBmQlsiaZ0F+Na3dOj/b4oBQxI+iPgOrrXyc5x7NdtWeUS4d2Ky7tbUp+HzOyA0E6EJJptu4Z447lrzKxrEW/VhZA0FjctXIq3OWULDGcRfzJiqGIkW3zbhZIG4f4cDI3pVC/Q0wKWtB/w7QRuZcTQW63yv4m/cdS807MClktMcz3JPYP4ApZ0HG4WpaQ9elLAUb/3UpJNTNPXht1xkg6T9LZx5gHRwTHAFQk61Av0pICB2SS/sLXh+5akkZIWAU8AvwAWStq2cnyAXLKRuZT93k4Zoh7LJyxpH+A7Kdy6bgss6UBc0Z4jqnZPBQ6r/DIA+CpwYApOFR3D36RJcKLVFfPpfKq4HbYScBTs/jNg1zrnf7Tyg0Xdh2E122hgCjApJYeLwnvM7InQTqRN1O9cAqRVKOcEM7uhyt4w4C4aR6q9CAw3Mw00s6eAp+qdFfU19sOJeQruC+yZoON5Z5fQDqRNVXxvmlWe+lvgaCh3Hs3DLHcDdgDWN53+M7ONuDy+9+Oi0ZD0LuAQ4NDoc684nuecwgsYuJAEVk60oA/6Rzh+SFUftwmDaSXgepjZM8C10VbpGx3MW4KeCPTKy82w0A6kiaQzgH/yYGqfSLxfpv0RjsGQQKCOmb0E3BhtyJWtOoi3BD2Z4vajC9sCSzocf2G0x+NWencSjJWMgGsxs9dwEWKLof8F4C6giIEvhRSwXOqnefiLRBxG55GEg8HDCgsz24Ab/C5iStLCdSEkDQduJvvzAjuApyVCZrYc+LoPW54pVAssqQ/XFdwzsCvt4KcFruIi3HRgkRgf2oGkkLQTLgZ8cmhf2sSvgKu6EkVi32gUJtfIFXX8OZCnBNTeW2DM7Je4YPkiMTW0A3GQtAdwB7B/aF86ZED/fzyTRBB0lgiZ5CUW0eqbZcRMLhKIYAJejCuWUhRm5DHVqqS9ceLNa4ahMAI2M5FOSF4oxuIK2OSGKEzxdsJnWYpDsBYY4D+BNwLZToOL4ixM9EmU324p+R/DDifgaLbugRC2U2J/4M9DO9EKSbOAhcCQ0L4kQNAWGOBXAW2nwYXVS12yhFzRnTm46eGixKX0QVgB3x3QdhrsDVyZta5ElGz6DuAzoX1JmNEQVsD3BLSdFqcA38vKqISkmbh8znmZXeuEsRBWwM8HtJ0m5wBfDSliSe+UNBe4iZi5xzLMWAicdVLSJoob/H41cEG0AMALUR/8fNwqiiK8qDVjIzA4tIBfo42kFjnmdeAbwDeikZdUiFr7GcC3cH3xXmFM6BeODYHtp80OwBeAJyTNjlarJIak7SWdicudsIjeEi/A2JD9tAHAenorw80m3OjLUly9kbvN7M1ObhC1tuNwCy3PA3ZP2skccW5IAY+guC9y7bIeVxr3YeAVYE3VZ/XPA3ErdadH2x4hnM0gc0IKeArFm8wo8cuCkH3gPQPaLikGQ0IKeJ+AtkuKwfYhBXxIQNslxWBQEAFH+a+6qSlWUlJNsBb4QHpr+KwkHYIJeHoguyXFIpiAPxzIbkmxGOR9HDiKT/29b7slheTVEC1w2foWm00ebQ0MIeDMrx0r6ZpVwDqP9l7yKuCo9sGhPm2WeOXXnu2t9t0CH01xA9hL/K9z9C7gsv9bXIQrBuOTF7wJOCqoeKQveyXeudPMfuvZptcWeBLFXj7U6/wogE2vAp7q0VaJX1bi0oX5xquA26n9VZJPLotqCvpmtZeZuGi59yuUXYgi8howOiq3hqQ1+CsQM8pXC/w+SvEWlR9UxOuZVcBKXwKe6slOiV/WEy7X891m5i0R3VRPdkr88kUz+0Pll2io1FdGoHvAQ260qP+bZqXzkjAsAebU7BuLv5lWPwLGVbMvep6uXuNFYLaZbanZ7yvru4D7wY+A81pEpKQ+a4FjzOzpOsd8rTT/bzP7P/Aj4Hd6sFHihzeBj5jZvQ2O+4o07M8t7UPA7/JgoyR9NgKnmNnSegclVdJf+aA/o1Mp4JJ22AScbGY/aXLOscA7PPiyGZe4G/Aj4EJVdO9BNgAnthAvwN/7cAZYYmYvVn4Z6MHgZg82StLhOeA4M2saqC7pA7hoQx/Mrf7Fh4BDBHmUxOcpYKqZrWx2kqRtgEv8uMSbwILqHT66EKWA88dS2hBvxOfwVyx8oZmtqd7hQ8AdZSAvCcrzwGxgRjvilTQB+OfUvXqLubU7fHQhXvdgo1N+g+vflTHKjjW4aeGL2y1GE4UIXIOrA+KD9cBPa3f6EPCTHmx0yu7ks9DiRiDJcrbPAJcC3zWztR1e+y+4GtG++KmZbZVzwkcXwneugHYYipsS/QpuXj8vLAV+QrzsNy/gRDsNGGVmX+lUvJKm4fq+Prms3s7UV2RIGkM2W+ElZjZD0o7A8biKPxMD+9SKN3DxBmuB04FP0t5E0bPArbh1a8vMrOuhzSg5zUP4LTRzLzDFzFR7wIeAt8EtO8lalXQBh5nZMugvX3UqcDH+oqq64RYz+xD0+zwaNwNWry/6GvA7M1udlHFJ8/GfHuwjZja/3gFfa+KW47e/1C6PAQeY2RuVHZL6cDXYzsJlkc9E4e4aJjcJqEkNSbOB//Bs9nFgrzqhm4C/Yt/3e7LTKROAL1XvMLN1ZnaFmU3BtW4X497Ss8S5Po1JMkl/B/zAp92IrzUSrzckzVR22SKpacYgSUMlXSJpY1hX+9ksabKnf7v3SvpZoO+5Um6ZUkN8tcBLcON4WcSAuZIaBmOb2Voz+wTuJe8q/ObArccA4Li0bi5pmKQTJc3FVRE9Oi1bLfhmq1K83vp3kuYBs3zZ64KngYPN7JlWJ0r6Y+CvgNOA4Wk71oBLzCxWV0LSLsABuCLh44Ax0edo/DVujXgZN8zXNN+wj4mMCjeSbQG/G7hZ0lQz+99mJ5rZk8DnJH0eV+/uU7h4WJ/Pc6shpYYnulmzybj8HJOAg8iGSJvxb63EC35b4F1wg+hZfmgAD+JiAZqKuJbo+30GJ+a0F7HeDJxRHRfbwKe9gBOAs4ERKfuUJH8AJphZyzAEr0NEkm4FZvi02SVdiRhA0s64PMjnkXyM7HPAp83shjb8GEr2Rk/a5Tgzm9fOib4F/EHgFp82Y9C1iCvIzUKeBpxBvNXZq4Dv4f6sthtsk1cBLwGOqDfrVg/fAjbcNOS+Pu3GILaIK0iaBBwFfBT30tTs2T8LPAK8hIt/uLZ6sqVNe3kU8CZgXzN7rN0LQtSJ+zjwY992Y5CYiH0iF6ubxUCqZnzLzD7byQUhXqiuwyVEzgsTgcVyQSx5YmZoBzpkFXBRpxd5F3CUCLk2p1bWmQjcLikXKQIkDcDFcuSJz5vZq51eFCRQRdIQ3MTBziHsx2AlcJSZPRrakWZIOp0wNSu65VfA+7uJeQgyJhu9SX89hO2Y7AHcISmzS5Hk4jouDe1HB7wJnNNtwE7ISYU5uFC5vLEzcKukL0vytR6sLSTNBOaTvdjrZvyjmT3S7cVBY10lHQ7cFtKHmDyNW5b0o1ZBJ2kj6ZO4RiFPlVB/AUyLEy4ZPFhb0rW4API88xzwfeByM3vBp2FJI4Bv45ZF5Ym1uDHfemla2yYLAh6J60rsGNqXBHgDmIcbKlxayWGbBpJ2BS7ABbdnqivTJqeY2TVxbxJcwACSPo1b+VAkNuGKX98GLAMeTqKaTxQ09Angs/grZ5U0c83spCRulBUBDwQeID9TzN3yHLACN028Itp+3ar/HIn2aNw09JEkmxvCN8/gug6vJHGzTAgYQG6JzO3AoNC+eGYTbhaq0crh4bhVx3l6OWvGdDNL7MU9MwIGkHQELnlxr4m4V5hjZn+b5A0zJWDoD7m8kVLEReMK4NykhxsztzrCzBbhEmd0FD5Yklk2A+cDZ6UxVp65FrhCNCW6gLIlzjMvAyc0KgyTBJlrgSuY2S24xYeZDpwpacgK4MA0xQsZFjCAmS3HrSv7VyBsdpaSdnkVN0Y9ycx+l7axzHYhaomG2a7CXzr7ks7YAlwOfMHndHqmW+BqzOweXBKOiykrH2WNn+OSJJ7jOxYkNy1wNZJG4xIs/wXQNHdWSaoswgUSLWx3FXHS5FLAFaJAoL8BzgH6ArvTK6wFrsSltnoitDO5FnCFKFbgfFzG8rwtU8oLK3C5Ka5uNzeFDwoh4AqSBuOCXk6MPvO0MiGLPIabFV0A3Buqm9CMQgm4GrnaF8figuU/SL4juHwhXAjoAuBGM/ufwP60pLACribKVzYLlyvhEMoC5NU8C9yJywB0k5k9H9ifjugJAVcT5UwYjxPyIcCh+K24E5LNwHLgrsrWZjnZzNJzAq6HpFE4MR+Eq5sxgXylI63HGlwf9vHo8z7gvnZy7uaJUsANkLQTbtZvAq7FHh/9PJrs9KfX4oLhn8IJtXp7MYsvXUlTCrhDogybQ3ErJYbjytbWfg7DTbAMqvms/nlbXMjo68CG6PP1Or+/hBNp7bbazDak/X2zzv8DaocFDs5vmOIAAAAASUVORK5CYII='/%3E%3C/defs%3E%3C/svg%3E\")}.wasabee-marker-icon.FarmPortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23f17030'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23f17030'/%3E%3Cuse xlink:href='%23a' x='70' y='120' width='176' height='143'/%3E%3Cpath d='M122.538 112.791c-1.934-12.24 28.787-17.533 17.117.729 0 0 23.934-9.799 15.114 10.82-5.029 24.429-43.717.032-43.957-1.575-21.691-16.796 3.509-30.807 11.726-9.974Z' style='fill:%23fff'/%3E%3Cdefs%3E%3Cimage id='a' width='176' height='143' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACPCAYAAABam1EmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ1klEQVR4nO2dedwV1XnHvw+iKC8WxQVCYhAKDcSdYMEalQgYo2JKjBo1bqVaozVLmyZ2S6JNPs2KbTaN1hibj4qaD6BJRQRJlGjcUbHRmmgScQGXClYQZfn1jzP39Xq5+8ycMzN3vp/PeN93tue5w8/znjnnOc9j5AxJI4GxwGCgL9oGA08Dd5rZ2oDulXjGQjvQCkkG7AscC3wYeF+T07cADwPLgDuAW8xsXepOlpTUImmgpPMl/V7d86ykUyUNCP19SnoISdMkPRpDuLXcJ+ng0N+rpOBI2lPSvASFW8t1kiarbJFLkiYS1sspireaVZKukDRL0pDQ370k50j6kKR1nsRbywZJCyWdKWmb0M+iJGdIOk3SpkDireUBSQeFfiYlOUHSX4ZWbAN+KGn30M+npDXBxoEl7Q/cA2wXyocWrAHONLMFoR0paUwQAUvaEbgf+JMQ9jtgI3C0mS0O7UhJfbwPJ8nNrH2f7IsXYFtgvqQ/De1ISX1CjId+PNryQh9ws6QJoR0p2RqvXQhJ2wG/BfbwaTchHgX2M7MtoR0peQvfLfBJ5FO8AHsDx4d2ouTteGuB5aZvHwXy/Kf4cWBvM9sc2pESh88W+BjyLV6A8cDJoZ3IK5L+LLQPXSFpmFxEWJIsUBTLEH0uSPj+jXgk9PPMI5ImStoo6dTQvrSNpD5J/yBpTcIiuknSuBpb46L9PhgZ6pnmEUmDJT0WPbt1yvqIjqTtJJ0rF/WVNK9IOqaB3WOi42mTn1YkA0j6Ts3zWyFpcGi/tkLSAEknS3oyRfFc38KH61O0XeEqX88070g6ssEz/FQS90/kJU6SSToKeBC4GhiTxH0b8MuYx5NgutyMYkkTJO0KXNng8ElJ2IgtYLn+4GLgv4D9YnvUmgdjHk+CkcA7PNjJLdH/4JcBIxqcMlnS6Lh2YglY0gzgIWBaXEc64DcxjyfFKE928soZwKwW53wsrpGuBCxpG0kXAouA3eI60SEvxjyeFKWAGyBpFPDvbZwaW8ADO71A0ghcP/fwuMa7ZDdgdYvjPigFXAe5GdcrgR3bOH0fSX1xcnd01AJLmgosJ5x4AcbFPJ4UpYDr89fAB9o814D3xDHWtoAlnQfcRuNOuS8mxjyeFMM92ckNksYDX+vwsvfGsdmWgCXNBr7b7vkp8/6Yx5NikCc7uUDSQOAqYPsOL401K9dSkJI+Blwex0jCzFCTmThghic/SgG/nQuAblaupNcCSzoW+DHZSgK4E3C26sRCAGdHx31QCjhC0gHAF7u8/N1xbDcchZA0Hbih2TkBmQlsiaZ0F+Na3dOj/b4oBQxI+iPgOrrXyc5x7NdtWeUS4d2Ky7tbUp+HzOyA0E6EJJptu4Z447lrzKxrEW/VhZA0FjctXIq3OWULDGcRfzJiqGIkW3zbhZIG4f4cDI3pVC/Q0wKWtB/w7QRuZcTQW63yv4m/cdS807MClktMcz3JPYP4ApZ0HG4WpaQ9elLAUb/3UpJNTNPXht1xkg6T9LZx5gHRwTHAFQk61Av0pICB2SS/sLXh+5akkZIWAU8AvwAWStq2cnyAXLKRuZT93k4Zoh7LJyxpH+A7Kdy6bgss6UBc0Z4jqnZPBQ6r/DIA+CpwYApOFR3D36RJcKLVFfPpfKq4HbYScBTs/jNg1zrnf7Tyg0Xdh2E122hgCjApJYeLwnvM7InQTqRN1O9cAqRVKOcEM7uhyt4w4C4aR6q9CAw3Mw00s6eAp+qdFfU19sOJeQruC+yZoON5Z5fQDqRNVXxvmlWe+lvgaCh3Hs3DLHcDdgDWN53+M7ONuDy+9+Oi0ZD0LuAQ4NDoc684nuecwgsYuJAEVk60oA/6Rzh+SFUftwmDaSXgepjZM8C10VbpGx3MW4KeCPTKy82w0A6kiaQzgH/yYGqfSLxfpv0RjsGQQKCOmb0E3BhtyJWtOoi3BD2Z4vajC9sCSzocf2G0x+NWencSjJWMgGsxs9dwEWKLof8F4C6giIEvhRSwXOqnefiLRBxG55GEg8HDCgsz24Ab/C5iStLCdSEkDQduJvvzAjuApyVCZrYc+LoPW54pVAssqQ/XFdwzsCvt4KcFruIi3HRgkRgf2oGkkLQTLgZ8cmhf2sSvgKu6EkVi32gUJtfIFXX8OZCnBNTeW2DM7Je4YPkiMTW0A3GQtAdwB7B/aF86ZED/fzyTRBB0lgiZ5CUW0eqbZcRMLhKIYAJejCuWUhRm5DHVqqS9ceLNa4ahMAI2M5FOSF4oxuIK2OSGKEzxdsJnWYpDsBYY4D+BNwLZToOL4ixM9EmU324p+R/DDifgaLbugRC2U2J/4M9DO9EKSbOAhcCQ0L4kQNAWGOBXAW2nwYXVS12yhFzRnTm46eGixKX0QVgB3x3QdhrsDVyZta5ElGz6DuAzoX1JmNEQVsD3BLSdFqcA38vKqISkmbh8znmZXeuEsRBWwM8HtJ0m5wBfDSliSe+UNBe4iZi5xzLMWAicdVLSJoob/H41cEG0AMALUR/8fNwqiiK8qDVjIzA4tIBfo42kFjnmdeAbwDeikZdUiFr7GcC3cH3xXmFM6BeODYHtp80OwBeAJyTNjlarJIak7SWdicudsIjeEi/A2JD9tAHAenorw80m3OjLUly9kbvN7M1ObhC1tuNwCy3PA3ZP2skccW5IAY+guC9y7bIeVxr3YeAVYE3VZ/XPA3ErdadH2x4hnM0gc0IKeArFm8wo8cuCkH3gPQPaLikGQ0IKeJ+AtkuKwfYhBXxIQNslxWBQEAFH+a+6qSlWUlJNsBb4QHpr+KwkHYIJeHoguyXFIpiAPxzIbkmxGOR9HDiKT/29b7slheTVEC1w2foWm00ebQ0MIeDMrx0r6ZpVwDqP9l7yKuCo9sGhPm2WeOXXnu2t9t0CH01xA9hL/K9z9C7gsv9bXIQrBuOTF7wJOCqoeKQveyXeudPMfuvZptcWeBLFXj7U6/wogE2vAp7q0VaJX1bi0oX5xquA26n9VZJPLotqCvpmtZeZuGi59yuUXYgi8howOiq3hqQ1+CsQM8pXC/w+SvEWlR9UxOuZVcBKXwKe6slOiV/WEy7X891m5i0R3VRPdkr88kUz+0Pll2io1FdGoHvAQ260qP+bZqXzkjAsAebU7BuLv5lWPwLGVbMvep6uXuNFYLaZbanZ7yvru4D7wY+A81pEpKQ+a4FjzOzpOsd8rTT/bzP7P/Aj4Hd6sFHihzeBj5jZvQ2O+4o07M8t7UPA7/JgoyR9NgKnmNnSegclVdJf+aA/o1Mp4JJ22AScbGY/aXLOscA7PPiyGZe4G/Aj4EJVdO9BNgAnthAvwN/7cAZYYmYvVn4Z6MHgZg82StLhOeA4M2saqC7pA7hoQx/Mrf7Fh4BDBHmUxOcpYKqZrWx2kqRtgEv8uMSbwILqHT66EKWA88dS2hBvxOfwVyx8oZmtqd7hQ8AdZSAvCcrzwGxgRjvilTQB+OfUvXqLubU7fHQhXvdgo1N+g+vflTHKjjW4aeGL2y1GE4UIXIOrA+KD9cBPa3f6EPCTHmx0yu7ks9DiRiDJcrbPAJcC3zWztR1e+y+4GtG++KmZbZVzwkcXwneugHYYipsS/QpuXj8vLAV+QrzsNy/gRDsNGGVmX+lUvJKm4fq+Prms3s7UV2RIGkM2W+ElZjZD0o7A8biKPxMD+9SKN3DxBmuB04FP0t5E0bPArbh1a8vMrOuhzSg5zUP4LTRzLzDFzFR7wIeAt8EtO8lalXQBh5nZMugvX3UqcDH+oqq64RYz+xD0+zwaNwNWry/6GvA7M1udlHFJ8/GfHuwjZja/3gFfa+KW47e/1C6PAQeY2RuVHZL6cDXYzsJlkc9E4e4aJjcJqEkNSbOB//Bs9nFgrzqhm4C/Yt/3e7LTKROAL1XvMLN1ZnaFmU3BtW4X497Ss8S5Po1JMkl/B/zAp92IrzUSrzckzVR22SKpacYgSUMlXSJpY1hX+9ksabKnf7v3SvpZoO+5Um6ZUkN8tcBLcON4WcSAuZIaBmOb2Voz+wTuJe8q/ObArccA4Li0bi5pmKQTJc3FVRE9Oi1bLfhmq1K83vp3kuYBs3zZ64KngYPN7JlWJ0r6Y+CvgNOA4Wk71oBLzCxWV0LSLsABuCLh44Ax0edo/DVujXgZN8zXNN+wj4mMCjeSbQG/G7hZ0lQz+99mJ5rZk8DnJH0eV+/uU7h4WJ/Pc6shpYYnulmzybj8HJOAg8iGSJvxb63EC35b4F1wg+hZfmgAD+JiAZqKuJbo+30GJ+a0F7HeDJxRHRfbwKe9gBOAs4ERKfuUJH8AJphZyzAEr0NEkm4FZvi02SVdiRhA0s64PMjnkXyM7HPAp83shjb8GEr2Rk/a5Tgzm9fOib4F/EHgFp82Y9C1iCvIzUKeBpxBvNXZq4Dv4f6sthtsk1cBLwGOqDfrVg/fAjbcNOS+Pu3GILaIK0iaBBwFfBT30tTs2T8LPAK8hIt/uLZ6sqVNe3kU8CZgXzN7rN0LQtSJ+zjwY992Y5CYiH0iF6ubxUCqZnzLzD7byQUhXqiuwyVEzgsTgcVyQSx5YmZoBzpkFXBRpxd5F3CUCLk2p1bWmQjcLikXKQIkDcDFcuSJz5vZq51eFCRQRdIQ3MTBziHsx2AlcJSZPRrakWZIOp0wNSu65VfA+7uJeQgyJhu9SX89hO2Y7AHcISmzS5Hk4jouDe1HB7wJnNNtwE7ISYU5uFC5vLEzcKukL0vytR6sLSTNBOaTvdjrZvyjmT3S7cVBY10lHQ7cFtKHmDyNW5b0o1ZBJ2kj6ZO4RiFPlVB/AUyLEy4ZPFhb0rW4API88xzwfeByM3vBp2FJI4Bv45ZF5Ym1uDHfemla2yYLAh6J60rsGNqXBHgDmIcbKlxayWGbBpJ2BS7ABbdnqivTJqeY2TVxbxJcwACSPo1b+VAkNuGKX98GLAMeTqKaTxQ09Angs/grZ5U0c83spCRulBUBDwQeID9TzN3yHLACN028Itp+3ar/HIn2aNw09JEkmxvCN8/gug6vJHGzTAgYQG6JzO3AoNC+eGYTbhaq0crh4bhVx3l6OWvGdDNL7MU9MwIGkHQELnlxr4m4V5hjZn+b5A0zJWDoD7m8kVLEReMK4NykhxsztzrCzBbhEmd0FD5Yklk2A+cDZ6UxVp65FrhCNCW6gLIlzjMvAyc0KgyTBJlrgSuY2S24xYeZDpwpacgK4MA0xQsZFjCAmS3HrSv7VyBsdpaSdnkVN0Y9ycx+l7axzHYhaomG2a7CXzr7ks7YAlwOfMHndHqmW+BqzOweXBKOiykrH2WNn+OSJJ7jOxYkNy1wNZJG4xIs/wXQNHdWSaoswgUSLWx3FXHS5FLAFaJAoL8BzgH6ArvTK6wFrsSltnoitDO5FnCFKFbgfFzG8rwtU8oLK3C5Ka5uNzeFDwoh4AqSBuOCXk6MPvO0MiGLPIabFV0A3Buqm9CMQgm4GrnaF8figuU/SL4juHwhXAjoAuBGM/ufwP60pLACribKVzYLlyvhEMoC5NU8C9yJywB0k5k9H9ifjugJAVcT5UwYjxPyIcCh+K24E5LNwHLgrsrWZjnZzNJzAq6HpFE4MR+Eq5sxgXylI63HGlwf9vHo8z7gvnZy7uaJUsANkLQTbtZvAq7FHh/9PJrs9KfX4oLhn8IJtXp7MYsvXUlTCrhDogybQ3ErJYbjytbWfg7DTbAMqvms/nlbXMjo68CG6PP1Or+/hBNp7bbazDak/X2zzv8DaocFDs5vmOIAAAAASUVORK5CYII='/%3E%3C/defs%3E%3C/svg%3E\")}.wasabee-marker-icon.GotoPortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23e235a9'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23e235a9'/%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0ZM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80Z' style='fill:%23fff;fill-rule:nonzero' transform='matrix(.27734 0 0 .27734 106 116)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GotoPortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23e235a9'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23e235a9'/%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0ZM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80Z' style='fill:%23fff;fill-rule:nonzero' transform='matrix(.27734 0 0 .27734 106 116)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GotoPortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23e235a9'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23e235a9'/%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0ZM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80Z' style='fill:%23fff;fill-rule:nonzero' transform='matrix(.27734 0 0 .27734 106 116)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GotoPortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23e235a9'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23e235a9'/%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0ZM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80Z' style='fill:%23fff;fill-rule:nonzero' transform='matrix(.27734 0 0 .27734 106 116)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GetKeyPortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GetKeyPortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GetKeyPortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GetKeyPortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CreateLinkAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230a5d00'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230a5d00'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -160.998 89.266)'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -52.425 .075)'/%3E%3Cpath style='fill:%23fff' d='M94 230h135v9H94z' transform='matrix(.74708 -.61735 1.08552 1.31362 -210.742 -29.006)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CreateLinkAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230a5d00'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230a5d00'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -160.998 89.266)'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -52.425 .075)'/%3E%3Cpath style='fill:%23fff' d='M94 230h135v9H94z' transform='matrix(.74708 -.61735 1.08552 1.31362 -210.742 -29.006)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CreateLinkAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230a5d00'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230a5d00'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -160.998 89.266)'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -52.425 .075)'/%3E%3Cpath style='fill:%23fff' d='M94 230h135v9H94z' transform='matrix(.74708 -.61735 1.08552 1.31362 -210.742 -29.006)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CreateLinkAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230a5d00'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230a5d00'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -160.998 89.266)'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -52.425 .075)'/%3E%3Cpath style='fill:%23fff' d='M94 230h135v9H94z' transform='matrix(.74708 -.61735 1.08552 1.31362 -210.742 -29.006)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.MeetAgentPortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%236b543d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%236b543d'/%3E%3Cpath d='M157.5 85c18.502 0 33.5 14.998 33.5 33.5 0 18.502-14.998 33.5-33.5 33.5-18.502 0-33.5-14.998-33.5-33.5 0-18.502 14.998-33.5 33.5-33.5ZM157.5 158c24.577 0 44.5 19.923 44.5 44.5v31c0 34.475 1.973 34.5-44.5 34.5-46.332 0-44.5 1.243-44.5-34.5v-31c0-24.577 19.923-44.5 44.5-44.5Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.MeetAgentPortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%236b543d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%236b543d'/%3E%3Cpath d='M157.5 85c18.502 0 33.5 14.998 33.5 33.5 0 18.502-14.998 33.5-33.5 33.5-18.502 0-33.5-14.998-33.5-33.5 0-18.502 14.998-33.5 33.5-33.5ZM157.5 158c24.577 0 44.5 19.923 44.5 44.5v31c0 34.475 1.973 34.5-44.5 34.5-46.332 0-44.5 1.243-44.5-34.5v-31c0-24.577 19.923-44.5 44.5-44.5Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.MeetAgentPortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%236b543d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%236b543d'/%3E%3Cpath d='M157.5 85c18.502 0 33.5 14.998 33.5 33.5 0 18.502-14.998 33.5-33.5 33.5-18.502 0-33.5-14.998-33.5-33.5 0-18.502 14.998-33.5 33.5-33.5ZM157.5 158c24.577 0 44.5 19.923 44.5 44.5v31c0 34.475 1.973 34.5-44.5 34.5-46.332 0-44.5 1.243-44.5-34.5v-31c0-24.577 19.923-44.5 44.5-44.5Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.MeetAgentPortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%236b543d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%236b543d'/%3E%3Cpath d='M157.5 85c18.502 0 33.5 14.998 33.5 33.5 0 18.502-14.998 33.5-33.5 33.5-18.502 0-33.5-14.998-33.5-33.5 0-18.502 14.998-33.5 33.5-33.5ZM157.5 158c24.577 0 44.5 19.923 44.5 44.5v31c0 34.475 1.973 34.5-44.5 34.5-46.332 0-44.5 1.243-44.5-34.5v-31c0-24.577 19.923-44.5 44.5-44.5Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.OtherPortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233c3c3c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233c3c3c'/%3E%3Cpath d='M230 126 86 186.891 87 194l54 21 21 55 8-1 60-143Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.OtherPortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233c3c3c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233c3c3c'/%3E%3Cpath d='M230 126 86 186.891 87 194l54 21 21 55 8-1 60-143Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.OtherPortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233c3c3c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233c3c3c'/%3E%3Cpath d='M230 126 86 186.891 87 194l54 21 21 55 8-1 60-143Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.OtherPortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233c3c3c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233c3c3c'/%3E%3Cpath d='M230 126 86 186.891 87 194l54 21 21 55 8-1 60-143Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.RechargePortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233dcdff'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233dcdff'/%3E%3Cpath d='M118 109v89h24l-1 81 57-105h-32l34-86-82 21Z' style='fill:%23fff' transform='translate(0 8)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.RechargePortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233dcdff'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233dcdff'/%3E%3Cpath d='M118 109v89h24l-1 81 57-105h-32l34-86-82 21Z' style='fill:%23fff' transform='translate(0 8)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.RechargePortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233dcdff'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233dcdff'/%3E%3Cpath d='M118 109v89h24l-1 81 57-105h-32l34-86-82 21Z' style='fill:%23fff' transform='translate(0 8)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.RechargePortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233dcdff'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233dcdff'/%3E%3Cpath d='M118 109v89h24l-1 81 57-105h-32l34-86-82 21Z' style='fill:%23fff' transform='translate(0 8)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UpgradePortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23298566'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23298566'/%3E%3Cpath d='M190 267h-65v-84l-50 10 82.5-115L240 193l-50-10v84Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UpgradePortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23298566'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23298566'/%3E%3Cpath d='M190 267h-65v-84l-50 10 82.5-115L240 193l-50-10v84Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UpgradePortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23298566'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23298566'/%3E%3Cpath d='M190 267h-65v-84l-50 10 82.5-115L240 193l-50-10v84Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UpgradePortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23298566'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23298566'/%3E%3Cpath d='M190 267h-65v-84l-50 10 82.5-115L240 193l-50-10v84Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UseVirusPortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%238920c3'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%238920c3'/%3E%3Cpath d='m113 207-24 24-3 20 36-35 15.397 15.397 4.93.242 65.382-66.348s10.22 6.78 14.935 2.065S219 155 219 155l-17-19 10-11 12 11 8-9-32-32-9 9 11 12-10 10-18-17c-6.2-4.349-10.056-8.171-14.342-4.312-4.831 4.35 1.936 14.395 2.891 15.763l-65.19 65.19.309 5.175L113 207Z' style='fill:%23fff' transform='translate(6 10)'/%3E%3Cpath d='m176 123 28 27-31 31-26-28 29-30Z' style='fill:%238920c3' transform='translate(-29 46)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(15 2)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(4 13)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UseVirusPortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%238920c3'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%238920c3'/%3E%3Cpath d='m113 207-24 24-3 20 36-35 15.397 15.397 4.93.242 65.382-66.348s10.22 6.78 14.935 2.065S219 155 219 155l-17-19 10-11 12 11 8-9-32-32-9 9 11 12-10 10-18-17c-6.2-4.349-10.056-8.171-14.342-4.312-4.831 4.35 1.936 14.395 2.891 15.763l-65.19 65.19.309 5.175L113 207Z' style='fill:%23fff' transform='translate(6 10)'/%3E%3Cpath d='m176 123 28 27-31 31-26-28 29-30Z' style='fill:%238920c3' transform='translate(-29 46)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(15 2)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(4 13)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UseVirusPortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%238920c3'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%238920c3'/%3E%3Cpath d='m113 207-24 24-3 20 36-35 15.397 15.397 4.93.242 65.382-66.348s10.22 6.78 14.935 2.065S219 155 219 155l-17-19 10-11 12 11 8-9-32-32-9 9 11 12-10 10-18-17c-6.2-4.349-10.056-8.171-14.342-4.312-4.831 4.35 1.936 14.395 2.891 15.763l-65.19 65.19.309 5.175L113 207Z' style='fill:%23fff' transform='translate(6 10)'/%3E%3Cpath d='m176 123 28 27-31 31-26-28 29-30Z' style='fill:%238920c3' transform='translate(-29 46)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(15 2)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(4 13)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UseVirusPortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%238920c3'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%238920c3'/%3E%3Cpath d='m113 207-24 24-3 20 36-35 15.397 15.397 4.93.242 65.382-66.348s10.22 6.78 14.935 2.065S219 155 219 155l-17-19 10-11 12 11 8-9-32-32-9 9 11 12-10 10-18-17c-6.2-4.349-10.056-8.171-14.342-4.312-4.831 4.35 1.936 14.395 2.891 15.763l-65.19 65.19.309 5.175L113 207Z' style='fill:%23fff' transform='translate(6 10)'/%3E%3Cpath d='m176 123 28 27-31 31-26-28 29-30Z' style='fill:%238920c3' transform='translate(-29 46)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(15 2)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(4 13)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.ExcludeMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230d3188'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230d3188'/%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8Zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200Zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(74.339 99.339) scale(.33266)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.ExcludeMarker.wasabee-status-acknowledged,.wasabee-marker-icon.ExcludeMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230d3188'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230d3188'/%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8Zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200Zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(74.339 99.339) scale(.33266)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.ExcludeMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230d3188'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230d3188'/%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8Zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200Zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(74.339 99.339) scale(.33266)'/%3E%3C/svg%3E\")}.wasabee-defense-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\");background-size:cover}.wasabee-anchor-icon{background-size:25px 41px}.wasabee-anchor-icon.wasabee-layer-main{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23dd3d45'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupa{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23f77d07'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupb{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23f3df47'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupc{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23ab9b6b'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupd{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%238546d8'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupe{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%2300d4b7'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupf{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23dc3d96'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-portal-comment,.wasabee-portal-hardness{font-size:smaller;font-weight:lighter;margin-left:12px}.wasabee-portal-hardness a{color:red!important}",""]),e.exports=n},241:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-pane{background:transparent;border:0;height:100%;left:0;overflow:auto;position:absolute;top:0;width:100%}.wasabee-pane.hidden{display:none}.wasabee-pane .wasabee-dialog .header{background-color:rgba(8,48,78,.9);border:1px solid #20a8b1;color:#ffce00;font-size:1.3em;font-weight:700;line-height:1.5em;position:sticky;text-align:center;top:0}.wasabee-pane .wasabee-dialog .content{overflow-y:hidden}.wasabee-pane .wasabee-dialog .buttonset{background-color:rgba(8,48,78,.9);border:1px solid #20a8b1;bottom:0;position:sticky;text-align:right}.wasabee-pane .wasabee-dialog .buttonset button{background-color:rgba(8,48,78,.9);border:1px solid #ffce00;color:#ffce00;margin:2px;min-width:40px;padding:2px 4px}",""]),e.exports=n},397:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-dialog-blockerlist.wasabee-small-screen .ui-dialog-content,.wasabee-dialog-checklist.wasabee-small-screen .ui-dialog-content{padding:0}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:first-child input{width:3em}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:nth-child(3) span{display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;width:5em}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:nth-child(2)>div,.wasabee-dialog-linklist.wasabee-small-screen .wasabee-table td:nth-child(2)>div{grid-column-gap:2px;align-items:center;display:grid;grid-template-columns:auto auto auto}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:nth-child(2) a.wasabee-portal,.wasabee-dialog-linklist.wasabee-small-screen .wasabee-table td:nth-child(2) a.wasabee-portal{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:nth-child(2)>a.wasabee-portal\n.wasabee-dialog-linklist.wasabee-small-screen .wasabee-table td:nth-child(2)>a.wasabee-portal{display:inline-block;vertical-align:bottom;width:calc(100vw - 13em - 24px)}.wasabee-dialog-blockerlist.wasabee-small-screen .wasabee-table a.wasabee-portal{display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;width:40vw}.leaflet-touch li.wasabee-subactions a{width:inherit}",""]),e.exports=n},850:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-buttons{display:block;position:relative;text-align:center;text-decoration:none}.wasabee-buttons .leaflet-bar{list-style:none;padding-left:0}.wasabee-buttons .leaflet-bar>li{position:relative}.leaflet-touch .wasabee-buttons .leaflet-bar>li>a,.wasabee-buttons .leaflet-bar>li>a{border-radius:unset}.wasabee-buttons .leaflet-bar>li>a{border-bottom:1px solid #ccc}.wasabee-buttons .leaflet-bar>li:first-child>a{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-touch .wasabee-buttons .leaflet-bar>li:first-child>a{border-top-left-radius:2px;border-top-right-radius:2px}.wasabee-buttons .leaflet-bar>li:last-child>a{border-bottom:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.leaflet-touch .wasabee-buttons .leaflet-bar>li:last-child>a{border-bottom:none;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.wasabee-actions{display:none;left:26px;list-style:none;margin:0;padding:0;position:absolute;top:0;white-space:nowrap}.leaflet-touch .wasabee-actions{left:30px}.wasabee-buttons.leaflet-control a.active{background-color:#3c9}.wasabee-buttons.leaflet-control a.wasabee-toolbar-quickdelete.active{background-color:#e66}.wasabee-buttons.leaflet-control a.wasabee-toolbar-quickdelete.active.blink{animation:blink 2s infinite}@keyframes blink{50%{background-color:red}}.wasabee-actions li{border-bottom:1px solid transparent;display:block}.wasabee-subactions li{vertical-align:middle}.wasabee-subactions a{background-color:rgba(30,130,76,.66);border-left:1px solid #aaa;color:#fff;min-width:50px;padding-left:8px;padding-right:8px;width:auto}.wasabee-subactions a:hover{background-color:#a0a098;width:auto}.wasabee-subactions li:first-child a{border-left:none}.wasabee-subactions li:last-child a{-webkit-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.wasabee-actions-image{text-align:center;vertical-align:middle}.wasabee-toolbar-wasabee{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 800 600' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:10'%3E%3Cpath d='m693.958 342.221 141.486 33.873-136.558 35.954-4.928-69.827Z' style='fill:%23f2e794' transform='translate(-110 -67)'/%3E%3Cpath d='M554.884 74.903c45.364 16.383 61.546 89.138 36.145 162.503-25.401 73.365-93.848 113.396-128.131 103.174-40.752-12.15-61.546-89.138-36.144-162.503 25.401-73.365 82.767-119.557 128.13-103.174Z' style='fill:%23b6b6b6' transform='translate(-110 -67)'/%3E%3Cpath d='M479.375 188.5c128.751 0 233.125 84.786 233.125 189.375S608.126 567.25 479.375 567.25 246.25 482.464 246.25 377.875 350.624 188.5 479.375 188.5Z' style='fill:%23f2e794' transform='translate(-110 -67)'/%3E%3Cpath d='M716.932 123.894c39.34 28.655 33.999 103.001-11.93 166.058-45.93 63.056-124.039 81.874-154.395 62.289-36.085-23.283-33.999-103.002 11.93-166.058 45.93-63.057 115.055-90.944 154.395-62.289Z' style='fill:%23d6d6d6' transform='translate(-110 -67)'/%3E%3Cpath d='M397.5 364.75c6.213 0 11.25 9.514 11.25 21.25s-5.037 21.25-11.25 21.25-11.25-9.514-11.25-21.25 5.037-21.25 11.25-21.25ZM288.75 356c6.213 0 11.25 9.514 11.25 21.25s-5.037 21.25-11.25 21.25-11.25-9.514-11.25-21.25S282.537 356 288.75 356Z' style='fill:%232b2b21' transform='translate(-110 -67)'/%3E%3Cpath d='M312.505 424.759c3.092 13.713 19.538 54.991 29.407 54.991 9.881-3.814 13.814-30.418 19.335-52.807-32.987 1.55-34.736-.313-48.742-2.184Z' style='fill:%232b2b21;fill-opacity:.6' transform='translate(-110 -67)'/%3E%3C/svg%3E\")}.wasabee-toolbar-wasabee.wasabee-logged-in{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 800 600' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:10'%3E%3Cpath d='m693.958 342.221 141.486 33.873-136.558 35.954-4.928-69.827Z' style='fill:%2333cb99' transform='translate(-110 -67)'/%3E%3Cpath d='M554.884 74.903c45.364 16.383 61.546 89.138 36.145 162.503-25.401 73.365-93.848 113.396-128.131 103.174-40.752-12.15-61.546-89.138-36.144-162.503 25.401-73.365 82.767-119.557 128.13-103.174Z' style='fill:%23b6b6b6' transform='translate(-110 -67)'/%3E%3Cpath d='M479.375 188.5c128.751 0 233.125 84.786 233.125 189.375S608.126 567.25 479.375 567.25 246.25 482.464 246.25 377.875 350.624 188.5 479.375 188.5Z' style='fill:%2333cb99' transform='translate(-110 -67)'/%3E%3Cpath d='M716.932 123.894c39.34 28.655 33.999 103.001-11.93 166.058-45.93 63.056-124.039 81.874-154.395 62.289-36.085-23.283-33.999-103.002 11.93-166.058 45.93-63.057 115.055-90.944 154.395-62.289Z' style='fill:%23d6d6d6' transform='translate(-110 -67)'/%3E%3Cpath d='M397.5 364.75c6.213 0 11.25 9.514 11.25 21.25s-5.037 21.25-11.25 21.25-11.25-9.514-11.25-21.25 5.037-21.25 11.25-21.25ZM288.75 356c6.213 0 11.25 9.514 11.25 21.25s-5.037 21.25-11.25 21.25-11.25-9.514-11.25-21.25S282.537 356 288.75 356Z' style='fill:%2327775b' transform='translate(-110 -67)'/%3E%3Cpath d='M312.505 424.759c3.092 13.713 19.538 54.991 29.407 54.991 9.881-3.814 13.814-30.418 19.335-52.807-32.987 1.55-34.736-.313-48.742-2.184Z' style='fill:%231f3d33;fill-opacity:.6' transform='translate(-110 -67)'/%3E%3Cpath d='m194.107 270.297 78.954 152.659 66.91-72.312-145.864-80.347' style='fill:%231f6d53;stroke:%23203e34;stroke-width:10.42px' transform='translate(-110 -67)'/%3E%3Cpath d='M520.629 305.114 402.867 437.686l-62.896-85.703 177.981-48.208' style='fill:%23206d53;stroke:%23203e34;stroke-width:10.42px' transform='translate(-110 -67)'/%3E%3Cpath d='M198.121 260.923c5.913 0 10.706 4.797 10.706 10.713 0 5.917-4.793 10.713-10.706 10.713-5.912 0-10.705-4.796-10.705-10.713 0-5.916 4.793-10.713 10.705-10.713Z' style='fill:%2307bd81' transform='translate(-110 -67)'/%3E%3Cpath d='M198.121 250.507c-11.663 0-21.122 9.458-21.122 21.129 0 11.672 9.459 21.13 21.122 21.13 11.664 0 21.123-9.458 21.123-21.13 0-11.671-9.459-21.129-21.123-21.129Zm0 10.416c5.913 0 10.706 4.797 10.706 10.713 0 5.917-4.793 10.713-10.706 10.713-5.912 0-10.705-4.796-10.705-10.713 0-5.916 4.793-10.713 10.705-10.713Z' style='fill:%23203e34' transform='translate(-110 -67)'/%3E%3Cpath d='M273.061 413.582c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%2308bd80' transform='translate(-110 -67)'/%3E%3Cpath d='M273.061 403.165c-11.664 0-21.123 9.458-21.123 21.13 0 11.671 9.459 21.129 21.123 21.129 11.663 0 21.122-9.458 21.122-21.129 0-11.672-9.459-21.13-21.122-21.13Zm0 10.417c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%23203e34' transform='translate(-110 -67)'/%3E%3Cpath d='M338.633 343.948c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%2307bd81' transform='translate(-110 -67)'/%3E%3Cpath d='M338.633 333.531c-11.664 0-21.122 9.458-21.122 21.13 0 11.671 9.458 21.129 21.122 21.129 11.663 0 21.122-9.458 21.122-21.129 0-11.672-9.459-21.13-21.122-21.13Zm0 10.417c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%23203e34' transform='translate(-110 -67)'/%3E%3Cpath d='M402.867 429.651c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%2307bd81' transform='translate(-110 -67)'/%3E%3Cpath d='M402.867 419.234c-11.664 0-21.123 9.459-21.123 21.13s9.459 21.129 21.123 21.129c11.663 0 21.122-9.458 21.122-21.129 0-11.671-9.459-21.13-21.122-21.13Zm0 10.417c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%23203e34' transform='translate(-110 -67)'/%3E%3Cpath d='M520.629 293.062c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%2307bd81' transform='translate(-110 -67)'/%3E%3Cpath d='M520.629 282.645c-11.664 0-21.123 9.458-21.123 21.13 0 11.671 9.459 21.129 21.123 21.129 11.663 0 21.122-9.458 21.122-21.129 0-11.672-9.459-21.13-21.122-21.13Zm0 10.417c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%231f3d33' transform='translate(-110 -67)'/%3E%3C/svg%3E\")}.wasabee-toolbar-op{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 191 152' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='M91 86h135' style='fill:none;stroke:%23000;stroke-width:10px' transform='translate(-48 -61)'/%3E%3Cpath d='M91 86h135' style='fill:none;stroke:%23000;stroke-width:10px' transform='translate(-48 -11)'/%3E%3Cpath d='M91 86h135' style='fill:none;stroke:%23000;stroke-width:10px' transform='translate(-48 39)'/%3E%3Ccircle cx='65' cy='84' r='6' style='stroke:%23000;stroke-opacity:0;stroke-width:10px' transform='translate(-51 -59)'/%3E%3Ccircle cx='65' cy='84' r='6' style='stroke:%23000;stroke-opacity:0;stroke-width:10px' transform='translate(-51 -9)'/%3E%3Ccircle cx='65' cy='84' r='6' style='stroke:%23000;stroke-opacity:0;stroke-width:10px' transform='translate(-51 41)'/%3E%3C/svg%3E\");background-size:60%}.wasabee-toolbar-quickdraw{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='M0 16 8.079 0 16 16H0Z' style='fill:none;stroke:%23000;stroke-width:.44px' transform='translate(4 5) scale(18.1875)'/%3E%3Cpath d='M8 294 151 66l143 229-284.144-3.959L151 169l141.159 123.051' style='fill:none;stroke:%23000;stroke-width:8.74px' transform='matrix(1 0 0 .82096 0 52.817)'/%3E%3C/svg%3E\");background-size:60%}.wasabee-toolbar-quickdelete{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='m5 7 3 15h10l3-15M5.5 9.5 20 12 6.5 14.5 19 17 7.5 19.5 18 22m2.5-12.5L6 12l13.5 2.5L7 17l11.5 2.5L8 22' fill='none' stroke='%23000'/%3E%3C/svg%3E\");background-size:60%}.wasabee-toolbar-link{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cg style='fill:none;stroke:%23000;stroke-width:2'%3E%3Cpath d='M9 13a4 4 90 1 0 4 4M13 9a4 4 90 1 1 4 4'/%3E%3C/g%3E%3Cpath stroke='%23000' stroke-width='2' stroke-linecap='round' d='m9 17 8-8'/%3E%3Cg style='stroke:%23000;stroke-width:2;stroke-linecap:square'%3E%3Cpath d='M20 18v4M18 20h4'/%3E%3C/g%3E%3C/svg%3E\")}.wasabee-toolbar-marker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M6 8v6l5 3 5-3V8l-5-3v4a2 2-180 0 1 0 4 2 2-180 0 1 0-4V5'/%3E%3Cpath d='m6 16 5 3 5-3-5 7z'/%3E%3Cg style='stroke:%23000;stroke-width:2;stroke-linecap:square'%3E%3Cpath d='M19 17v4M17 19h4'/%3E%3C/g%3E%3C/svg%3E\")}.wasabee-toolbar-sync{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M11 8h4v4h3l-5 5-5-5h3z'/%3E%3Cpath stroke='%23000' stroke-linecap='round' d='M8 19h10'/%3E%3C/svg%3E\")}.wasabee-toolbar-sync.loading,.wasabee-toolbar-upload.loading{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==)}.wasabee-toolbar-upload{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M8 9a5 5 0 0 0 1 11h8l-2-2h-4v-4H8l5-5 5 5h-3v4l2 2a5 5 0 0 0 1-11A6 8 0 0 0 8 9'/%3E%3C/svg%3E\")}",""]),e.exports=n},868:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,'.wasabee-table tr{background:rgba(25,63,95,.75)}.wasabee-table tbody tr:nth-child(odd){background:rgba(8,48,78,.75)}.wasabee-table>thead .sortable:before{content:" ";display:inline-block;float:right;min-width:1em;text-align:right}.wasabee-table{border-collapse:collapse;clear:both;empty-cells:show;width:100%}.wasabee-table td,.wasabee-table th{border-style:solid;border-width:0 1px;padding:3px 4px;text-align:left;vertical-align:baseline}.wasabee-table td:first-child,.wasabee-table th:first-child{border-left-width:0}.wasabee-table td:last-child,.wasabee-table th:last-child{border-right-width:0}.wasabee-table>thead .sortable.asc:before{content:"\\25b2"}.wasabee-table>thead .sortable.desc:before{content:"\\25bc"}.wasabee-table input[type=color]{vertical-align:middle}.wasabee-dialog-agent ul{padding-left:0}.wasabee-dialog-agent li{list-style:none}.wasabee-agent-label a{color:#ffb;font-size:12px;line-height:16px;overflow:hidden;padding:2px;pointer-events:none;text-align:center;text-overflow:ellipsis;text-shadow:1px 1px #000,1px -1px #000,-1px 1px #000,-1px -1px #000,0 0 5px #000;white-space:nowrap}.wasabee-dialog .container{align-items:center}.wasabee-dialog input[type=checkbox]{margin:auto}.wasabee-dialog button.drawb:before{content:"🐝"}.wasabee-dialog-about{max-width:min-content}.wasabee-agent-menu{align-items:center}.wasabee-dialog-auth .content{display:grid}.wasabee-dialog-autodraws div.container{display:grid;grid-template-columns:1fr;padding:4px}.wasabee-dialog-autodraws a{grid-column-end:2;grid-column-start:1}.wasabee-dialog-confirm{align-items:center}.wasabee-dialog-wdkeys div.container{display:grid}.wasabee-dialog-wdkeys div.portal{padding:4px 0 8px}.wasabee-dialog-wdkeys input{padding:4px}.wasabee-dialog-export textarea{height:250px;resize:vertical;width:96%}.wasabee-dialog-import textarea{height:250px;resize:vertical;width:100%}.wasabee-dialog-keyslist .enough{color:#03fe03;font-weight:700}.wasabee-dialog-keyslist .notenough{color:#ffce00;font-weight:700}.wasabee-dialog-manageteam div.container{display:grid;grid-template-columns:1fr 1fr 1fr}.wasabee-dialog-manageteam div.list{grid-column-end:4;grid-column-start:1}.wasabee-dialog-manageteam label{grid-column-end:2;grid-column-start:1}.wasabee-dialog-manageteam input{grid-column-end:3;grid-column-start:2;margin:2px}.wasabee-dialog-manageteam button{grid-column-end:4;grid-column-start:3}.wasabee-dialog-markeradd div.content{align-items:baseline;column-gap:8px;display:grid;grid-template-columns:repeat(2,auto);row-gap:8px}.wasabee-dialog-markeradd div.portal{grid-column:1/span 2}.wasabee-dialog-markeradd div.content button{border:2px solid #daa520;border-radius:35px;cursor:pointer;grid-column:1/span 2;margin:0 25px;padding:4px;text-align:center;text-decoration:underline}.wasabee-dialog-markeradd div.bulk{grid-column:2}.wasabee-dialog-markeradd div.content input{grid-column:1/span 2}.wasabee-dialog-op-settings .ui-tabs-panel{padding-top:12px}.wasabee-dialog-newop div.buttonset{display:grid;grid-template-columns:1fr}.wasabee-dialog-op-settings div.advanced,.wasabee-dialog-op-settings div.topset{align-items:center;display:grid;gap:4px 6px;grid-template-columns:auto auto}.wasabee-dialog-op-settings div.advanced .desc{font-weight:700;grid-column:1/3}.wasabee-dialog-op-settings div.advanced .checkbox{grid-column:1/3}.wasabee-dialog-op-settings div.advanced .checkbox input{margin-right:.5rem;vertical-align:middle}.wasabee-dialog-op-settings div.advanced .import{grid-column:2}.wasabee-dialog-op-settings div.advanced select{width:100%}.wasabee-dialog-op-settings textarea{height:50px;resize:vertical;width:auto}.wasabee-dialog-op-settings p.comment,.wasabee-dialog-op-settings textarea{grid-column-end:3;grid-column-start:1}.wasabee-dialog-op-settings input[type=color]{min-width:100%;-moz-transform:scale(1)}.wasabee-dialog-op-settings div.buttonset{display:grid;grid-template-columns:1fr}.wasabee-dialog-op-settings div.buttonset button{margin:4px;width:100%}.wasabee-dialog-op-settings .wasabee-table .actions{white-space:nowrap}.wasabee-dialog-op-settings .wasabee-table .actions a{padding:.25em}.wasabee-dialog-ops div.container{overflow-y:hidden}.wasabee-dialog-ops .wasabee-table .actions{white-space:nowrap}.wasabee-dialog-ops .wasabee-table .actions a{padding:.25em}.wasabee-dialog-ops .wasabee-table.hideOps .visibility{display:none}.wasabee-dialog-checklist .wasabee-table .actions{white-space:nowrap}.wasabee-dialog-checklist .wasabee-table .actions a{padding:.25em}.wasabee-dialog-checklist .wasabee-table .order input{width:4rem}.wasabee-dialog-perms .add-perm{display:grid;grid-template-columns:repeat(4,auto)}.wasabee-dialog-perms .add-perm select{width:100%}.wasabee-dialog-prompt .container{display:grid}.wasabee-dialog-prompt input,.wasabee-dialog-prompt label{padding:4px}.wasabee-dialog-setcomment .container{display:grid}.wasabee-dialog-setcomment div.desc{padding:4px}.wasabee-dialog-setcomment input{padding:4px;width:96%}.wasabee-dialog-settings div.container>*{display:block;margin:.3em 0;width:100%}.wasabee-dialog-settings div.container>:first-child{border:none;margin:0}.wasabee-dialog-settings label{border-top:1px solid #fff5;padding:.3em 0 0}.wasabee-dialog-settings label.checkbox input{margin-right:.5rem;vertical-align:middle}.wasabee-dialog-trawl div.container{display:grid;grid-template-columns:1fr}.wasabee-dialog-trawl div.container div{display:grid;grid-template-columns:auto auto}.wasabee-dialog-wasabee div.container{display:grid}.wasabee-dialog-wasabee button.sendloc,.wasabee-dialog-wasabee button.server{grid-column-start:1}.wasabee-dialog-skin div.content{display:grid;grid-template-columns:auto auto}.wasabee-dialog-skin div.desc{grid-column:1/span 2}.wasabee-dialog-skin ol.left{margin-right:1em}.wasabee-dialog-skin ol.left,.wasabee-dialog-skin ul.right{border:1px solid #fff;clear:both;padding-left:0}.wasabee-dialog-skin ul.right{list-style-type:none}.wasabee-dialog-skin li{border:1px solid #888;height:1.5em;list-style-position:inside;padding:3px}.wasabee-link-seperator{padding-left:.5em;padding-right:.5em}.CapturePortalMarker{color:#7d7d7d}.LetDecayPortalAlert{color:#000}.DestroyPortalAlert{color:#ce3b37}.FarmPortalMarker{color:#f17030}.GotoPortalMarker{color:#e235a9}.GetKeyPortalMarker{color:#78b32c}.CreateLinkAlert{color:#0a5d00}.MeetAgentPortalMarker{color:#6b553d}.OtherPortalAlert{color:#3c3c3c}.RechargePortalAlert,.UpgradePortalAlert{color:#298566}.UseVirusPortalAlert{color:#400080}.ExcludeMarker{color:#009}.field-count li.empty-field-link div{display:inline;padding-left:1em}.field-count li.inner-link>div{display:inline}.field-count ul{padding-left:1em}.wasabee-dialog-conflict .conflicts{background:#0004;border-collapse:collapse;clear:both;empty-cells:show;width:100%}.wasabee-dialog-conflict .conflicts tr:nth-child(odd){background:#0004}.wasabee-dialog-conflict .conflicts td,.wasabee-dialog-conflict .conflicts th{border-style:solid;border-width:0 1px;padding:3px 4px;text-align:left;vertical-align:baseline}.wasabee-dialog-conflict .conflicts td:first-child,.wasabee-dialog-conflict .conflicts th:first-child{border-left-width:0}.wasabee-dialog-conflict .conflicts td:last-child,.wasabee-dialog-conflict .conflicts th:last-child{border-right-width:0}.wasabee-dialog-conflict .conflicts th:nth-child(2),.wasabee-dialog-conflict .conflicts th:nth-child(3){width:2em}.wasabee-dialog-conflict .strike{padding-right:.5em;text-decoration:line-through red}.wasabee-dialog-conflict .diff-label{padding-right:.5em}#dialog-wasabee-filter{padding:0}#dialog-wasabee-filter .ui-tabs-panel{padding:12px}.wasabee-dialog-filter .tabs .nav{padding-left:12px}.wasabee-dialog-filter .filters,.wasabee-dialog-filter .filters .set-portal-small{grid-gap:.3em .6em;align-items:center;display:grid;grid-template-columns:auto auto}.wasabee-dialog-filter .filters .set-portal-small{grid-template-columns:auto min-content}.wasabee-dialog-filter .filters .apply{grid-column:1/3}.wasabee-dialog-filter .actions{grid-gap:.3em .6em;align-items:center;display:grid;grid-template-columns:auto auto auto}.wasabee-dialog-filter .actions .desc{grid-column:1/4}.wasabee-dialog-filter .filters .desc{grid-column:1/3}.wasabee-dialog-filter label.checkbox input{margin-right:.5rem}input[type=color].hidden-color-picker{border:0;height:0;margin:0;padding:0;visibility:hidden;width:0}',""]),e.exports=n},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a="",o=void 0!==t[5];return t[4]&&(a+="@supports (".concat(t[4],") {")),t[2]&&(a+="@media ".concat(t[2]," {")),o&&(a+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),a+=e(t),o&&(a+="}"),t[2]&&(a+="}"),t[4]&&(a+="}"),a})).join("")},t.i=function(e,a,o,n,i){"string"==typeof e&&(e=[[null,e,void 0]]);var r={};if(o)for(var s=0;s0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=i),a&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=a):d[2]=a),n&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=n):d[4]="".concat(n)),t.push(d))}},t}},81:e=>{"use strict";e.exports=function(e){return e[1]}},171:e=>{e.exports=function(e){return!(!e||"string"==typeof e)&&(e instanceof Array||Array.isArray(e)||e.length>=0&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&"String"!==e.constructor.name))}},158:e=>{e.exports='\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\n'},851:(e,t,a)=>{"use strict";var o=a(171),n=Array.prototype.concat,i=Array.prototype.slice,r=e.exports=function(e){for(var t=[],a=0,r=e.length;a{var o=a(426);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},419:(e,t,a)=>{var o=a(509);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},282:(e,t,a)=>{var o=a(283);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},525:(e,t,a)=>{var o=a(241);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},118:(e,t,a)=>{var o=a(397);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},835:(e,t,a)=>{var o=a(850);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},226:(e,t,a)=>{var o=a(868);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()}},t={};function a(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={id:o,exports:{}};return e[o](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var o in t)a.o(t,o)&&!a.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=a(226),t=a.n(e),o=a(840),n=a.n(o),i=a(835),r=a.n(i),s=a(282),l=a.n(s),c=a(525),d=a.n(c),u=a(118),p=a.n(u),m=a(419),h=a.n(m),g=a(158),f=a.n(g);const E={Deutsch:JSON.parse('{"ABOUT_WASABEE":"Über Wasabee","acknowledged":"Bestätigt","ADD LINK TITLE":"Dialog - Links hinzufügen","ADD MARKER TITLE":"Dialog - Markierung hinzufügen","ADD_AGENT":"Füge Agent hinzu:","ADD_BL":"Füge Portal zur Ankerkette hinzu:","ADD_BULK":"Bulk hinzufügen","ADD_BUTTON_LINKS":"Alle Links auf einmal hinzufügen.","ADD_LINKS":"Füge Links hinzu","ADD_MARKER":"Füge Markierung hinzu","ADD_NEW_OP":"Füge Op hinzu","ADD_SUCC_INSTR":"Erfolgreich hinzugefügt","ADD_ZONE":"Zone hinzufügen","ADD":"Hinzufügen","ADD1":"Ersten Link hinzufügen","ADD2":"Zweiten Link hinzufügen","AGENT_STATS":"Agent Stats","AGENT":"Agent","AGES":"vor langer Zeit","ALREADY_HAS_MARKER":"Dieses Portal hat bereits eine Markierung. Bitte wähle ein anderes Portal.","AMAZ_TEAM_NAME":"Toller Teamname","ANCHOR ASSIGNMENT":"Alle ausgehenden Links zuweisen an:","ANCHOR_GMAP":"Google Map","ANCHOR_PORTAL":"Anker Portal","ANCHOR_PORTAL2":"Anker Portal 2","ANCHOR_PORTAL3":"Anker Portal 3","ANCHOR1":"Anker 1","ANCHOR2":"Anker 2","ANCHOR3":"Anker 3","ANCHORS_AS_BOOKMARKS":"Anker als Lesezeichen","API_KEY":"Rocks API-Schlüssel:","ASS_TO":"Zugewiesen an","ASSIGN LINK PROMPT":"Link zugewiesenen von: {portalName}","ASSIGN MARKER PROMPT":"Markierung zugewiesenen von: {portalName}","ASSIGN OUTBOUND PROMPT":"Alle ausgehenden Links zugewiesenen von: {portalName}","ASSIGN OUTBOUND":"Ordne ausgehende Links zu","ASSIGN":"Zuweisen","ASSIGNED_ONLY_SHORT":"nz","ASSIGNED_ONLY":"Nur zugewiesen","assigned":"Zugewiesen","AUTH INCOMPAT":"Du hast ein Plugin aktiviert welches inkompatibel zu Wasabee ist.","AUTH REQUIRED":"Authorisierung benötigt","AUTH TOKEN REJECTED":"Senden des Autorisierungcodes ist fehlgeschlagen: {error}","AUTH_SELECT_ACCOUNT":"Benutzerkonto auswählen","AUTO_DRAWS":"Auto-draw","AUTODRAWS":"Wasabee Auto-draw Optionen","AUTODRAW_PORTALS_SET":"Portale","autodraw.common.draw_button":"Draw","autodraw.fanfield.result":"Fanfield hat {links} Links und {fields} Felder für {ap} AP gefunden","autodraw.flipflop.result":"Flip flop: hat {count} Links gefunden","autodraw.homogeneous.missing_split":"Konnte {count} Teilungen nicht finden, versuche weniger Tiefe oder eine andere Region","autodraw.homogeneous.order":"Ordnung","autodraw.homogeneous.portals_required":"{count} erforderlich","autodraw.madrid.auto_determined":"Automatisch bestimmt","autodraw.madrid.balanced":"Ausgeglichen","autodraw.madrid.result":"Madrid hat {count} Ebenen gefunden","autodraw.multimax.result":"Multimax hat {count} Ebenen gefunden","autodraw.multimax.result_both_side":"Multimax hat {count1} und {count2} Ebenen gefunden","autodraw.onion.variant":"Option","autodraw.onion.variant.equilateral":"~Gleichseitig","autodraw.onion.variant.grow":"Los!","autodraw.onion.variant.balanced":"Perfekt ausgeglichen","AUTOLOAD_RATE":"Portaldetail-Anfragerate (ms)","AUTOLOAD":"Fehlende Portal-Details automatisch laden","AUTOMARK STOP":"Automatische Markierung gestoppt - Portale nicht vollständig geladen.","AUTOMARK":"Auto-Markieren","BAT_TOAD":"Kampffrösche","BLOCKER LIST TITLE":"Zeige alle Blocker an","BLOCKER TITLE":"Blocker","CANCEL":"Abbrechen","CAPSULE":"Kapsel","CapturePortalMarker":"Capture","CHANGE SERVER PROMPT":"Neuer Wasabee Server","CHANGE SERVER":"Wechsle Server","CHANGE_WAS_SERVER":"Wechsle Wasabee Server","CHECKLIST BUTTON TITLE":"Checkliste Operationen","CHECKLIST BUTTON":"Checliste","CLEAR LINKS":"Links löschen","CLEAR MARKERS":"Markierung aufheben","CLEAR_EVERYTHING":"Lösche Portale/Links/Marker für aktuelle OP","CLEAROPS BUTTON TITLE":"Lösche alle Wasabee Daten","CLEAROPS BUTTON":"Lösche Wasabee Daten","CLEAROPS PROMPT":"Das wird alle Wasabee Daten Löschen. Bei dem nächsten Sync wird alles wiederhergestellt.","CLOSE":"Schließen","COMMENT":"Kommentar","COMPLETED BY":"Abgeschlossen von {agentName}","completed":"Abgeschlossen","CON_DEL":"Bestätige Löschen: {opName}","COUNT":"Anzahl","CREATE_NEW_TEAM":"Erstelle neues Team","CreateLinkAlert":"Link","CUR_USER_INFO":"Aktuelle Nutzer Informationen","D_SHOW_LIST":"Defensive Schlüssel eingeben","DEFAULT OP NAME":"Neue Operation: {date}","DELETE ANCHOR PROMPT":"Möchtest du den Anker mit allen zugewiesenen Links löschen? :","DELETE ANCHOR TITLE":"Anker löschen","DELETE MARKER PROMPT":"Möchtest du die Markierung löschen? :","DELETE MARKER TITLE":"Markierung löschen","DELETE_ANCHOR":"Löschen","DELETE_LINK":"Löschen","DELETE_OP":"Lösche {opName}","DESCRIP_PLACEHOLD":"Beschreibung (optional)","DestroyPortalAlert":"Zerstören","dialog.about.download_mobile_app":"

Wasabee App:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Kommentar für {agentName} einfügen","dialog.auth.ott.button":"Einmal-Token Login","dialog.auth.ott.text":"Holen Sie sich einen Token vom Wasabee Server, dann fügen Sie diesen hier ein","dialog.auth.ott.title":"Einmal-Token","dialog.blockers.clear_automark":"Automarkierung löschen","dialog.clear_all.text":"Möchten Sie {opName} zurücksetzen?","dialog.clear_all.title":"Clear: {opName}","dialog.clear_links.text":"Möchten Sie alle Links von {opName} entfernen?","dialog.clear_links.title":"Links löschen: {opName}","dialog.clear_markers.text":"Möchten Sie alle Markierungen von {opName} entfernen?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Count fields","dialog.checklist.count_fields.no_empty":"Found {fieldCount} fields and no empty field","dialog.checklist.count_fields.with_empty":"Found {fieldCount} fields and {emptyCount} empty field(s) on {linkCount} link(s)","dialog.checklist.count_fields.link_from_inside":"Found {count} links from covered portals","dialog.checklist.count_fields.link_from_inside.covered_at_order":" bei {order} per Link ","dialog.common.color":"Color","dialog.common.commands":"Befehle","dialog.common.commands_short":"Cmds","dialog.common.delete":"Löschen","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Name","dialog.common.off":"Aus","dialog.common.on":"Ein","dialog.common.owner":"Eigentümer","dialog.common.zone_all":"All","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Besuche {url} und drücke den Button, um Live-Updates zu autorisieren. Du musst IITC später neu laden.","dialog.import.url":"Von URL befüllen","dialog.import.success_message":"Import abgeschlossen. {count} Portale gefunden und {faked} gefälscht verwendet. Bitte nutze die Swap-Funktion, um gefälschte Portale zu den echten Portalen am gleichen Ort zu bewegen. Das Einzoomen der \'Laden\'-Portale in der Checkliste kann sie zum Laden zwingen.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"If you leave {teamName} you cannot rejoin unless the owner re-adds you.","dialog.leave_team.title":"Verlassen: {teamName}","dialog.link_list.length":"Länge","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Upload abbrechen","dialog.conflict.conflicts":"Konflikte:","dialog.conflict.local":"Lokale Kopie","dialog.conflict.server":"Server-Kopie","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Zuweisen:","dialog.conflict.prop.comment":"Kommentar:","dialog.conflict.prop.color":"Farbe:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"Von:","dialog.conflict.prop.hardness":"Schwiergkeitsgrad:","dialog.conflict.prop.order":"Reihenfolge:","dialog.conflict.prop.state":"Status:","dialog.conflict.prop.toPortal":"Nach:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Actions","dialog.online_agents.last_seen":"Zuletzt gesehen","dialog.online_agents.title":"Agenten online","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zonen","dialog.ops_list.background_disable":"Disable background","dialog.ops_list.background_enable":"Im Hintergrund anzeigen","dialog.ops_list.download":"{opName} herunterladen","dialog.ops_list.last_fetched":"Zuletzt abgerufen: {date}","dialog.ops_list.local_change":"Local has changed","dialog.ops_list.remote_change":"Remote has changed","dialog.ops_list.toggle_hide":"Ein-/Ausblenden umschalten","dialog.ops_list.unhide_ops":"Alle OPs anzeigen","dialog.remove_agent.text":"Möchten Sie {agentName} aus {teamName} entfernen?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Schwierigkeitsgrad","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"W-D-Schlüssel laden","dialog.team_list.share_wd_keys":"W-D Schlüssel teilen","dialog.team_manage.join_link":"Beitrittslink","dialog.team_manage.join_link.create":"Erzeugen","dialog.team_manage.join_link.revoke":"Widerrufen","dialog.team_members.location":"Standort wird geteilt","dialog.team_members.wd_keys":"W-D Schlüssel teilen","dialog.team_message":"Teamankündigung: „{message}“ von {sender}","dialog.update_warning":"Wasabee ist veraltet. Bitte aktualisiere über deinen Plugin Manager oder gehe zu https://wasabee.rocks","dialog.zone_color.title":"Zonenfarbe","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Farbe","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zonen","DRAW TOOLS FORMAT":"Draw Tools Format","DUPE_OP":"Dupliziere Operation","END_PORT":"Endportal","ExcludeMarker":"Von Auto-Draw/Markieren ausschließen","EXPORT OP TITLE":"Exportiere aktuelle Operation ","EXPORT OP":"Exportiere Op","EXPORT":"Exportieren:","FAKED":"Gefaked: [{portalId}]","FANFIELD":"Fächerfeld!","FANFIELD2":"Fächerfeld","FarmPortalMarker":"Farm","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Findet für einen gegebenen Anker, eine Reihe von sichtbaren Portalen und einer Anzahl von SBUL ein Fächer-Feld, um Portale vom Anker in absteigender Reihenfolge (nach Distanz) anzulinken, um die Suche nach dem nächsten korrekten Schlüssel zu vermeiden.","FLIP_FLOP_INSTRUCTION":"Wähle ein Portal aus, zoome nach genug, um genug Portale zu sehen und klicke auf Zeichnen. Sobald ein Fächer-Feld gefunden wurde, kannst du nach anderen Ankern für einen darauf folgenden Wiederaufbau suchen","FLIP_FLOP_FIND_ANCHORS":"Finde andere Anker","FROM_1-2":"von Basis 1-2","FROM_1-3":"von Basis 1-3","FROM_2-3":"von Basis 2-3","FROM_DEPTH":"von innen heraus","FROM_PORT":"Von Portal","GET DT":"Existierenden DrawTools Draw erhalten","GetKeyPortalMarker":"Schlüssel beziehen","GotoPortalMarker":"Gehe zu","H-GEN_INST":"Portale für das äußere Layer festlegen. Wähle die Anzahl der Aufteilungen. Klicke auf Zeichnen","HF_DEEP_SEARCH":"Ausführliche Suche","HF_DRAW_BUTTON":"Zeichnen","HF_REDRAW_BUTTON":"Neu zeichnen","HG":"Homogenes Feld","HOURS":"vor ({hours} Stunden)","HOW_TO_VIDS":"

Erklärungsvideos:

","IMP_NOPE":"Import Fehlgeschlagen: {error}","IMP_WAS_OP":"Importiere Wasabee Operation","IMPORT_OP_SUCCESS":"Importierte Operation: {opName}. Erfolgreich.","IMPORT_OP_TITLE":"Importierte Op: {date}","IMPORT_OP":"Importiere Operation","IMPOSSIBLE":"Unmöglich","INGNAME_GID":"Ingress name oder GoogleID","INPUT_DT_KEY_COUNT":"Eingabe defensiver Schlüssel","INVALID REQUEST":"Ungültige Anfrage","IOS NEED FAKE UA":"Du musst \'Custom UserAgent for Webviews\' in den IITC-Mobile Einstellungen aktivieren der Login wird fehlgeschlagen","KEY_LIST2":"Schlüsselliste: {opName}","KEYS":"Schlüssel","KNOWN_BLOCK":"Bekannte Blocker: {opName}","LA DESC":"Ausgehend von der Anzahl und Typ von Link-Amps könnte ein niedrigeres Portallevel ausreichen","LA":"L8+ einige LA","LANG":"Sprache","LEAVE":"Verlassen","LetDecayPortalAlert":"Decayen lassen","LINK ASSIGNMENT":"Link zuweisen an:","LINK STATE PROMPT":"Linkstatus","LINK STATE":"Linkstatus festlegen:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Portale laden","LOADING":"[laden]","LOADING1":"Lade: [{portalGuid}]","LOC_PROC":"Standort verarbeitet","LOCATION SUB":"Standort registriert","LOCFRMSER":" (lokal und vom Server)","LOG IN":"Einloggen","LOG_OUT":"Ausloggen","MADRID_SET_1":"Wähle die Region für den Baselink-Anker 2 zu Anker 3","MADRID_SET_2":"Wähle die Region für den Baselink-Anker 3 zu Anker 1","MADRID_SET_3":"Wähle die Region für den Baselink-Anker 1 zu Anker 2","MADRID_TITLE":"Madrid Protokoll","MADRID_WAS_TAKEN":"Madrid Protokoll","MADRID":"Zeichnen","MANAGE_TEAM":"Verwalten {teamName}","MANAGE":"Verwalten","MARKER ASSIGNMENT":"Marker zuweisen an:","MARKER LIST TITLE":"Liste der Markierungen","MARKER LIST":"Markierungen","MARKER STATE PROMPT":"Marker Status","MARKER STATE":"Marker-Status setzen:","MARKER_LIST":"Liste Makerierungen: {opName}","MARKERS BUTTON TITLE":"Markierungen","MAX_SPLITS":"Max. Aufteilungen","MAX":"Fächerfeld","MeetAgentPortalMarker":"Treffe Agenten","MERGE ON UPDATE":"Beim Update zusammenführen","MERGE_CHANGES_LOCAL":"Lokale Änderungen","MERGE_CHANGES_MERGE":"Ergebnis zusammenführen","MERGE_CHANGES_REMOTE":"Änderungen Dritter","MERGE_LOCAL":"Lokal speichern","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, replace the local version with the server version, or cancel?","MERGE_REBASE":"Rebase","MERGE_REPLACE":"Replace","MERGE_TITLE":"Lokal&Remote-OP zusammenführen","MIN_SRC_PORT_LVL":"Minimaler benötigter Level im Ausgangsportal","MINUTES":"vor ({minutes} Minuten)","MM":"Maximale Feldanzahl","MM_BOTH_SIDE":"Benutze beide Basisseiten","MM_INSERT_ORDER":"Am Ende einfügen","MM_SET_ALL_PORTALS":"Alle sichtbaren Portale","MM_SET_ALL_KEYS":"All GetKey Markers","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Spine","MULTI_M_TITLE":"Draw Max Layers","MULTI_M":"Maximale Feldanzahl","MUST_NOT_BE_EMPTY":"Darf nicht leer sein.","MY_CAP_ID":"Kapsel ID","MY_COUNT":"Meine Anzahl","NAME_REQ":"Name benötigt","NAME":"Name:","NEW_OP":"Neue Operation","NEW_TEAM_NAME":"Neuer Teamname","NEW_TEAM":"New Team","NEW_WAS_SERVER":"Neuer Wasabee Server","NEWOP BUTTON TITLE":"Neue Operation erstellen","NEWOP BUTTON":"Neue Op","NO_DT_ITEMS":"Keine DrawTools Daten erkannt","NO_LABEL":"No label set","NO_STOCK_INTEL":"Wasabee unterstützt keine Standard Intel imports","NO_TITLE":"No title set","NO LONGER AVAILABLE":"Ressource vom Server entfernt: {error}","NO LONGER AVAILABLE SHORT":"Ressource vom Server entfernt","NOT LOGGED IN SHORT":"Nicht eingeloggt.","NOT LOGGED IN":"Nicht eingeloggt: {error}","NOT_LOADED":"Nicht vollständig geladen - bitte erneut probieren.","NOT_SET":"nicht gesetzt","NTNAME":"Name","OK":"OK","ON_HAND":"Verfügbar","ONION_WAS_TAKEN":"Zwiebel","ONION":"Zeichnen","ONLY_DT_IMP":" (nur für DrawTools imports)","OP DELETED":"Operation vom Server entfernt: {opID}","OP PERM DENIED":"Keine Berechtigung für Operation: {opID}","OP_CHECKLIST":"Operation Checkliste: {opName}","OP_NAME_UNSET":"Operationsname ist leer.","OP_PERMS":"OP-Berechtigungen","OP_SETTINGS_BUTTON":"OP ⚙","OP_SETTINGS_TITLE":"Operationseinstellungen","OPEN_REQUEST":"[öffne Anfrage]","OPER_COLOR":"Operation Color:","OPER_NAME":"Operation Name:","OPERATIONS":"Operationen","OPS BUTTON TITLE":"Operationen","OPS BUTTON":"Ops","ORDER":"Reihenfolge","OtherPortalAlert":"Sonstiges","PASTE_INSTRUCT":"Füge einen Wasabee Drawtools export hier ein.\\n\\nWasabee kann nicht mit dem Standard intel format umgehen.\\n\\nEs gibt einen Experimentellen Import vom IITC-DrawTools format.\\n\\n Vor dem Importieren bitte sicherstellen das alles geladen ist und die IITC es zwischengespeichert hat. Jedes nicht zwischengespeicherte Portal wird verfälscht. \\n\\nDu musst die \'Wechsel\' Funktion verwenden um die verfälschten Portale zu korrigieren. (Sie sollten bereits an der richtigen Position sein - aber dem falschen Portal zugeordnet).","pending":"Ausstehend","PERM DENIED":"Keine Berechtigung: {error}","PERM DENIED SHORT":"Keine Berechtigung","PERMS":"{opName} Berechtigungen","PLEASE_SELECT_PORTAL":"Bitte wähle ein Portal","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Schlüssel: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Status setzen","PORTAL KEY LIST":"Schlüsselliste für Portal {portalName}","PORTAL_COUNT":"{count} Portale","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Klicken, um die nächste Linkfarbe zu ändern","QD BUTTON END":"Klicken um das Feld zeichnen zu beenden","QD BUTTON TOGGLE MODE":"Klicken, um den Zeichenmodus zu ändern","QD CHANGE COLOR":"Farbe ändern","QD END":"Ende","QD TITLE":"Schnelle Layer Zeichnung","QD TOGGLE MODE":"Modus ändern","QDBASE":"Basis Link","QDCONT":"Klicke auf ein Portal der Kette.","QDNEXT":"Klicke auf das zweite Ankerportal.","QDSTART":"Klicke auf das erste Ankerportal.","READ_SHORT":"RO","READ":"lesen","RechargePortalAlert":"Aufladen","REFERENCE_TIME":"Reference Time:","REM_LOC_CP":"Lokale Kopie von {opName} entfernen","REMOVE_TEAM_CONFIRM_LABEL":"Möchtest du {teamName} permanent vom Server entfernen?","REMOVE_TEAM_CONFIRM_TITLE":"Entferne Team {teamName}","REMOVE_TEAM":"Team entfernen:","REMOVE":"Entfernen","RENAME_TEAM":"Team umbenennen:","RENAME":"Umbenennen","REQUIRED":"Benötigt","RESET":"Reset","REVERSE":"Umkehren","ROCKS_COM":"enl.rocks community:","ROLE":"Rolle","SAVELINKS TITLE":"Links speichern","SAVELINKS_DRAW":"Links speichern","SAVELINKS":"Links speichern","SECONDS":"vor ({seconds} Sekunden)","SEL_SB_ANCHOR":"Wähle einen Anker, Zomme in das Areal und füge es zum Starburst hinzu.","SEL_SB_ANCHOR2":"Zoomen Sie heraus. Stellen Sie sicher, dass Portale alle geladen sind, und klicken Sie dann auf zeichnen.","SEL_SL_ANCHOR":"Select the portal to save the links of. Click save links button and look at checklist.","SEL_SRC_ANC2":"Lege Quelle und Anker 2 fest","SEL_SRC_PORT":"Wähle ein Quellportal","SELECT PORTAL":"Portal zum senden auswählen","SELECT_FAN_PORTALS":"Wähle ein Ankerportal, wähle ein Startportal und ein Endportal, danach zoome in die Gegend des Fächers. Warte bis alle Portale geladen sind. Drücke anschließend den \'Fächerfeld\' Knopf.","SELECT_FAN_PORTALS2":"Warten Sie, bis alle Portale geladen wurden, und klicken Sie dann auf Zeichen.","SELECT_INSTRUCTIONS":"Wähle zwei Ankerportale. Zoome in die Gegend der Portalkette - warte bis die Portale geladen sind und drücke den \'Maximale Feldanzahl\' Knopf.","SELECT_ONION_PORTALS":"Layers build from the inside out. Zoom in to center and select starting portal, then zoom out to area.","SELF SWAP":"Du kannst das Portal nicht mit sich selbst tauschen - Wähle ein anderes.","SEND ANALYTICS":"Anonymisierte Analysedaten senden","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Select target recipient","SEND TARGET CONFIRM":"Möchtest du {portalName} an {agent} senden?","SEND TARGET":"Sende Ziel","SEND_LOC":"Sende Standort","SET_3_PORT":"Bitte wähle zuerst drei Portale!","SET_COMMENT":"Füge Kommentar hinzu","SET_LCOMMENT":"Setze Kommentar für Link:","SET_LINK_COMMENT":"Set comment for link:","SET_LINKS_ZONES":"Set Links to Zones","SET_MARKER_COMMENT":"Set comment for marker on:","SET_MARKER_TYPE_TITLE":"Markierungstyp ändern","SET_MARKERS_ZONES":"Set Markers to Zones","SET_MCOMMENT":"Setze Kommentar für Markierung: {portalName}","SET_NEW_OP":"Bitte gebe einen neuen Operationnamen ein","SET_PCOMMENT":"Setze Kommentar für Portal: {portalName}","SET_PORT_COMMENT":"Set comment for portal:","SET_PORTAL_COMMENT":"Portalkommentar festlegen","SET":"setzen","SETTINGS_TOOLBOX":"Wasabee-Einstellungen","SETTINGS_TITLE":"Erweiterte Einstellungen","SKINS_AVAILABLE":"Es gibt {count} verfügbare Skins.","SKINS_BUTTON":"Skins konfigurieren","SKINS_DESCRIPTION":"Verfügbare Skins befinden sich in der rechten Spalte. Verschieben Sie Skins, die Sie verwenden möchten, auf die linke Spalte.","SKINS_MANAGE_TITLE":"Skins verwalten","SKIP_CONFIRM_ALWAYS":"Nie nachfragen (mit Vorsicht zu verwenden)","SKIP_CONFIRM_ENTITY":"Nur nach Team/Op fragen","SKIP_CONFIRM_NEVER":"Immer nachfragen","SKIP_CONFIRM":"Bestätigung überspringen","SOURCE_PORT":"Quellportal","STARBURST TITLE":"Starburst ","STARBURST_DRAW":"Zeichnen","STARBURST":"Linkstern","START_PORT":"Startportal","STATE":"Status","SUPPORT_INSTRUCT":"Für Hilfe trete bitte der Telegram Gruppe bei The Wasabee User Telegram Channel ","SWAP PROMPT":"Möchtest du tauschen?:","SWAP TITLE":"Portale tauschen","SWAP WITH":" mit ","SWAP":"Wechseln","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Download abgeschlossen
Klicken Sie HIER für Hinweise, Tipps und Dokumentation.","SYNC":"Download verfügbarer Operationen","TARGET SENT":"Ziel gesendet","TEAM STATE":"Standort teilen","TEAM_CREATED":"Team {teamName} erstellt.","TEAM_NAME":"Team-Name","TEAM":"Team","TEAMS BUTTON TITLE":"Auflistung Wasabee Teams","TEAMS BUTTON":"Teams","TO_PORT":"zu Portal","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Übernehmen","toolbar.quick_delete.apply.title":"Ausgewählte Links/Marker löschen","toolbar.quick_delete.cancel.text":"Abbrechen","toolbar.quick_delete.cancel.title":"Abbrechen","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stoppen","toolbar.quick_delete.stop.title":"Löschmodus beenden","toolbar.quick_delete.title":"Schnell-Löschen","toolbar.quick_delete.tooltip.toggle_mode":"Auf Objekte klicken um diese zur Löschung zu markieren","toolbar.quick_delete.tooltip.quick_mode":"Klicken Sie auf Objekte um diese sofort zu löschen","toolbar.quick_draw.tooltip.star_mode.anchor":"Wählen Sie den Linkstern-Anker","toolbar.quick_draw.tooltip.star_mode.portal":"Ein Portal auswählen","toolbar.quick_draw.tooltip.single_mode.first":"Erstes Portal anklicken","toolbar.quick_draw.tooltip.single_mode.next":"Nächstes Portal anklicken","toolbar.quick_draw.tooltip.portal_fail":"Portaldaten nicht geladen, bitte versuchen Sie es erneut","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Einstellungen","toolbox.teammates":"Teammitglieder online","TRAWL SKIP TILES":"Trawl Skip Tiles","TRAWL TITLE":"Trawl Lanes","TRAWL WARNING":"Dies wird die Daten alle Quadranten unter allen gezeichneten Links laden. Dies ist ein langsamer Prozess.","TRAWL_AUTOMARK":"Blocker nach Suche automatisch markieren","TRAWL_BULK_LOAD_WARNING":"Diese Methode lädt die Daten der Quadranten so schnell wie möglich. Die Verwendung erfolgt auf eigene Gefahr.","TRAWL_BULK_LOAD":"Bulk Load Tile Data","TRAWL_CLEAR_MARKERS":"Clear virus/destroy markers before trawling","TRAWL_REMAINING":"Noch {count} Quadranten","TRAWL":"Suche nach Blockern","TRAWLING":"Suche die Linkschneisen nach Blockern ab, schließen Sie diesen Dialog um abzubrechen","TYPE":"Typ","UNASSIGNED":"Nicht zugewiesenen","UNKNOWN":"Unbekannt","UPDATE HOVER":"UPDATE {opName} auf dem Server","UPDATE PERM DENIED":"You do not have permission to update","UPDATE_CONFLICT_DESC":"The OP has been modified on server since last sync. Do you want to replace the server version by the current one?","UPDATE_CONFLICT_TITLE":"Konflikt mit Server gefunden","UPDATE_COUNT":"Aktualisiere Anzahl","UPDATED":"Erfolgreich aktualisiert","UpgradePortalAlert":"Upgrade","UPLOAD BUTTON HOVER":"UPLOAD {opName} (aktuell nicht auf dem Server)","UPLOADED":"Erfolgreich hochgeladen","USE PANES ON MOBILE":"Use panes (need reload)","USE_VALID_NAME":"Bitte verwende einen gültigen Operationsnamen","UseVirusPortalAlert":"Virus benutzen","VRLA DESC":"Ausgehend von der Anzahl und Typ von Link-Amps könnte ein niedrigeres Portallevel ausreichen","VRLA":"L8+ einige VRLA","WASABEE BUTTON TITLE":"Wasabee: Es ist grün und bringt Schlümpfe zum heulen.","WASABEE_D_LIST":"Eingabe defensiver Schlüssel","WD BUTTON TITLE":"Speicher Verteidigungs Schlüssel","WD BUTTON":"W-D Schlüssel","WRITE_SHORT":"RW","WRITE":"schreiben","WSERVER":"Server: {url}","YESNO_DEL":"Bist du dir sicher das du {opName} löschen willst?","ZONE_DRAW":"Click to set the zone boundaries","ZONE":"Zoniert","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Markierungen"}}'),Espanol:JSON.parse('{"ABOUT_WASABEE":"Acerca de Wasabee","acknowledged":"Recibido","ADD LINK TITLE":"Añadir enlaces","ADD MARKER TITLE":"Texto de Añadir Marcadores","ADD_AGENT":"Añadir agente:","ADD_BL":"Añadir enlaces anidados:","ADD_BULK":"Añadir masivamente","ADD_BUTTON_LINKS":"Añadir todos los enlaces a la vez.","ADD_LINKS":"Añadir enlaces","ADD_MARKER":"Añadir marcador","ADD_NEW_OP":"Añadir nueva Op","ADD_SUCC_INSTR":"Agente añadido correctamente","ADD_ZONE":"Añadir Zona","ADD":"Agregar","ADD1":"Añadir primer enlace","ADD2":"Añadir segundo enlace","AGENT_STATS":"Estadísticas de agente","AGENT":"Agente","AGES":"(Hace demasiado tiempo)","ALREADY_HAS_MARKER":"Este portal ya tiene un marcador. Elige un portal diferente.","AMAZ_TEAM_NAME":"Excelente nombre de equipo","ANCHOR ASSIGNMENT":"Assign all outbound links to:","ANCHOR_GMAP":"Google Map","ANCHOR_PORTAL":"Portal Ancla","ANCHOR_PORTAL2":"Portal Ancla 2","ANCHOR_PORTAL3":"Portal Ancla 3","ANCHOR1":"Ancla 1","ANCHOR2":"Ancla 2","ANCHOR3":"Ancla 3","ANCHORS_AS_BOOKMARKS":"Anclas a Marcadores","API_KEY":"Rocks API key:","ASS_TO":"Asignado A","ASSIGN LINK PROMPT":"Asignar link de {portalName}","ASSIGN MARKER PROMPT":"Asignar marcador de {portalName}","ASSIGN OUTBOUND PROMPT":"Asignar todos los links de salida de {portalName}","ASSIGN OUTBOUND":"Asignar Links de salida","ASSIGN":"Asignar","ASSIGNED_ONLY_SHORT":"SA","ASSIGNED_ONLY":"Sólo asignados","assigned":"Asignado","AUTH INCOMPAT":"Has activado un plugin en TamperMonkey que es incompatible con Wasabee","AUTH REQUIRED":"Autenticación Requerida","AUTH TOKEN REJECTED":"Envío de token de autorización al servidor rechazado: {error}","AUTH_SELECT_ACCOUNT":"Seleccionar cuenta","AUTO_DRAWS":"Autodibujar","AUTODRAWS":"Opciones de dibujo automático de Wasabee","AUTODRAW_PORTALS_SET":"Portales","autodraw.common.draw_button":"Dibujar","autodraw.fanfield.result":"Fanfield ha encontrado {links} enlaces y {fields} campos para {ap} AP","autodraw.flipflop.result":"Flip flop: encontró {count} enlaces","autodraw.homogeneous.missing_split":"Imposible encontrar {count} divisiones, prueba menos nivel o una región diferente","autodraw.homogeneous.order":"Orden","autodraw.homogeneous.portals_required":"{count} requeridos","autodraw.madrid.auto_determined":"Auto-determinado","autodraw.madrid.balanced":"Equilibrado","autodraw.madrid.result":"Madrid ha encontrado {count} capas","autodraw.multimax.result":"Multimax ha encontrado {count} capas","autodraw.multimax.result_both_side":"Multimax encontró {count1} y {count2} capas","autodraw.onion.variant":"Opción","autodraw.onion.variant.equilateral":"~Equilátero","autodraw.onion.variant.grow":"Permitir que crezca","autodraw.onion.variant.balanced":"Equilibrio perfecto","AUTOLOAD_RATE":"Tasa de solicitud de detalles de portales (ms)","AUTOLOAD":"Cargar automáticamente los detalles del portal faltante","AUTOMARK STOP":"El Marcado-Automático se detuvo debido a que los portales no estaban cargado","AUTOMARK":"Automarcar","BAT_TOAD":"Sapitos de Batalla","BLOCKER LIST TITLE":"Mostrar todos los bloqueos","BLOCKER TITLE":"Bloqueos","CANCEL":"Cancelar","CAPSULE":"Cápsula","CapturePortalMarker":"Capturar","CHANGE SERVER PROMPT":"Nuevo Servidor Wasabee","CHANGE SERVER":"Cambiar Servidor","CHANGE_WAS_SERVER":"Cambiar Servidor de Wasabee","CHECKLIST BUTTON TITLE":"Lista de Verificación de la Operación","CHECKLIST BUTTON":"Lista de Verificación","CLEAR LINKS":"Borrar Enlaces","CLEAR MARKERS":"Borrar marcadores","CLEAR_EVERYTHING":"Borrar Portales/Links/Marcadores","CLEAROPS BUTTON TITLE":"Borrar TODOS los Datos de Wasabee","CLEAROPS BUTTON":"Borrar Datos de Wasabee","CLEAROPS PROMPT":"Esta opción borrará todas las OPS y datos relacionados a Wasabee. Todo será restaurado desde el servidor en la próxima sincronización.","CLOSE":"Cerrar","COMMENT":"Comentario","COMPLETED BY":"Completado por {agentName}","completed":"Completo","CON_DEL":"Confirmar Borrado {opName}","COUNT":"Contar","CREATE_NEW_TEAM":"Crear Nuevo Equipo","CreateLinkAlert":"Linkear","CUR_USER_INFO":"Información Actual de Usuario","D_SHOW_LIST":"Ingresar Llaves de Defensa","DEFAULT OP NAME":"Nueva Op: {date}","DELETE ANCHOR PROMPT":"Quisieras borrar esta ancla y todos los links asociados","DELETE ANCHOR TITLE":"Borrar Ancla","DELETE MARKER PROMPT":"Quisieras borrar este marcador","DELETE MARKER TITLE":"Borrar Marcador","DELETE_ANCHOR":"Borrar","DELETE_LINK":"Borrar","DELETE_OP":"Borrar {opName}","DESCRIP_PLACEHOLD":"Descripción (opcional)","DestroyPortalAlert":"Destruir","dialog.about.download_mobile_app":"

Aplicación Wasabee:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Establecer comentario para {agentName}","dialog.auth.ott.button":"Inicio de sesión con token de un único uso","dialog.auth.ott.text":"Obtén un token en el Servidor Wasabee y pégalo aquí después","dialog.auth.ott.title":"Token de un sólo uso","dialog.blockers.clear_automark":"Limpiar Automarcado","dialog.clear_all.text":"¿Quieres reiniciar {opName}?","dialog.clear_all.title":"Limpiar: {opName}","dialog.clear_links.text":"¿Quieres eliminar todos los enlaces de {opName}?","dialog.clear_links.title":"Eliminar enlaces: {opName}","dialog.clear_markers.text":"¿Quieres eliminar todos los marcadores de {opName}?","dialog.clear_markers.title":"Eliminar marcadores: {opName}","dialog.checklist.count_fields":"Contar campos","dialog.checklist.count_fields.no_empty":"Se encontraron {fieldCount} campos y ningún campo vacío","dialog.checklist.count_fields.with_empty":"Se encontraron {fieldCount} campos y {emptyCount} campo(s) vacío(s) con {linkCount} enlace(s)","dialog.checklist.count_fields.link_from_inside":"Se han encontrado {count} enlaces desde portales cubiertos","dialog.checklist.count_fields.link_from_inside.covered_at_order":" en {order} por el enlace ","dialog.common.color":"Color","dialog.common.commands":"Acciones","dialog.common.commands_short":"Acns","dialog.common.delete":"Borrar","dialog.common.links":"Enlaces","dialog.common.markers":"Marcadores","dialog.common.name":"Nombre","dialog.common.off":"Desactivado","dialog.common.on":"Activado","dialog.common.owner":"Propietario","dialog.common.zone_all":"Todas","dialog.filter.actions.description":"Aplicar un cambio a todas las tareas visibles","dialog.filter.actions.delete_visible":"Borrar","dialog.filter.actions.delete_hidden":"Borrar las demás tareas","dialog.filter.actions.shift.label":"Desplazamiento","dialog.filter.actions.shift.button":"Cambiar","dialog.filter.actions.title":"Acciones","dialog.filter.filters.apply":"Aplicar filtros","dialog.filter.filters.description":"Seleccione las propiedades para filtrar las tareas que desea ver y cambiar.","dialog.filter.filters.field.task":"Tarea","dialog.filter.filters.field.min_order":"Orden mínimo","dialog.filter.filters.field.max_order":"Orden máximo","dialog.filter.filters.title":"Filtros","dialog.filter.title":"Filtros y acciones","dialog.firebase.setup":"Visita {url} y pulsa el botón para autorizar las actualizaciones en vivo. Necesitarás recargar IITC después.","dialog.import.url":"Importar desde URL","dialog.import.success_message":"Importación completada. Se encontraron {count} portales y se usaron {faked} portales falsos. Utilice la función de intercambio para mover portales falsos a los portales reales en la misma ubicación. Acercar el zoom en los portales \'Cargando\' de la lista de verificación podría conseguir que se carguen.","dialog.keys.update_error":"El portal no está en la op todavía, por favor sincroniza al servidor primero","dialog.leave_team.text":"Si abandonas {teamName} no puedes volver a unirte a menos que el propietario te vuelva a añadir.","dialog.leave_team.title":"Abandonar: {teamName}","dialog.link_list.length":"Longitud","dialog.link_list.level":"Nivel min.","dialog.link_list.all_from":"Poner todo saliente","dialog.link_list.all_to":"Poner todos entrantes","dialog.conflict.cancel_upload":"Cancelar subida","dialog.conflict.conflicts":"Conflictos:","dialog.conflict.local":"Copia local","dialog.conflict.server":"Copia del servidor","dialog.conflict.zone":"Zona: {name}","dialog.conflict.prop.assignedTo":"Asignar:","dialog.conflict.prop.comment":"Comentario:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"Desde:","dialog.conflict.prop.hardness":"Dificultad:","dialog.conflict.prop.order":"Orden:","dialog.conflict.prop.state":"Estado:","dialog.conflict.prop.toPortal":"Hasta:","dialog.conflict.prop.zone":"Zona:","dialog.conflict.prop.zone_points":"La forma ha cambiado","dialog.online_agents.actions":"Acciones","dialog.online_agents.last_seen":"Visto por última vez","dialog.online_agents.title":"Agentes activos","dialog.op_settings.advanced":"Avanzadas","dialog.op_settings.import.desc":"Importar enlaces/marcadores/zonas de otra OP","dialog.op_settings.import.collision_default":"En caso de conflictos, se preferirán los enlaces o marcadores de la OP importada","dialog.op_settings.import.select_op":"Seleccione OP","dialog.op_settings.import.select_color":"Color enlaces OP","dialog.op_settings.import.button":"Importar","dialog.op_settings.setting":"Ajustes","dialog.op_settings.zones":"Zonas","dialog.ops_list.background_disable":"Desactivar mostrar por detrás","dialog.ops_list.background_enable":"Mostrar por detrás","dialog.ops_list.download":"Descargar {opName}","dialog.ops_list.last_fetched":"Última recuperación: {date}","dialog.ops_list.local_change":"OP local ha cambiado","dialog.ops_list.remote_change":"OP remota ha cambiado","dialog.ops_list.toggle_hide":"Mostrar / Ocultar","dialog.ops_list.unhide_ops":"Mostrar todas las OPs","dialog.remove_agent.text":"¿Quieres retirar a {agentName} de {teamName}?","dialog.remove_agent.title":"Retirar: {agentName}","dialog.setcomment.portal_hardness":"Dificultad","dialog.settings.disable_live_updates":"Desactivar actualizaciones en vivo","dialog.settings.populate_opportals":"Mostrar portales de la OP en el mapa","dialog.team_list.load_wd_keys":"Cargar llaves W-D","dialog.team_list.share_wd_keys":"Compartir llaves W-D","dialog.team_manage.join_link":"Enlace de unión","dialog.team_manage.join_link.create":"Crear","dialog.team_manage.join_link.revoke":"Anular","dialog.team_members.location":"Compartir ubicación","dialog.team_members.wd_keys":"Compartir llaves W-D","dialog.team_message":"Anuncio de equipo: “{message}” de {sender}","dialog.update_warning":"Wasabee está desactualizado. Por favor, actualice usando su gestor de complementos o vaya a https://wasabee.rocks","dialog.zone_color.title":"Color para la zona","dialog.zone_color.text":"Establecer el color de todos los enlaces de la zona {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Colorear enlaces","dialog.zones.delete.title":"Eliminar la zona {zoneName}","dialog.zones.delete.text":"¿Quieres eliminar la zona “{zoneName}” ?","dialog.zones.delete_zone_shape":"Restablecer la forma","dialog.zones.draw_zone_shape":"Dibujar límites de zona","dialog.zones.id":"ID","dialog.zones.jump_to":"Ir a la zona","dialog.zones.stop_drawing":"Finalizar dibujo","dialog.zones.title":"Zonas","DRAW TOOLS FORMAT":"Formato Draw Tools","DUPE_OP":"Duplicar Operación","END_PORT":"Portal de Fin","ExcludeMarker":"Excluir del Dibujo/Marcado Automático","EXPORT OP TITLE":"Exportar Op actual","EXPORT OP":"Exportar Op","EXPORT":"Exportar","FAKED":"Virtual: [{portalId}]","FANFIELD":"¡Dibujar!","FANFIELD2":"Fanfield","FarmPortalMarker":"Farmear","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Dados un ancla determinado, un conjunto de portales visibles y una cantidad de SBUL, encuentra un fanfield para lanzar enlaces desde el ancla en orden de distancia descendente para evitar buscar llaves.","FLIP_FLOP_INSTRUCTION":"Selecciona un portal, acércate para ver suficientes portales y pulsa Dibujar. Cuando se encuentre un campo de fanfield, puedes buscar otros ancls para relanzar consecutivamente","FLIP_FLOP_FIND_ANCHORS":"Encontrar otros anclas","FROM_1-2":"desde la base 1-2","FROM_1-3":"desde la base 1-3","FROM_2-3":"desde la base 2-3","FROM_DEPTH":"desde el interior","FROM_PORT":"Desde el Portal","GET DT":"Obtener el dibujo existente de DrawTools","GetKeyPortalMarker":"Obtener Keys","GotoPortalMarker":"Ir A","H-GEN_INST":"Establece portales para la capa exterior. Elige el número de divisiones. Haz clic en dibujar","HF_DEEP_SEARCH":"Búsqueda exhaustiva","HF_DRAW_BUTTON":"Dibujar","HF_REDRAW_BUTTON":"Redibujar","HG":"Campo homogéneo","HOURS":"(Hace {hours} horas)","HOW_TO_VIDS":"

Videos de Cómo Se Hace:

","IMP_NOPE":"Importación Falló: {error}","IMP_WAS_OP":"Importar Operación Wasabee","IMPORT_OP_SUCCESS":"Operación {opName} Importada Exitosamente.","IMPORT_OP_TITLE":"Importar Op {date}","IMPORT_OP":"Importar Operación","IMPOSSIBLE":"Imposible","INGNAME_GID":"Nombre de Ingress o GoogleID","INPUT_DT_KEY_COUNT":"Ingresa el Conteo de Llaves Defensivas","INVALID REQUEST":"Solicitud No Válida","IOS NEED FAKE UA":"Debes configurar un \'UsuarioAgente Personalizado para Vista Web\' en las opciones de configuración de IITC-Mobile o el inicio de sesión fallará","KEY_LIST2":"Lista de Llaves {opName}","KEYS":"Llaves","KNOWN_BLOCK":"Bloqueos Conocidos {opName}","LA DESC":"Dependiendo del número y tipo de Link Amps usados, un portal de origen de menor nivel puede ser suficiente.","LA":"L8+ algunos LA","LANG":"Idioma","LEAVE":"Salir","LetDecayPortalAlert":"Dejar Decaer","LINK ASSIGNMENT":"Assign link to:","LINK STATE PROMPT":"Estado del Link","LINK STATE":"Set link status:","LINKS BUTTON TITLE":"Enlaces","LINKS":"Enlaces","LINKS2":"{portalName}: Enlaces ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Cargar Portales","LOADING":"[cargando]","LOADING1":"Cargando: [{portalGuid}]","LOC_PROC":"ubicación procesada","LOCATION SUB":"Ubicación registrada","LOCFRMSER":"(localmente y del servidor)","LOG IN":"Iniciar Sesión","LOG_OUT":"Cerrar sesión","MADRID_SET_1":"Selecciona el área para el link base del Ancla 2 al Ancla 3","MADRID_SET_2":"Selecciona el área para el link base del Ancla 3 al Ancla 1","MADRID_SET_3":"Selecciona el área para el link base del Ancla 1 al Ancla 2","MADRID_TITLE":"Protocolo Madrid","MADRID_WAS_TAKEN":"Protocolo Madrid","MADRID":"Dibujar","MANAGE_TEAM":"Gestionar {teamName}","MANAGE":"Gestionar","MARKER ASSIGNMENT":"Assign marker to:","MARKER LIST TITLE":"Lista de Marcadores","MARKER LIST":"Marcadores","MARKER STATE PROMPT":"Estado Del Marcador","MARKER STATE":"Set marker state:","MARKER_LIST":"Listad de Marcadores {opName}","MARKERS BUTTON TITLE":"Marcadores","MAX_SPLITS":"Divisiones máximas","MAX":"Fan Field","MeetAgentPortalMarker":"Encontrar Agent","MERGE ON UPDATE":"Combinar al actualizar","MERGE_CHANGES_LOCAL":"Cambios locales","MERGE_CHANGES_MERGE":"Combinar resultado","MERGE_CHANGES_REMOTE":"Cambios remotos","MERGE_LOCAL":"Mantener local","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, replace the local version with the server version, or cancel?","MERGE_REBASE":"Rebase","MERGE_REPLACE":"Replace","MERGE_TITLE":"Combinar OP local y remota","MIN_SRC_PORT_LVL":"Nivel mínimo requerido para el portal fuente","MINUTES":"(Hace {minutes} minutos)","MM":"Multimax","MM_BOTH_SIDE":"Usar ambos lados de la base","MM_INSERT_ORDER":"Insertar al final","MM_SET_ALL_PORTALS":"Todos los portales visibles","MM_SET_ALL_KEYS":"Todos los marcadores de Obtener llave","MM_SET_KEYS_ZONE":"Obtener llave: {zoneName}","MM_SPINE":"Espinazo","MULTI_M_TITLE":"Dibujar Máximas Capas","MULTI_M":"Multimax","MUST_NOT_BE_EMPTY":"No Debe Quedar Vacío","MY_CAP_ID":"ID de Mi Cápsula","MY_COUNT":"Mi Conteo","NAME_REQ":"Requiere Nombre","NAME":"Nombre","NEW_OP":"Nueva Operación","NEW_TEAM_NAME":"Nuevo Nombre de Equipo","NEW_TEAM":"Nuevo equipo","NEW_WAS_SERVER":"Nuevo Servidor de Wasabee","NEWOP BUTTON TITLE":"Crear una nueva Operación","NEWOP BUTTON":"Nueva Op","NO_DT_ITEMS":"No se detectó elementos dibujados con DrawTools","NO_LABEL":"Sin etiqueta definida","NO_STOCK_INTEL":"Wasabee no soporta la importación de dibujos trazados en intel regular","NO_TITLE":"Sin título definido","NO LONGER AVAILABLE":"Recurso eliminado del servidor: {error}","NO LONGER AVAILABLE SHORT":"Recurso eliminado del servidor","NOT LOGGED IN SHORT":"Sesión No Iniciada","NOT LOGGED IN":"Sesión No Iniciada: {error}","NOT_LOADED":"No está cargado completamente, intentar de nuevo.","NOT_SET":"no definido","NTNAME":"Nombre","OK":"Aceptar","ON_HAND":"En Mano","ONION_WAS_TAKEN":"Onion","ONION":"Dibujar","ONLY_DT_IMP":"(solo para importaciones de DrawTools)","OP DELETED":"Operación eliminada del servidor: {opID}","OP PERM DENIED":"Permiso denegado a la operación: {opID}","OP_CHECKLIST":"Lista de Verificación de la Operación {opName}","OP_NAME_UNSET":"Se Removió el Nombre de Operación","OP_PERMS":"Permisos para la Op","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Ajustes de Operación","OPEN_REQUEST":"[abrir solicitud]","OPER_COLOR":"Color de la Operación","OPER_NAME":"Nombre de la Operación","OPERATIONS":"Operaciones","OPS BUTTON TITLE":"Operaciones","OPS BUTTON":"Ops","ORDER":"Orden","OtherPortalAlert":"Otro","PASTE_INSTRUCT":"Pega un dibujo exportado de Wasabee aquí.\\n\\nWasabee no puede importar del formato normal de intel.\\n\\nHay soporte experimental para importar del formato DrawTools de IITC.\\n\\nAntes de importar del formato DrawTools, revise las áreas y asegúrese que todos los portales carguen para que estén en la caché de IITC. Cualquier portal que no haya estado pre-cargado será falsificado. Tendrás que usar la opción \'intercambiar\' para mover las anclas de los portales falsos a los portales reales (estarán en la ubicación correcta, pero no asociados con el portal.\\n\\nPortales en la caché puede que no estén nombrados correctamente.","pending":"Pendiente","PERM DENIED":"Permiso denegado: {error}","PERM DENIED SHORT":"Permiso denegado","PERMS":"{opName} permisos","PLEASE_SELECT_PORTAL":"Por favor, seleccionar un portal","popup.anchor.duplicate":"Duplicar","popup.anchor.keys":"Llaves: {onHand} / {required}","popup.anchor.keys_mycount":"Yo: {myCount} / {required}","popup.marker.state_button":"Establecer el estado","PORTAL KEY LIST":"Lista de Llaves del Portal {portalName}","PORTAL_COUNT":"{count} portales","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Haz clic para cambiar el color de los siguientes enlaces","QD BUTTON END":"Dar click para detener dibujo de campos","QD BUTTON TOGGLE MODE":"Haz clic para cambiar el modo de dibujo","QD CHANGE COLOR":"Cambiar color","QD END":"Finalizar","QD TITLE":"Dibujar Capas Rápido","QD TOGGLE MODE":"Cambiar modo","QDBASE":"Link Base","QDCONT":"Dar click a un portal anidado para dibujar el campo.","QDNEXT":"Dar click al segundo portal ancla.","QDSTART":"Dar click al primer portal ancla.","READ_SHORT":"SL","READ":"Leer","RechargePortalAlert":"Recargar","REFERENCE_TIME":"Hora de referencia:","REM_LOC_CP":"Borrar copia local de {opName}","REMOVE_TEAM_CONFIRM_LABEL":"¿Deseas remover {teamName} permanentemente del Servidor Wasabee?","REMOVE_TEAM_CONFIRM_TITLE":"Remover Equipo {teamName}","REMOVE_TEAM":"Remover Equipo","REMOVE":"Remover","RENAME_TEAM":"Renombrar Equipo","RENAME":"Renombrar","REQUIRED":"Requeridas","RESET":"Restablecer","REVERSE":"Invertir","ROCKS_COM":"comunidad enl.rocks","ROLE":"Rol","SAVELINKS TITLE":"Guardar Enlaces","SAVELINKS_DRAW":"Guardar Enlaces","SAVELINKS":"Guardar Enlaces","SECONDS":"(Hace {seconds} segundos)","SEL_SB_ANCHOR":"Selecciona el área del ancla para hacer acercamiento para añadir a la supernova.","SEL_SB_ANCHOR2":"Aleja el zoom. Asegúrate de que los portales se han cargado completamente y haz clic en Dibujar.","SEL_SL_ANCHOR":"Selecciona el portal del que quieres guardar los enlaces. Haz clic en el botón de Guardar Enlaces y revisa la lista de comprobación.","SEL_SRC_ANC2":"Selecciona tanto la Fuente como el Ancla 2","SEL_SRC_PORT":"Selecciona un portal fuente","SELECT PORTAL":"Seleccionar un portal para enviar","SELECT_FAN_PORTALS":"Selecciona un portal ancla, un portal de inicio y un portal de fin, luego haz un acercamiento en el área para el fan field. Espera hasta que los portales hayan cargado (los portales deben estar en la pantalla para ser considerados) y presiona el botón Fanfield.","SELECT_FAN_PORTALS2":"Espera a que todos los portales se carguen. Luego haz clic en dibujar.","SELECT_INSTRUCTIONS":"Selecciona dos portales ancla, luego luego haz un acercamiento en el área para los nodos de las capas. Espera hasta que los portales hayan cargado (los portales deben estar en la pantalla para ser considerados) y presiona el botón Multimax.","SELECT_ONION_PORTALS":"Las capas se hacen de dentro hacia afuera. Acércate al centro y selecciona el portal de inicio. Luego aléjate para ver un área mayor.","SELF SWAP":"¡No se puede intercambiar un portal consigo mismo! Selecciona un portal diferente.","SEND ANALYTICS":"Enviar analíticas anónimas","SEND LOCATION":"Compartir ubicación (sólo cuando IITC está en primer plano)","SEND TARGET AGENT":"Selecciona un destinatario","SEND TARGET CONFIRM":"¿Quieres enviar el {portalName} objetivo a {agent}?","SEND TARGET":"Enviar Objetivo","SEND_LOC":"Enviar Ubicación","SET_3_PORT":"¡Por favor, primero define los tres portales!","SET_COMMENT":"Definir Comentario","SET_LCOMMENT":"Definir Comentario de Link","SET_LINK_COMMENT":"Definir comentario para el link","SET_LINKS_ZONES":"Asignar enlaces a zonas","SET_MARKER_COMMENT":"Definir comentario para el marcador en","SET_MARKER_TYPE_TITLE":"Cambiar tipo de marcador","SET_MARKERS_ZONES":"Asignar marcadores a zonas","SET_MCOMMENT":"Definir Comentario de Marcador {portalName}","SET_NEW_OP":"Por favor, define el Nuevo Nombre de la Operación","SET_PCOMMENT":"Definir Comentario de Portal {portalName}","SET_PORT_COMMENT":"Definir comentario para el portal","SET_PORTAL_COMMENT":"Definir comentarios del portal","SET":"definir","SETTINGS_TOOLBOX":"Ajustes de Wasabee","SETTINGS_TITLE":"Ajustes avanzados","SKINS_AVAILABLE":"Hay {count} skins disponibles.","SKINS_BUTTON":"Configurar skins","SKINS_DESCRIPTION":"Las skins disponibles se encuentran en las columnas de la derecha. Mueve las skins que desees aplicar a las columnas de la izquierda.","SKINS_MANAGE_TITLE":"Gestionar skins","SKIP_CONFIRM_ALWAYS":"Nunca preguntar (usar con precaución)","SKIP_CONFIRM_ENTITY":"Sólo pedir equipo/op","SKIP_CONFIRM_NEVER":"Preguntar siempre","SKIP_CONFIRM":"Omitir confirmación","SOURCE_PORT":"Portal de origen","STARBURST TITLE":"Supernova","STARBURST_DRAW":"Dibujar","STARBURST":"Supernova","START_PORT":"Portal de Inicio","STATE":"Estado","SUPPORT_INSTRUCT":"Para soporte, por favor únete al Canal de Telegram de Usuarios de Wasabee","SWAP PROMPT":"Quisieras intercambiar","SWAP TITLE":"Intercambiar Portales","SWAP WITH":"con","SWAP":"Intercambiar","swap.marker.title":"Intercambiar marcador","swap.marker.prompt":"¿Quieres cambiar el marcador:","SYNC DONE":"Descarga Completa
Haga clic AQUÍ para obtener sugerencias, consejos y documentación.","SYNC":"Descargar Operaciones Disponibles","TARGET SENT":"Objetivo enviado","TEAM STATE":"Compartir ubicación","TEAM_CREATED":"Equipo {teamName} creado","TEAM_NAME":"Nombre de Equipo","TEAM":"Equipo","TEAMS BUTTON TITLE":"Listar Equipos Wasabee","TEAMS BUTTON":"Equipos","TO_PORT":"Hacia el Portal","toolbar.op.filter":"Filtros","toolbar.op.redo":"Rehacer","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Deshacer","toolbar.quick_delete.apply.text":"Aplicar","toolbar.quick_delete.apply.title":"Eliminar los enlaces/marcadores seleccionados","toolbar.quick_delete.cancel.text":"Cancelar","toolbar.quick_delete.cancel.title":"Cancelar","toolbar.quick_delete.clear.text":"Limpiar todo","toolbar.quick_delete.clear.title":"Borrar todos los enlaces y marcadores","toolbar.quick_delete.stop.text":"Parar","toolbar.quick_delete.stop.title":"Salir del modo borrar","toolbar.quick_delete.title":"Borrado rápido","toolbar.quick_delete.tooltip.toggle_mode":"Haz clic en los objetos que quieres marcar para eliminar","toolbar.quick_delete.tooltip.quick_mode":"Haz clic en los objetos para eliminar inmediatamente","toolbar.quick_draw.tooltip.star_mode.anchor":"Seleccione el ancla de la estrella","toolbar.quick_draw.tooltip.star_mode.portal":"Selecciona un portal","toolbar.quick_draw.tooltip.single_mode.first":"Haz clic en el primer portal","toolbar.quick_draw.tooltip.single_mode.next":"Haz clic en el siguiente portal","toolbar.quick_draw.tooltip.portal_fail":"Datos del portal no cargados, por favor inténtalo de nuevo","toolbar.quick_draw.tooltip.burst.portal":"Selecciona un portal","toolbar.quick_draw.toggle.text":"Modo: {mode}","toolbar.quick_draw.mode.burst":"Estallido","toolbar.quick_draw.mode.multilayer":"Multicapa","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Estrella","toolbar.wasabee.settings":"Ajustes","toolbox.teammates":"Compañeros en línea","TRAWL SKIP TILES":"Bloques a saltar al recorrer","TRAWL TITLE":"Recorrer corredores de enlace","TRAWL WARNING":"Se cargarán los datos de todos los bloques bajo todos los enlaces dibujados. Es un proceso lento.","TRAWL_AUTOMARK":"Automarcar los bloqueos tras recorrer","TRAWL_BULK_LOAD_WARNING":"Este método carga los datos de los bloques de golpe. Úsalo bajo tu propio riesgo.","TRAWL_BULK_LOAD":"Carga masiva de datos de bloques","TRAWL_CLEAR_MARKERS":"Limpiar marcadores de virus/destruir antes de recorrer","TRAWL_REMAINING":"{count} bloques restantes","TRAWL":"Recorrer buscando bloqueos","TRAWLING":"Recorriendo los corredores buscando bloqueos. Cierra esta ventana para detenerlo","TYPE":"Tipo","UNASSIGNED":"No Asignado","UNKNOWN":"Desconocido","UPDATE HOVER":"{opName} en el servidor","UPDATE PERM DENIED":"Permiso para acutalizar denegado","UPDATE_CONFLICT_DESC":"The OP has been modified on server since last sync. Do you want to replace the server version by the current one?","UPDATE_CONFLICT_TITLE":"Conflicto detectado con el servidor","UPDATE_COUNT":"Actualizar Conteo","UPDATED":"Actualizado exitosamente","UpgradePortalAlert":"Actualizar","UPLOAD BUTTON HOVER":"CARGAR {opName} (no se encuentra actualmente en el servidor)","UPLOADED":"Cargado exitosamente","USE PANES ON MOBILE":"Usar paneles (es necesario recargar)","USE_VALID_NAME":"Por favor, utiliza un nombre de operación válido","UseVirusPortalAlert":"Usar Virus","VRLA DESC":"Dependiendo del número y tipo de Link Amps usados, un portal de origen de menor nivel puede ser suficiente.","VRLA":"L8+ algunos VRLA","WASABEE BUTTON TITLE":"Wasabee es verde y hace llorar a los pitufos.","WASABEE_D_LIST":"Ingresar Conteo de Llaves de Defensa","WD BUTTON TITLE":"Registrar Llaves de Defensa","WD BUTTON":"Llaves W-D","WRITE_SHORT":"LE","WRITE":"escribir","WSERVER":"Servidor {url}","YESNO_DEL":"Estás seguro de querer borrar {opName}","ZONE_DRAW":"Haga clic para establecer los límites de la zona","ZONE":"Zona","smallScreen":{"ADD_LINKS":"+ Enlaces","ADD_MARKER":"+ Marcador"}}'),English:JSON.parse('{"ABOUT_WASABEE":"About Wasabee","acknowledged":"Acknowledged","ADD LINK TITLE":"Add Links","ADD MARKER TITLE":"Add Markers","ADD_AGENT":"Add Agent:","ADD_BL":"Add Back Links:","ADD_BULK":"Bulk add","ADD_BUTTON_LINKS":"Add all links at once","ADD_LINKS":"Add Links","ADD_MARKER":"Add Marker","ADD_NEW_OP":"Add New Op","ADD_SUCC_INSTR":"Add agent successful","ADD_ZONE":"Add Zone","ADD":"Add","ADD1":"Add first link","ADD2":"Add second link","AGENT_STATS":"Agent Stats","AGENT":"Agent","AGES":" (ages ago)","ALREADY_HAS_MARKER":"This portal already has a marker. Choose a different portal.","AMAZ_TEAM_NAME":"Amazing Team Name","ANCHOR ASSIGNMENT":"Assign all outbound links to:","ANCHOR_GMAP":"Google Map","ANCHOR_PORTAL":"Anchor Portal","ANCHOR_PORTAL2":"Anchor Portal 2","ANCHOR_PORTAL3":"Anchor Portal 3","ANCHOR1":"Anchor 1","ANCHOR2":"Anchor 2","ANCHOR3":"Anchor 3","ANCHORS_AS_BOOKMARKS":"Anchors as bookmarks","API_KEY":"Rocks API key:","ASS_TO":"Assigned To","ASSIGN LINK PROMPT":"Assign link from: {portalName}","ASSIGN MARKER PROMPT":"Assign marker from: {portalName}","ASSIGN OUTBOUND PROMPT":"Assign all outbound links from: {portalName}","ASSIGN OUTBOUND":"Assign Outbound Links","ASSIGN":"Assign","ASSIGNED_ONLY_SHORT":"AO","ASSIGNED_ONLY":"Assigned Only","assigned":"Assigned","AUTH INCOMPAT":"You have activated a plugin in TamperMonkey that is incompatable with Wasabee","AUTH REQUIRED":"Authentication Required","AUTH TOKEN REJECTED":"Sending auth token to server rejected: {error}","AUTH_SELECT_ACCOUNT":"Select account","AUTO_DRAWS":"Auto-draw","AUTODRAWS":"Wasabee Auto-draw Options","AUTODRAW_PORTALS_SET":"Portals","autodraw.common.draw_button":"Draw","autodraw.fanfield.result":"Fanfield found {links} links and {fields} fields for {ap} AP","autodraw.flipflop.result":"Flip flop: found {count} links","autodraw.homogeneous.missing_split":"Unable to find {count} splits, try less depth or a different region","autodraw.homogeneous.order":"Order","autodraw.homogeneous.portals_required":"{count} required","autodraw.madrid.auto_determined":"Auto-determined","autodraw.madrid.balanced":"Balanced","autodraw.madrid.result":"Madrid found {count} layers","autodraw.multimax.result":"Multimax found {count} layers","autodraw.multimax.result_both_side":"Multimax found {count1} and {count2} layers","autodraw.onion.variant":"Option","autodraw.onion.variant.equilateral":"~Equilateral","autodraw.onion.variant.grow":"Let it grow","autodraw.onion.variant.balanced":"Perfectly balanced","AUTOLOAD_RATE":"Portal Detail Request Rate (ms)","AUTOLOAD":"Automatically Load Missing Portal Details","AUTOMARK STOP":"Auto-Mark stopped due to portals not being loaded","AUTOMARK":"Auto-Mark","BAT_TOAD":"Battle Toads","BLOCKER LIST TITLE":"Show all blockers","BLOCKER TITLE":"Blockers","CANCEL":"Cancel","CAPSULE":"Capsule","CapturePortalMarker":"Capture","CHANGE SERVER PROMPT":"New Wasabee Server","CHANGE SERVER":"Change Server","CHANGE_WAS_SERVER":"Change Wasabee Server","CHECKLIST BUTTON TITLE":"Operation Checklist","CHECKLIST BUTTON":"Checklist","CLEAR LINKS":"Clear Links","CLEAR MARKERS":"Clear Markers","CLEAR_EVERYTHING":"Clear Portals/Links/Markers for current OP","CLEAROPS BUTTON TITLE":"Clear Data","CLEAROPS BUTTON":"Clear Data","CLEAROPS PROMPT":"Clear all local OPS. Ops will be restored at next download. Wasabee will be disabled until next page reload.","CLOSE":"Close","COMMENT":"Comment","COMPLETED BY":"Completed by {agentName}","completed":"Completed","CON_DEL":"Confirm Delete: {opName}","COUNT":"Count","CREATE_NEW_TEAM":"Create New Team","CreateLinkAlert":"Link","CUR_USER_INFO":"Current User Information","D_SHOW_LIST":"Input Defensive Keys","DEFAULT OP NAME":"New Op: {date}","DELETE ANCHOR PROMPT":"Do you want to delete this anchor and all associated links:","DELETE ANCHOR TITLE":"Delete Anchor","DELETE MARKER PROMPT":"Do you want to delete this marker:","DELETE MARKER TITLE":"Delete Marker","DELETE_ANCHOR":"Delete","DELETE_LINK":"Delete","DELETE_OP":"Delete {opName}","DESCRIP_PLACEHOLD":"Description (optional)","DestroyPortalAlert":"Destroy","dialog.about.download_mobile_app":"

Wasabee App:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Set comment for {agentName}","dialog.auth.ott.button":"One Time Token Login","dialog.auth.ott.text":"Get a token from the Wasabee Server, then paste it here","dialog.auth.ott.title":"One Time Token","dialog.blockers.clear_automark":"Clear Automark","dialog.clear_all.text":"Do you want to reset {opName}?","dialog.clear_all.title":"Clear: {opName}","dialog.clear_links.text":"Do you want to remove all links from {opName}?","dialog.clear_links.title":"Clear Links: {opName}","dialog.clear_markers.text":"Do you want to remove all markers from {opName}?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Count fields","dialog.checklist.count_fields.no_empty":"Found {fieldCount} fields and no empty field","dialog.checklist.count_fields.with_empty":"Found {fieldCount} fields and {emptyCount} empty field(s) on {linkCount} link(s)","dialog.checklist.count_fields.link_from_inside":"Found {count} links from covered portals","dialog.checklist.count_fields.link_from_inside.covered_at_order":" at {order} by link ","dialog.common.color":"Color","dialog.common.commands":"Commands","dialog.common.commands_short":"Cmds","dialog.common.delete":"Delete","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Name","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Owner","dialog.common.zone_all":"All","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Visit {url} and press the button to authorize live updates. You will need to reload IITC afterward.","dialog.import.url":"Fill from URL","dialog.import.success_message":"Import Complete. Found {count} portals and used {faked} faked. Please use the swap feature to move faked portals to the real portals at the same location. Zooming in on the \'Loading\' portals in the checklist might force them to load.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"If you leave {teamName} you cannot rejoin unless the owner re-adds you.","dialog.leave_team.title":"Leave: {teamName}","dialog.link_list.length":"Length","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Cancel upload","dialog.conflict.conflicts":"Conflicts:","dialog.conflict.local":"Local copy","dialog.conflict.server":"Server copy","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Assign:","dialog.conflict.prop.comment":"Comment:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"From:","dialog.conflict.prop.hardness":"Hard:","dialog.conflict.prop.order":"Order:","dialog.conflict.prop.state":"State:","dialog.conflict.prop.toPortal":"To:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Actions","dialog.online_agents.last_seen":"Last Seen","dialog.online_agents.title":"Online Agents","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zones","dialog.ops_list.background_disable":"Disable background","dialog.ops_list.background_enable":"Show in background","dialog.ops_list.download":"Download {opName}","dialog.ops_list.last_fetched":"Last fetched: {date}","dialog.ops_list.local_change":"Local has changed","dialog.ops_list.remote_change":"Remote has changed","dialog.ops_list.toggle_hide":"Toggle Show/Hide","dialog.ops_list.unhide_ops":"Unhide all OPs","dialog.remove_agent.text":"Do you want to remove {agentName} from {teamName}?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Hardness","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"Load W-D Keys","dialog.team_list.share_wd_keys":"Share W-D Keys","dialog.team_manage.join_link":"Join Link","dialog.team_manage.join_link.create":"Create","dialog.team_manage.join_link.revoke":"Revoke","dialog.team_members.location":"Sharing Location","dialog.team_members.wd_keys":"Sharing W-D Keys","dialog.team_message":"Team announcement: “{message}” from {sender}","dialog.update_warning":"Wasabee is out of date. Please update using your plugin manager or by going to https://wasabee.rocks","dialog.zone_color.title":"Zone Color","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Draw Tools Format","DUPE_OP":"Duplicate Operation","END_PORT":"End Portal","ExcludeMarker":"Exclude from Auto-Draw/Mark","EXPORT OP TITLE":"Export current Op","EXPORT OP":"Export Op","EXPORT":"Export:","FAKED":"Faked: [{portalId}]","FANFIELD":"Draw","FANFIELD2":"Draw Fan Field","FarmPortalMarker":"Farm","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"From a given anchor, a set of visible portal and a number of SBUL, find a fanfield to throw links from the anchor by decreasing distance to avoid searching keys.","FLIP_FLOP_INSTRUCTION":"Select a portal, zoom to see enough portals and press Draw. Once a fanfield is found, you can search for other anchors for consecutive rethrow","FLIP_FLOP_FIND_ANCHORS":"Find other anchors","FROM_1-2":"from base 1-2","FROM_1-3":"from base 1-3","FROM_2-3":"from base 2-3","FROM_DEPTH":"from the depth","FROM_PORT":"From Portal","GET DT":"Get existing DrawTools draw","GetKeyPortalMarker":"Get Keys","GotoPortalMarker":"Go To","H-GEN_INST":"Set portals for the outside layer. Choose number of splits. Click draw","HF_DEEP_SEARCH":"Exhaustive search","HF_DRAW_BUTTON":"Draw","HF_REDRAW_BUTTON":"Redraw","HG":"Homogeneous Field","HOURS":" ({hours} hours ago)","HOW_TO_VIDS":"

How-To Videos:

","IMP_NOPE":"Import Failed: {error}","IMP_WAS_OP":"Import Wasabee Operation","IMPORT_OP_SUCCESS":"Imported Operation: {opName} successfuly.","IMPORT_OP_TITLE":"Import Op: {date}","IMPORT_OP":"Import Operation","IMPOSSIBLE":"Impossible","INGNAME_GID":"Ingress name or GoogleID","INPUT_DT_KEY_COUNT":"Input Defensive Key Count","INVALID REQUEST":"Invalid Request","IOS NEED FAKE UA":"You must set a \'Custom UserAgent for Webviews\' in the IITC-Mobile settings or login will fail","KEY_LIST2":"Key List for Operation: {opName}","KEYS":"Keys","KNOWN_BLOCK":"Known Blockers: {opName}","LA DESC":"Depending on the number and type of Link Amps used, a lower source portal level might suffice.","LA":"L8+ some LA","LANG":"Language","LEAVE":"Leave","LetDecayPortalAlert":"Let Decay","LINK ASSIGNMENT":"Assign link to:","LINK STATE PROMPT":"Link State","LINK STATE":"Set link status:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Load Portals","LOADING":"[loading]","LOADING1":"Loading: [{portalGuid}]","LOC_PROC":"location processed","LOCATION SUB":"Location registered","LOCFRMSER":" (locally and from server)","LOG IN":"Log In","LOG_OUT":"Log Out","MADRID_SET_1":"Select the region for baselink Anchor 2 to Anchor 3","MADRID_SET_2":"Select the region for baselink Anchor 3 to Anchor 1","MADRID_SET_3":"Select the region for baselink Anchor 1 to Anchor 2","MADRID_TITLE":"Madrid Protocol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Draw","MANAGE_TEAM":"Manage {teamName}","MANAGE":"Manage","MARKER ASSIGNMENT":"Assign marker to:","MARKER LIST TITLE":"Marker List","MARKER LIST":"Markers","MARKER STATE PROMPT":"Marker Status","MARKER STATE":"Set marker state:","MARKER_LIST":"Marker List: {opName}","MARKERS BUTTON TITLE":"Markers","MAX_SPLITS":"Max Splits","MAX":"Fan Field","MeetAgentPortalMarker":"Meet Agent","MERGE ON UPDATE":"Merge on update","MERGE_CHANGES_LOCAL":"Local changes","MERGE_CHANGES_MERGE":"Merge result","MERGE_CHANGES_REMOTE":"Remote changes","MERGE_LOCAL":"Keep local","MERGE_MESSAGE":"Local and server modifications are clashing. You need to resolve the conflicts that Wasabee failed to resolve itself. Select which version in the following list to keep for every unresolved conflicts. You can also ignore all conflicts and use the server copy, or you can just keep the local copy intact.","MERGE_REBASE":"Merge","MERGE_REPLACE":"Use server","MERGE_TITLE":"Merge local&remote OP","MIN_SRC_PORT_LVL":"Minimum level required on source portal","MINUTES":" ({minutes} minutes ago)","MM":"Multimax","MM_BOTH_SIDE":"Use both base sides","MM_INSERT_ORDER":"Insert at the end","MM_SET_ALL_PORTALS":"All visible portals","MM_SET_ALL_KEYS":"All GetKey Markers","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Spine","MULTI_M_TITLE":"Draw Max Layers","MULTI_M":"Draw","MUST_NOT_BE_EMPTY":"Must Not Be Empty","MY_CAP_ID":"My Capsule ID","MY_COUNT":"My Count","NAME_REQ":"Name Required","NAME":"Name:","NEW_OP":"New Operation","NEW_TEAM_NAME":"New Team Name","NEW_TEAM":"New Team","NEW_WAS_SERVER":"New Wasabee Server","NEWOP BUTTON TITLE":"Create a new Operation","NEWOP BUTTON":"New Op","NO_DT_ITEMS":"No DrawTools drawn items detected","NO_LABEL":"No label set","NO_STOCK_INTEL":"Wasabee doesn\'t support stock intel draw imports","NO_TITLE":"No title set","NO LONGER AVAILABLE":"Resource removed from server: {error}","NO LONGER AVAILABLE SHORT":"Resource removed from server","NOT LOGGED IN SHORT":"Not Logged in","NOT LOGGED IN":"Not Logged in: {error}","NOT_LOADED":"Not fully loaded, try again.","NOT_SET":"not set","NTNAME":"Name","OK":"OK","ON_HAND":"On Hand","ONION_WAS_TAKEN":"Onion","ONION":"Draw","ONLY_DT_IMP":" (only for DrawTools imports)","OP DELETED":"Operation removed from server: {opID}","OP PERM DENIED":"Permission denied to operation: {opID}","OP_CHECKLIST":"Operation Checklist: {opName}","OP_NAME_UNSET":"Operation Name was Unset","OP_PERMS":"Op Permissions","OP_SETTINGS_BUTTON":"Op Settings","OP_SETTINGS_TITLE":"Operation Settings","OPEN_REQUEST":"[open request]","OPER_COLOR":"Operation Color:","OPER_NAME":"Operation Name:","OPERATIONS":"Operations","OPS BUTTON TITLE":"Operations List","OPS BUTTON":"Select OP","ORDER":"Order","OtherPortalAlert":"Other","PASTE_INSTRUCT":"Paste a Wasabee draw export here.\\n\\nWasabee cannot import the stock intel format.\\n\\nThere is experimental support for importing the IITC DrawTools format.\\n\\nBefore importing DrawTools format, preview the areas and make sure all the portals load so IITC has them cached. Any portals that are not pre-cached will be faked.\\n\\nYou will need to use the \'swap\' feature to move anchors from the faked portals to the real portals (they should be in the correct location, just not associated with the portal.\\n\\nCached portals might not be properly named.","pending":"Pending","PERM DENIED":"Permission denied: {error}","PERM DENIED SHORT":"Permission denied","PERMS":"{opName} permissions","PLEASE_SELECT_PORTAL":"Please select a portal","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Keys: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Set State","PORTAL KEY LIST":"Key list for portal {portalName}","PORTAL_COUNT":"{count} portals","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Click to change next links color","QD BUTTON END":"Click to stop drawing fields","QD BUTTON TOGGLE MODE":"Click to change draw mode","QD CHANGE COLOR":"Change color","QD END":"End","QD TITLE":"Quick Draw Layers","QD TOGGLE MODE":"Change mode","QDBASE":"Base Link","QDCONT":"Click a spine portal to draw a field.","QDNEXT":"Click the second anchor portal.","QDSTART":"Click the first anchor portal.","READ_SHORT":"RO","READ":"Read","RechargePortalAlert":"Recharge","REFERENCE_TIME":"Reference Time:","REM_LOC_CP":"Remove local copy of {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Do you want to permenantly remove {teamName} from the Wasabee Server?","REMOVE_TEAM_CONFIRM_TITLE":"Remove Team {teamName}","REMOVE_TEAM":"Remove Team:","REMOVE":"Remove","RENAME_TEAM":"Rename Team:","RENAME":"Rename","REQUIRED":"Required","RESET":"Reset","REVERSE":"Reverse","ROCKS_COM":"enl.rocks community:","ROLE":"Role","SAVELINKS TITLE":"Save Links","SAVELINKS_DRAW":"Save Links","SAVELINKS":"Save Links","SECONDS":" ({seconds} seconds ago)","SEL_SB_ANCHOR":"Select the anchor.","SEL_SB_ANCHOR2":"Zoom out. Make sure portals have all loaded, then click draw.","SEL_SL_ANCHOR":"Select the portal to save the links of. Click save links button and look at checklist.","SEL_SRC_ANC2":"Select both Source and Anchor 2","SEL_SRC_PORT":"Select a source portal","SELECT PORTAL":"Please select a portal first","SELECT_FAN_PORTALS":"Select an anchor portal, a start portal, and an end portal, then position the view over the field area.","SELECT_FAN_PORTALS2":"Wait for all portals to load, then click draw.","SELECT_INSTRUCTIONS":"Select two anchor portals, then zoom over the spine area.","SELECT_ONION_PORTALS":"Layers build from the inside out. Zoom in to center and select starting portal, then zoom out to area.","SELF SWAP":"Cannot swap a portal with itself! Select a different portal.","SEND ANALYTICS":"Send Anonymous Analytics","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Select target recipient","SEND TARGET CONFIRM":"Do you want to send {portalName} target to {agent}?","SEND TARGET":"Send Target","SEND_LOC":"Send Location","SET_3_PORT":"Please set the three portals first!","SET_COMMENT":"Set Comment","SET_LCOMMENT":"Set Link Comment","SET_LINK_COMMENT":"Set comment for link:","SET_LINKS_ZONES":"Set Links to Zones","SET_MARKER_COMMENT":"Set comment for marker on:","SET_MARKER_TYPE_TITLE":"Change marker type","SET_MARKERS_ZONES":"Set Markers to Zones","SET_MCOMMENT":"Set Marker Comment: {portalName}","SET_NEW_OP":"Please Set the New Operation Name","SET_PCOMMENT":"Set Portal Comment: {portalName}","SET_PORT_COMMENT":"Set comment for portal:","SET_PORTAL_COMMENT":"Set Portal Comment","SET":"set","SETTINGS_TOOLBOX":"Wasabee Settings","SETTINGS_TITLE":"Advanced Settings","SKINS_AVAILABLE":"There are {count} available skins.","SKINS_BUTTON":"Configure Skins","SKINS_DESCRIPTION":"Available skin packs are located in the right columns. Move skins you wish to use to the left columns.","SKINS_MANAGE_TITLE":"Manage skins","SKIP_CONFIRM_ALWAYS":"Never ask (use with caution)","SKIP_CONFIRM_ENTITY":"Only ask for team/op","SKIP_CONFIRM_NEVER":"Always ask","SKIP_CONFIRM":"Skip confirmation","SOURCE_PORT":"Source Portal","STARBURST TITLE":"Starburst","STARBURST_DRAW":"Draw","STARBURST":"Starburst","START_PORT":"Start Portal","STATE":"State","SUPPORT_INSTRUCT":"For support, please join the Wasabee User Telegram Channel","SWAP PROMPT":"Do you want to swap:","SWAP TITLE":"Swap Portals","SWAP WITH":" with ","SWAP":"Swap","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Download Complete
Click HERE for hints, tips, and documentation.","SYNC":"Download Available Operations","TARGET SENT":"Target sent","TEAM STATE":"Share Location","TEAM_CREATED":"Team {teamName} created","TEAM_NAME":"Team Name","TEAM":"Team","TEAMS BUTTON TITLE":"List Wasabee Teams","TEAMS BUTTON":"Teams","TO_PORT":"To Portal","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Apply","toolbar.quick_delete.apply.title":"Delete selected links/markers","toolbar.quick_delete.cancel.text":"Cancel","toolbar.quick_delete.cancel.title":"Cancel","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Exit delete mode","toolbar.quick_delete.title":"Quick delete","toolbar.quick_delete.tooltip.toggle_mode":"Click on features to mark for deletion","toolbar.quick_delete.tooltip.quick_mode":"Click on features to delete instantly","toolbar.quick_draw.tooltip.star_mode.anchor":"Select the star anchor","toolbar.quick_draw.tooltip.star_mode.portal":"Select a portal","toolbar.quick_draw.tooltip.single_mode.first":"Click first portal","toolbar.quick_draw.tooltip.single_mode.next":"Click next portal","toolbar.quick_draw.tooltip.portal_fail":"Portal data not loaded, please try again","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Settings","toolbox.teammates":"Teammates Online","TRAWL SKIP TILES":"Trawl Skip Tiles","TRAWL TITLE":"Trawl Lanes","TRAWL WARNING":"This will load the tile data under all drawn links. This is a slow process.","TRAWL_AUTOMARK":"Auto-mark blockers after trawling","TRAWL_BULK_LOAD_WARNING":"This method loads the tile data as quickly as possible. Use at your own risk.","TRAWL_BULK_LOAD":"Bulk Load Tile Data","TRAWL_CLEAR_MARKERS":"Clear virus/destroy markers before trawling","TRAWL_REMAINING":"{count} tiles remaining","TRAWL":"Trawl for Blockers","TRAWLING":"Trawling the lanes for blockers, close this dialog to stop","TYPE":"Type","UNASSIGNED":"Unassigned","UNKNOWN":"Unknown","UPDATE HOVER":"UPDATE {opName} on the server","UPDATE PERM DENIED":"You do not have permission to update","UPDATE_CONFLICT_DESC":"The OP has been modified on the server since last sync. Do you want to replace the server version with the current one?","UPDATE_CONFLICT_TITLE":"Conflict detected with server","UPDATE_COUNT":"Update Count","UPDATED":"Successfully updated","UpgradePortalAlert":"Upgrade","UPLOAD BUTTON HOVER":"UPLOAD {opName} (not currently on server)","UPLOADED":"Successfully uploaded","USE PANES ON MOBILE":"Use panes (need reload)","USE_VALID_NAME":"Please use a valid operation name","UseVirusPortalAlert":"Use Virus","VRLA DESC":"Depending on the number and type of Link Amps used, a lower source portal level might suffice.","VRLA":"L8+some VRLA","WASABEE BUTTON TITLE":"Wasabee: It is green and makes smurfs cry.","WASABEE_D_LIST":"Input Defensive Key Count","WD BUTTON TITLE":"Log Defensive Keys","WD BUTTON":"W-D Keys","WRITE_SHORT":"RW","WRITE":"write","WSERVER":"Server: {url}","YESNO_DEL":"Are you sure you want to delete {opName}?","ZONE_DRAW":"Click to set the zone boundaries","ZONE":"Zone","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Marker"}}'),Italiano:JSON.parse('{"ABOUT_WASABEE":"Info su Wasabee","acknowledged":"Ricevuto","ADD LINK TITLE":"Aggiunta Link","ADD MARKER TITLE":"Aggiunta Marker","ADD_AGENT":"Aggiungi Agente:","ADD_BL":"Aggiungi Link all\'indietro:","ADD_BULK":"Aggiungi in blocco","ADD_BUTTON_LINKS":"Aggiungi tutti i link assieme.","ADD_LINKS":"Aggiungi Link","ADD_MARKER":"+ Marker","ADD_NEW_OP":"Aggiungi Nuova Op","ADD_SUCC_INSTR":"Aggiunto con successo","ADD_ZONE":"Aggiungi Zona","ADD":"Aggiungi","ADD1":"Aggiungi primo link","ADD2":"Aggiungi secondo link","AGENT_STATS":"Statistiche Agente","AGENT":"Agente","AGES":" (epoche fa)","ALREADY_HAS_MARKER":"Questo portale ha già un marker. Scegli un altro portale.","AMAZ_TEAM_NAME":"Fantastico Nome del Team.","ANCHOR ASSIGNMENT":"Assegna tutti i link in uscita a:","ANCHOR_GMAP":"Mappa Google","ANCHOR_PORTAL":"Portale Ancora","ANCHOR_PORTAL2":"Portale Ancora 2","ANCHOR_PORTAL3":"Portale Ancora 3","ANCHOR1":"Ancora 1","ANCHOR2":"Ancora 2","ANCHOR3":"Ancora 3","ANCHORS_AS_BOOKMARKS":"Ancore come bookmark","API_KEY":"Chiave API Rocks:","ASS_TO":"Assegnato a","ASSIGN LINK PROMPT":"Assegna link da: {portalName}","ASSIGN MARKER PROMPT":"Assegna marker da: {portalName}","ASSIGN OUTBOUND PROMPT":"Assegna tutti i link in uscita da: {portalName}","ASSIGN OUTBOUND":"Assegna Link in uscita","ASSIGN":"Assegna","ASSIGNED_ONLY_SHORT":"SA","ASSIGNED_ONLY":"Solo Assegnati","assigned":"Assegnato","AUTH INCOMPAT":"Hai attivato un plugin in TamperMonkey incompatibile con Wasabee","AUTH REQUIRED":"Autenticazione Richiesta","AUTH TOKEN REJECTED":"Invio token di autenticazione rifiutato: {error}","AUTH_SELECT_ACCOUNT":"Seleziona account","AUTO_DRAWS":"Auto-disegna","AUTODRAWS":"Opzioni Wasabee Auto-draw","AUTODRAW_PORTALS_SET":"Portali","autodraw.common.draw_button":"Disegna","autodraw.fanfield.result":"Fanfield ha trovato {links} link e {fields} field per {ap} AP","autodraw.flipflop.result":"Flip flop: trovati {count} link","autodraw.homogeneous.missing_split":"Impossibile trovare {count} suddivisioni, prova meno profondità o una regione diversa","autodraw.homogeneous.order":"Ordina","autodraw.homogeneous.portals_required":"{count} richiesti","autodraw.madrid.auto_determined":"Auto-determinato","autodraw.madrid.balanced":"Bilanciato","autodraw.madrid.result":"Madrid ha trovato {count} strati","autodraw.multimax.result":"Multimax ha trovato {count} strati","autodraw.multimax.result_both_side":"Multimax ha trovato {count1} e {count2} strati","autodraw.onion.variant":"Alternativo","autodraw.onion.variant.equilateral":"~Equilatero","autodraw.onion.variant.grow":"Lascia che cresca","autodraw.onion.variant.balanced":"Perfettamente bilanciato","AUTOLOAD_RATE":"Frequenza Richiesta dettagli Portali (ms)","AUTOLOAD":"Carica Automaticamente Dettagli dei Portali Mancanti","AUTOMARK STOP":"Auto-Mark interrotto, i portali non sono caricati","AUTOMARK":"Auto-Segna","BAT_TOAD":"Rospi da Battaglia","BLOCKER LIST TITLE":"Mostra tutti i bloccanti","BLOCKER TITLE":"Bloccanti","CANCEL":"Annulla","CAPSULE":"Capsula","CapturePortalMarker":"Cattura","CHANGE SERVER PROMPT":"Nuovo Server Wasabee","CHANGE SERVER":"Cambia Server","CHANGE_WAS_SERVER":"Cambia Server Wasabee","CHECKLIST BUTTON TITLE":"Checklist Operazione","CHECKLIST BUTTON":"Checklist","CLEAR LINKS":"Elimina Link","CLEAR MARKERS":"Elimina Marker","CLEAR_EVERYTHING":"Elimina tutti i Portali/Link/Marker","CLEAROPS BUTTON TITLE":"Elimina TUTTI i dati di Wasabee","CLEAROPS BUTTON":"Elimina i dati di Wasabee","CLEAROPS PROMPT":"Questo eliminerà tutte le OP e i dati relativi a Wasabee. Saranno ripristinati alla prossima sincronizzazione.","CLOSE":"Chiudi","COMMENT":"Commento","COMPLETED BY":"Completato da {agentName}","completed":"Completato","CON_DEL":"Conferma eliminazione: {opName}","COUNT":"Conteggio","CREATE_NEW_TEAM":"Crea Nuovo Team","CreateLinkAlert":"Linkare","CUR_USER_INFO":"Informazioni utente attuale","D_SHOW_LIST":"Inserisci chiavi difensive","DEFAULT OP NAME":"Nuova Op: {date}","DELETE ANCHOR PROMPT":"Vuoi eliminare quest\'ancora e tutti i link associati:","DELETE ANCHOR TITLE":"Elimina Ancora","DELETE MARKER PROMPT":"Vuoi eliminare questo Marker:","DELETE MARKER TITLE":"Elimina Marker","DELETE_ANCHOR":"Elimina","DELETE_LINK":"Elimina","DELETE_OP":"Eliminare {opName}","DESCRIP_PLACEHOLD":"Descrizione (facoltativo)","DestroyPortalAlert":"Distruggere","dialog.about.download_mobile_app":"

App Wasabee:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Imposta commento per {agentName}","dialog.auth.ott.button":"Login con One Time Token","dialog.auth.ott.text":"Ottieni un token dal Server Wasabee, quindi incollalo qui","dialog.auth.ott.title":"One Time Token","dialog.blockers.clear_automark":"Pulisci Automark","dialog.clear_all.text":"Vuoi resettare {opName}?","dialog.clear_all.title":"Pulisci: {opName}","dialog.clear_links.text":"Vuoi rimuovere tutti i link da {opName}?","dialog.clear_links.title":"Pulisci link: {opName}","dialog.clear_markers.text":"Vuoi rimuovere tutti i marker da {opName}?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Conta field","dialog.checklist.count_fields.no_empty":"Trovati {fieldCount} field e nessun field vuoto","dialog.checklist.count_fields.with_empty":"Trovati {fieldCount} field e {emptyCount} field vuoti su {linkCount} link","dialog.checklist.count_fields.link_from_inside":"Trovati {count} link da portali coperti","dialog.checklist.count_fields.link_from_inside.covered_at_order":" a {order} tramite link ","dialog.common.color":"Color","dialog.common.commands":"Comandi","dialog.common.commands_short":"Cmd","dialog.common.delete":"Delete","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Nome","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Proprietario","dialog.common.zone_all":"Tutto","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Visita {url} e premi il pulsante per autorizzare gli aggiornamenti live. Dovrai ricaricare IITC.","dialog.import.url":"Importa da URL","dialog.import.success_message":"Importazione completata. Trovati {count} portali e usati {faked} finti. Si prega di utilizzare la funzione di scambio per spostare i portali finti sui portali reali alla stessa posizione. Zoomando sui portali \'Caricamento\' nella checklist potrebbe forzarne il caricamento.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"Se lasci {teamName} non potrai ricollegarti a meno che il proprietario non ti aggiunga nuovamente.","dialog.leave_team.title":"Lascia: {teamName}","dialog.link_list.length":"Lunghezza","dialog.link_list.level":"Livello minimo","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Cancel upload","dialog.conflict.conflicts":"Conflicts:","dialog.conflict.local":"Local copy","dialog.conflict.server":"Server copy","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Assign:","dialog.conflict.prop.comment":"Comment:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"From:","dialog.conflict.prop.hardness":"Hard:","dialog.conflict.prop.order":"Order:","dialog.conflict.prop.state":"State:","dialog.conflict.prop.toPortal":"To:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Azioni","dialog.online_agents.last_seen":"Ultimo accesso","dialog.online_agents.title":"Agenti Online","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zone","dialog.ops_list.background_disable":"Disabilita background","dialog.ops_list.background_enable":"Mostra in background","dialog.ops_list.download":"Scarica {opName}","dialog.ops_list.last_fetched":"Ultimo scarico: {date}","dialog.ops_list.local_change":"Locale modificato","dialog.ops_list.remote_change":"Remoto modificato","dialog.ops_list.toggle_hide":"Toggle Show/Hide","dialog.ops_list.unhide_ops":"Unhide all OPs","dialog.remove_agent.text":"Do you want to remove {agentName} from {teamName}?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Durezza","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"Load W-D Keys","dialog.team_list.share_wd_keys":"Share W-D Keys","dialog.team_manage.join_link":"Join Link","dialog.team_manage.join_link.create":"Create","dialog.team_manage.join_link.revoke":"Revoke","dialog.team_members.location":"Sharing Location","dialog.team_members.wd_keys":"Sharing W-D Keys","dialog.team_message":"Team announcement: “{message}” from {sender}","dialog.update_warning":"Wasabee is out of date. Please update using your plugin manager or by going to https://wasabee.rocks","dialog.zone_color.title":"Zone Color","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Formato Draw Tools","DUPE_OP":"Duplica Operazione","END_PORT":"Portale di fine ","ExcludeMarker":"Escludi da Auto-Draw/Mark","EXPORT OP TITLE":"Esporta Op attuale","EXPORT OP":"Esporta Op","EXPORT":"Esporta:","FAKED":"Simulato: [{portalId}]","FANFIELD":"Fanfield!","FANFIELD2":"Fanfield","FarmPortalMarker":"Farmare","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Da una data ancora, un insieme di portali visibili e un certo numero di SBUL, trova un fanfield per tirare link dall\'ancora diminuendo la distanza per evitare di cercare chiavi.","FLIP_FLOP_INSTRUCTION":"Seleziona un portale, zooma per vedere abbastanza portali e premi Disegna. Una volta trovato un fanfield, puoi cercare altre ancore per tiri successivi","FLIP_FLOP_FIND_ANCHORS":"Trova altre ancore","FROM_1-2":"dalla base 1-2","FROM_1-3":"dalla base 1-3","FROM_2-3":"dalla base 2-3","FROM_DEPTH":"dalla profondità","FROM_PORT":"Portale di origine","GET DT":"Usa disegno DrawTools esistente","GetKeyPortalMarker":"Ottienere Chiavi","GotoPortalMarker":"Andare A","H-GEN_INST":"Seleziona Portali per lo strato esterno. Scegli il numero di split. Clicca Disegna","HF_DEEP_SEARCH":"Ricerca esaustiva","HF_DRAW_BUTTON":"Disegna","HF_REDRAW_BUTTON":"Ridisegna","HG":"Field Omogeneo","HOURS":" ({hours} ore fa)","HOW_TO_VIDS":"

Video tutorial:

","IMP_NOPE":"Importazione Fallita: {error}","IMP_WAS_OP":"Importa Operazione Wasabee","IMPORT_OP_SUCCESS":"Importata Operazione: {opName} con successo.","IMPORT_OP_TITLE":"Importa Op: {date}","IMPORT_OP":"Importa Operazione","IMPOSSIBLE":"Impossibile","INGNAME_GID":"Nome Ingress o GoogleID","INPUT_DT_KEY_COUNT":"Inserisci numero Chiavi difensive","INVALID REQUEST":"Richiesta non valida","IOS NEED FAKE UA":"Devi impostare un \'Custom UserAgent for Webviews\' nelle impostazioni di IITC-Mobile o il login fallirà","KEY_LIST2":"Lista Chiavi per Operazione: {opName}","KEYS":"Chiavi","KNOWN_BLOCK":"Bloccanti conosciuti: {opName}","LA DESC":"In base al numero di Link Amp usati, potrebbe bastare un livello del Portale più basso.","LA":"L8+ qualche LA","LANG":"Lingua","LEAVE":"Esci","LetDecayPortalAlert":"Lasciare Decadere","LINK ASSIGNMENT":"Assegna link a:","LINK STATE PROMPT":"Stato Link","LINK STATE":"Imposta stato link:","LINKS BUTTON TITLE":"Link","LINKS":"Link","LINKS2":"{portalName} : Link ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Carica Portali","LOADING":"[caricamento]","LOADING1":"Caricamento: [{portalGuid}]","LOC_PROC":"posizione processata","LOCATION SUB":"Posizione registrata","LOCFRMSER":" (locale e dal server)","LOG IN":"Accedi","LOG_OUT":"Logout","MADRID_SET_1":"Seleziona l\'area per la base da Ancora 2 a Ancora 3","MADRID_SET_2":"Seleziona l\'area per la base da Ancora 3 a Ancora 1","MADRID_SET_3":"Seleziona l\'area per la base da Ancora 1 a Ancora 2","MADRID_TITLE":"Protocollo Madrid","MADRID_WAS_TAKEN":"Protocollo Madrid","MADRID":"Disegna","MANAGE_TEAM":"Gestisci {teamName}","MANAGE":"Gestisci","MARKER ASSIGNMENT":"Assegna marker a:","MARKER LIST TITLE":"Lista Marker","MARKER LIST":"Marker","MARKER STATE PROMPT":"Stato Marker","MARKER STATE":"Imposta stato marker:","MARKER_LIST":"Lista Marker: {opName}","MARKERS BUTTON TITLE":"Marker","MAX_SPLITS":"Più Split possibili","MAX":"Fan Field","MeetAgentPortalMarker":"Incontrare Agente","MERGE ON UPDATE":"Unisci all\'aggiornamento","MERGE_CHANGES_LOCAL":"Modifiche locali","MERGE_CHANGES_MERGE":"Risultato unione","MERGE_CHANGES_REMOTE":"Modifiche remote","MERGE_LOCAL":"Mantieni in locale","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, replace the local version with the server version, or cancel?","MERGE_REBASE":"Rebase","MERGE_REPLACE":"Replace","MERGE_TITLE":"Unisci OP locale e remota","MIN_SRC_PORT_LVL":"Livello minimo richiesto sul portale d\'origine","MINUTES":" ({minutes} minuti fa)","MM":"Multimax","MM_BOTH_SIDE":"Usa entrambi i lati della base","MM_INSERT_ORDER":"Inserisci alla fine","MM_SET_ALL_PORTALS":"Tutti i portali visibili","MM_SET_ALL_KEYS":"Tutti i Marker OttieniChiave","MM_SET_KEYS_ZONE":"OttieniChiave: {zoneName}","MM_SPINE":"Filotto","MULTI_M_TITLE":"Disegna più strati possibile","MULTI_M":"Disegna","MUST_NOT_BE_EMPTY":"Non può essere vuoto","MY_CAP_ID":"ID Capsula","MY_COUNT":"Conteggio","NAME_REQ":"Nome Richiesto","NAME":"Nome:","NEW_OP":"Nuova Operazione","NEW_TEAM_NAME":"Nuovo nome Team","NEW_TEAM":"Clicca per creare un nuovo Team","NEW_WAS_SERVER":"Nuovo Server Wasabee","NEWOP BUTTON TITLE":"Crea una nuova Operazione","NEWOP BUTTON":"Nuova Op","NO_DT_ITEMS":"Disegni DrawTools non rilevati","NO_LABEL":"Etichetta non impostata","NO_STOCK_INTEL":"Wasabee non supporta importazioni di disegni dalla intel stock","NO_TITLE":"Titolo non impostato","NO LONGER AVAILABLE":"Risorsa rimossa dal server: {error}","NO LONGER AVAILABLE SHORT":"Risorsa rimossa dal server","NOT LOGGED IN SHORT":"Non loggato","NOT LOGGED IN":"Non loggato: {error}","NOT_LOADED":"Caricamento incompleto, riprova.","NOT_SET":"non impostato","NTNAME":"Nome","OK":"OK","ON_HAND":"Ottenute","ONION_WAS_TAKEN":"Cipolla","ONION":"Disegna","ONLY_DT_IMP":" (solo per importazioni da DrawTools)","OP DELETED":"Operazione rimossa dal server: {opID}","OP PERM DENIED":"Accesso negato all\'operazione: {opID}","OP_CHECKLIST":"Checklist Operazione: {opName}","OP_NAME_UNSET":"Nome Operazione azzerato","OP_PERMS":"Permessi Op","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Impostazioni Operazione","OPEN_REQUEST":"[apri richiesta]","OPER_COLOR":"Colore Operazione:","OPER_NAME":"Nome Operazione:","OPERATIONS":"Operationi","OPS BUTTON TITLE":"Operazioni","OPS BUTTON":"Ops","ORDER":"Ordina","OtherPortalAlert":"Altro","PASTE_INSTRUCT":"Incolla un disegno esportato da Wasabee qui.\\n\\nWasabee non può importare il formato intel stock.\\n\\nL\'importazione di disegni in formato IITC DrawTools è supportata in modo sperimentale.\\n\\nPrima di importare in formato DrawTools, controlla l\'area e fai in modo che tutti i portali carichino, così da essere nella cache di IITC. Ogni Portale non nella cache sarà \'finto\'.\\n\\nDovrete usare la funzione \'swap\' per spostare le ancore dai portali \'finti\' a quelli veri (dovrebbero essere al posto giusto, solo non associate al Portale).\\n\\nI Portali nella cache potrebbero non avere il giusto nome.","pending":"In corso","PERM DENIED":"Accesso negato: {error}","PERM DENIED SHORT":"Accesso negato","PERMS":"{opName} permessi","PLEASE_SELECT_PORTAL":"Seleziona un portale","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Keys: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Set State","PORTAL KEY LIST":"Lista Chiavi per Portale: {portalName}","PORTAL_COUNT":"{count} Portali","PORTAL":"Portale","QD BUTTON CHANGE COLOR":"Clicca per cambiare il colore dei prossimi link","QD BUTTON END":"Clicca per interrompere il disegno dei field","QD BUTTON TOGGLE MODE":"Clicca per cambiare la modalità di disegno","QD CHANGE COLOR":"Cambia colore","QD END":"Fine","QD TITLE":"Disegno Rapido Strati","QD TOGGLE MODE":"Cambia modalità","QDBASE":"Link Base","QDCONT":"Clicca su un portale del filotto per disegnare un field.","QDNEXT":"Clicca il secondo Portale Ancora.","QDSTART":"Clicca il primo Portale Ancora.","READ_SHORT":"SL","READ":"Lettura","RechargePortalAlert":"Ricaricare","REFERENCE_TIME":"Ora riferimento:","REM_LOC_CP":"Elimina copia locale di {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Vuoi eliominare definitivamente {teamName} dal Server Wasabee?","REMOVE_TEAM_CONFIRM_TITLE":"Elimina team {teamName}","REMOVE_TEAM":"Elimina Team:","REMOVE":"Elimina","RENAME_TEAM":"Rinomina Team:","RENAME":"Rinomina","REQUIRED":"Richieste","RESET":"Reset","REVERSE":"Inverti","ROCKS_COM":"community enl.rocks:","ROLE":"Ruolo","SAVELINKS TITLE":"Salva Link","SAVELINKS_DRAW":"Salva Link","SAVELINKS":"Salva Link","SECONDS":" ({seconds} secondi fa)","SEL_SB_ANCHOR":"Imposta l\'ancora.","SEL_SB_ANCHOR2":"Zooma indietro. Assicurati che tutti i Portali siano caricati, poi clicca Disegna.","SEL_SL_ANCHOR":"Seleziona il portale di cui salvare il link. Clicca il pulsante Salva Link e guarda la checklist.","SEL_SRC_ANC2":"Seleziona Origine e Ancora 2","SEL_SRC_PORT":"Seleziona un Portale di Origine","SELECT PORTAL":"Seleziona un portale","SELECT_FAN_PORTALS":"Seleziona un\'ancora, un Portale di inizio e uno di fine, poi zooma su un\'area per il fanfield.","SELECT_FAN_PORTALS2":"Aspetta che i Portali siano caricati, poi clicca Disegna.","SELECT_INSTRUCTIONS":"Seleziona due ancore, poi zooma sul filotto","SELECT_ONION_PORTALS":"Strati creati da dentro a fuori. Zooma sul centro e seleziona il portale di inizio, poi zooma indietro sull\'area.","SELF SWAP":"Non si può scambiare un portale con se stesso! Seleziona un altro portale.","SEND ANALYTICS":"Invia dati di utilizzo anonimi","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Seleziona destinatario target","SEND TARGET CONFIRM":"Vuoi inviare il target {portalName} a {agent}?","SEND TARGET":"Invia target","SEND_LOC":"Invia posizione","SET_3_PORT":"Imposta prima i tre portali","SET_COMMENT":"Imposta Commento","SET_LCOMMENT":"Imposta commento Link","SET_LINK_COMMENT":"Imposta commento per il link:","SET_LINKS_ZONES":"Imposta Link alle Zone","SET_MARKER_COMMENT":"Imposta commento per il marker su:","SET_MARKER_TYPE_TITLE":"Cambia tipo marker","SET_MARKERS_ZONES":"Imposta Marker alle Zone","SET_MCOMMENT":"Imposta commento Marker: {portalName}","SET_NEW_OP":"Impostare il nuovo Nome Operazione","SET_PCOMMENT":"Imposta commento Portale: {portalName}","SET_PORT_COMMENT":"Imposta il commento per il Portale:","SET_PORTAL_COMMENT":"Imposta commento Portale","SET":"impostato","SETTINGS_TOOLBOX":"Wasabee Settings","SETTINGS_TITLE":"Advanced Settings","SKINS_AVAILABLE":"Sono disponibili {count} skin.","SKINS_BUTTON":"Configura Skin","SKINS_DESCRIPTION":"Gestisci le skin disponibili spostandole nella colonna di sinistra. Le skin più in basso hanno priorità più alta sulla UI.","SKINS_MANAGE_TITLE":"Gestisci skin","SKIP_CONFIRM_ALWAYS":"Non chiedere mai (usare con cautela)","SKIP_CONFIRM_ENTITY":"Chiedi solo per squadra/op","SKIP_CONFIRM_NEVER":"Chiedi sempre","SKIP_CONFIRM":"Salta conferma","SOURCE_PORT":"Portale di Origine","STARBURST TITLE":"Starburst ","STARBURST_DRAW":"Disegna","STARBURST":"Starburst","START_PORT":"Portale di Partenza ","STATE":"Stato","SUPPORT_INSTRUCT":"Per assistenza, entrate nel Canale Telegram per Utenti di Wasabee","SWAP PROMPT":"Vuoi scambiare:","SWAP TITLE":"Scambia portali","SWAP WITH":" con ","SWAP":"Scambia","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Download Completato
Fare clic QUI per suggerimenti, suggerimenti e documentazione.","SYNC":"Scarica Operazioni disponibili","TARGET SENT":"Target inviato","TEAM STATE":"Condividi Posizione","TEAM_CREATED":"Team {teamName} creato","TEAM_NAME":"Nome Team","TEAM":"Squadra","TEAMS BUTTON TITLE":"Lista Team Wasabee","TEAMS BUTTON":"Team","TO_PORT":"Al Portale","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Applica","toolbar.quick_delete.apply.title":"Elimina link/marker selezionati","toolbar.quick_delete.cancel.text":"Annulla","toolbar.quick_delete.cancel.title":"Annulla","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Esci dalla modalità eliminazione","toolbar.quick_delete.title":"Eliminazione rapida","toolbar.quick_delete.tooltip.toggle_mode":"Clicca sugli oggetti per segnarli \\"da eliminare\\"","toolbar.quick_delete.tooltip.quick_mode":"Clicca sugli oggetti per eliminarli","toolbar.quick_draw.tooltip.star_mode.anchor":"Seleziona l\'ancora della star","toolbar.quick_draw.tooltip.star_mode.portal":"Seleziona un portale","toolbar.quick_draw.tooltip.single_mode.first":"Clicca il primo portale","toolbar.quick_draw.tooltip.single_mode.next":"Clicca il portale successivo","toolbar.quick_draw.tooltip.portal_fail":"Dati portale non caricati, riprova","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Settings","toolbox.teammates":"Teammates Online","TRAWL SKIP TILES":"Salta tile durante controllo","TRAWL TITLE":"Controllo corridoi","TRAWL WARNING":"Verranno caricati i dati delle tile sotto i link disegnati. Sarà un processo lento.","TRAWL_AUTOMARK":"Auto-mark dei bloccanti dopo controllo","TRAWL_BULK_LOAD_WARNING":"Questo metodo carica i dati delle tile il più in fretta possibile. Usalo a tuo rischio.","TRAWL_BULK_LOAD":"Carica dati tile in bulk","TRAWL_CLEAR_MARKERS":"Rimuovi marker virus/destroy prima di ricercare","TRAWL_REMAINING":"{count} tile rimanenti","TRAWL":"Ricerca dettagliata dei Bloccanti","TRAWLING":"Sto controllando i corridoi per Bloccanti, chiudi questo dialogo per fermare.","TYPE":"Tipo","UNASSIGNED":"Non Assegnato","UNKNOWN":"Sconosciuto","UPDATE HOVER":"AGGIORNA {opName} sul server","UPDATE PERM DENIED":"Non hai il permesso di aggiornare","UPDATE_CONFLICT_DESC":"L\'OP è stata modificata sul server dopo la tua ultima sincronizzazione. Vuoi sostituire la versione sul server con la attuale?","UPDATE_CONFLICT_TITLE":"Rilevato conflitto con il server","UPDATE_COUNT":"Aggiorna conteggio","UPDATED":"Aggiornato con successo","UpgradePortalAlert":"Upgradare","UPLOAD BUTTON HOVER":"CARICA {opName} (al momento non sul server)","UPLOADED":"Caricato con successo","USE PANES ON MOBILE":"Usa riquadri (richiede reload)","USE_VALID_NAME":"Usa un nome operazione valido","UseVirusPortalAlert":"Usare Virus","VRLA DESC":"In base al tipo e al numero di Link Amp usati, potrebbe bastare un portale di origine di livello più basso.","VRLA":"L8+qualche VRLA","WASABEE BUTTON TITLE":"Wasabee: è verde e fa piangere i puffi.","WASABEE_D_LIST":"Inserisci numero chiavi difensive","WD BUTTON TITLE":"Registra chiavi difensive","WD BUTTON":"Chiavi W-D","WRITE_SHORT":"LS","WRITE":"scrittura","WSERVER":"Server: {url}","YESNO_DEL":"Sei sicuro di voler eliminare {opName}?","ZONE_DRAW":"Clicca per impostare i confini della zona","ZONE":"Area","smallScreen":{"ADD_LINKS":"+ Link","ADD_MARKER":"+ Marker"}}'),Tagalog:JSON.parse('{"ABOUT_WASABEE":"Tungkol sa Wasabee","acknowledged":"Natanggap","ADD LINK TITLE":"Magdagdag ng Links","ADD MARKER TITLE":"Magdagdag ng Markers","ADD_AGENT":"Magdagdag ng Agent:","ADD_BL":"Magdagdag ng Back Links:","ADD_BULK":"Maramihang idagdag","ADD_BUTTON_LINKS":"Sabay-sabay idagdag ang lahat ng link","ADD_LINKS":"Magdagdag ng Link","ADD_MARKER":"Magdagdag ng Marker","ADD_NEW_OP":"Magdagdag ng Bagong Op","ADD_SUCC_INSTR":"Matagumpay na naidagdag","ADD_ZONE":"Add Zone","ADD":"Magdagdag","ADD1":"Add first link","ADD2":"Add second link","AGENT_STATS":"Agent Stats","AGENT":"Agent","AGES":" (matagal na panahon)","ALREADY_HAS_MARKER":"May Marker ang portal na ito. Pumili ng ibang portal.","AMAZ_TEAM_NAME":"Malupet na Pangalan ng Pangkat","ANCHOR ASSIGNMENT":"Assign all outbound links to:","ANCHOR_GMAP":"Google Map","ANCHOR_PORTAL":"Anchor Portal","ANCHOR_PORTAL2":"Anchor Portal 2","ANCHOR_PORTAL3":"Anchor Portal 3","ANCHOR1":"Anchor 1","ANCHOR2":"Anchor 2","ANCHOR3":"Anchor 3","ANCHORS_AS_BOOKMARKS":"Anchors as bookmarks","API_KEY":"Rocks API key:","ASS_TO":"Nakatalaga kay","ASSIGN LINK PROMPT":"Magatalaga ng link mula: {portalName}","ASSIGN MARKER PROMPT":"Magtalaga ng marker mula: {portalName}","ASSIGN OUTBOUND PROMPT":"I-Talaga lahat ng outbound links mula: {portalName}","ASSIGN OUTBOUND":"Magtalaga ng Outbound Links","ASSIGN":"Italaga","ASSIGNED_ONLY_SHORT":"AO","ASSIGNED_ONLY":"Assigned Only","assigned":"Naitalaga","AUTH INCOMPAT":"May ginagamit kang plugin sa TamperMonkey na hindi angkop sa Wasabee","AUTH REQUIRED":"Kailangan ng Authentication","AUTH TOKEN REJECTED":"Pagpapadala ng auth token sa server natanggihan {error}","AUTH_SELECT_ACCOUNT":"Select account","AUTO_DRAWS":"Auto-draw","AUTODRAWS":"Wasabee Auto-draw Options","AUTODRAW_PORTALS_SET":"Portals","autodraw.common.draw_button":"Draw","autodraw.fanfield.result":"Fanfield found {links} links and {fields} fields for {ap} AP","autodraw.flipflop.result":"Flip flop: found {count} links","autodraw.homogeneous.missing_split":"Unable to find {count} splits, try less depth or a different region","autodraw.homogeneous.order":"Order","autodraw.homogeneous.portals_required":"{count} required","autodraw.madrid.auto_determined":"Auto-determined","autodraw.madrid.balanced":"Balanced","autodraw.madrid.result":"Madrid found {count} layers","autodraw.multimax.result":"Multimax found {count} layers","autodraw.multimax.result_both_side":"Multimax found {count1} and {count2} layers","autodraw.onion.variant":"Option","autodraw.onion.variant.equilateral":"~Equilateral","autodraw.onion.variant.grow":"Let it grow","autodraw.onion.variant.balanced":"Perfectly balanced","AUTOLOAD_RATE":"Portal Detail Request Rate (ms)","AUTOLOAD":"Automatically Load Missing Portal Details","AUTOMARK STOP":"Itinigil ang pag Auto-Mark dahil hindi maiload ang mga portals","AUTOMARK":"Auto-Mark","BAT_TOAD":"Battle Toads","BLOCKER LIST TITLE":"Ipakita ang lahat ng blockers","BLOCKER TITLE":"Blockers","CANCEL":"Kanselahin","CAPSULE":"Capsule","CapturePortalMarker":"Kuhanin","CHANGE SERVER PROMPT":"Bagong Wasabee Server","CHANGE SERVER":"Magpalit ng Server","CHANGE_WAS_SERVER":"Ipalit ang Wasabee Server","CHECKLIST BUTTON TITLE":"Listahan ng Operasyon","CHECKLIST BUTTON":"Listahan","CLEAR LINKS":"Clear Links","CLEAR MARKERS":"Clear Markers","CLEAR_EVERYTHING":"Burahin Portals/Links/Markers","CLEAROPS BUTTON TITLE":"Burahin lahat ng locally stored na operasyon","CLEAROPS BUTTON":"Burahin Local Ops","CLEAROPS PROMPT":"Nais mo bang tangalin ang lahat ng opersyon sa local storage? Ang mga Ops na nakalagay sa server ay mababawi sa susunod na sync.","CLOSE":"Close","COMMENT":"Komentaryo","COMPLETED BY":"Nakumpleto ni {agentName}","completed":"Naikumpleto","CON_DEL":"Kumpirmahin ang Pagtangal: {opName}","COUNT":"Bilang","CREATE_NEW_TEAM":"Magbuo ng bagong Pangkat","CreateLinkAlert":"Link","CUR_USER_INFO":"Kasalukuyang Impormasyon ng User","D_SHOW_LIST":"Ipasok ang Defensive Keys","DEFAULT OP NAME":"Bagong Op {date}","DELETE ANCHOR PROMPT":"Gusto mo bang tangalin ang anchor na ito at ang lahat ng links na nakakabit:","DELETE ANCHOR TITLE":"Tanggalin ang Anchor","DELETE MARKER PROMPT":"Gusto mo bang tangalin ang marker na ito:","DELETE MARKER TITLE":"Tanggalin ang Marker","DELETE_ANCHOR":"Tangalin","DELETE_LINK":"Tangalin","DELETE_OP":"Tangalin {opName}","DESCRIP_PLACEHOLD":"Description (opsyonal)","DestroyPortalAlert":"Sirain","dialog.about.download_mobile_app":"

Wasabee App:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Set comment for {agentName}","dialog.auth.ott.button":"One Time Token Login","dialog.auth.ott.text":"Get a token from the Wasabee Server, then paste it here","dialog.auth.ott.title":"One Time Token","dialog.blockers.clear_automark":"Clear Automark","dialog.clear_all.text":"Do you want to reset {opName}?","dialog.clear_all.title":"Clear: {opName}","dialog.clear_links.text":"Do you want to remove all links from {opName}?","dialog.clear_links.title":"Clear Links: {opName}","dialog.clear_markers.text":"Do you want to remove all markers from {opName}?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Count fields","dialog.checklist.count_fields.no_empty":"Found {fieldCount} fields and no empty field","dialog.checklist.count_fields.with_empty":"Found {fieldCount} fields and {emptyCount} empty field(s) on {linkCount} link(s)","dialog.checklist.count_fields.link_from_inside":"Found {count} links from covered portals","dialog.checklist.count_fields.link_from_inside.covered_at_order":" at {order} by link ","dialog.common.color":"Color","dialog.common.commands":"Commands","dialog.common.commands_short":"Cmds","dialog.common.delete":"Delete","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Name","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Owner","dialog.common.zone_all":"All","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Visit {url} and press the button to authorize live updates. You will need to reload IITC afterward.","dialog.import.url":"Fill from URL","dialog.import.success_message":"Import Complete. Found {count} portals and used {faked} faked. Please use the swap feature to move faked portals to the real portals at the same location. Zooming in on the \'Loading\' portals in the checklist might force them to load.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"If you leave {teamName} you cannot rejoin unless the owner re-adds you.","dialog.leave_team.title":"Leave: {teamName}","dialog.link_list.length":"Length","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Cancel upload","dialog.conflict.conflicts":"Conflicts:","dialog.conflict.local":"Local copy","dialog.conflict.server":"Server copy","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Assign:","dialog.conflict.prop.comment":"Comment:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"From:","dialog.conflict.prop.hardness":"Hard:","dialog.conflict.prop.order":"Order:","dialog.conflict.prop.state":"State:","dialog.conflict.prop.toPortal":"To:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Actions","dialog.online_agents.last_seen":"Last Seen","dialog.online_agents.title":"Online Agents","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zones","dialog.ops_list.background_disable":"Disable background","dialog.ops_list.background_enable":"Show in background","dialog.ops_list.download":"Download {opName}","dialog.ops_list.last_fetched":"Last fetched: {date}","dialog.ops_list.local_change":"Local has changed","dialog.ops_list.remote_change":"Remote has changed","dialog.ops_list.toggle_hide":"Toggle Show/Hide","dialog.ops_list.unhide_ops":"Unhide all OPs","dialog.remove_agent.text":"Do you want to remove {agentName} from {teamName}?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Hardness","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"Load W-D Keys","dialog.team_list.share_wd_keys":"Share W-D Keys","dialog.team_manage.join_link":"Join Link","dialog.team_manage.join_link.create":"Create","dialog.team_manage.join_link.revoke":"Revoke","dialog.team_members.location":"Sharing Location","dialog.team_members.wd_keys":"Sharing W-D Keys","dialog.team_message":"Team announcement: “{message}” from {sender}","dialog.update_warning":"Wasabee is out of date. Please update using your plugin manager or by going to https://wasabee.rocks","dialog.zone_color.title":"Zone Color","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Draw Tools Format","DUPE_OP":"Kopyahin ang Operasyon","END_PORT":"End Portal ","ExcludeMarker":"Ibukod sa Auto-Draw/Pag-marka","EXPORT OP TITLE":"I-Export ang kasalukuyang op","EXPORT OP":"I-Export ang Op","EXPORT":"Export:","FAKED":"Faked: [{portalId}]","FANFIELD":"Guhit","FANFIELD2":"Iguhit ang Fanfield","FarmPortalMarker":"Farm","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"From a given anchor, a set of visible portal and a number of SBUL, find a fanfield to throw links from the anchor by decreasing distance to avoid searching keys.","FLIP_FLOP_INSTRUCTION":"Select a portal, zoom to see enough portals and press Draw. Once a fanfield is found, you can search for other anchors for consecutive rethrow","FLIP_FLOP_FIND_ANCHORS":"Find other anchors","FROM_1-2":"from base 1-2","FROM_1-3":"from base 1-3","FROM_2-3":"from base 2-3","FROM_DEPTH":"from the depth","FROM_PORT":"Mula sa Portal","GET DT":"Get existing DrawTools draw","GetKeyPortalMarker":"Kunin ang Keys","GotoPortalMarker":"Pumunta","H-GEN_INST":"Set portals for the outside layer. Choose number of splits. Click draw","HF_DEEP_SEARCH":"Exhaustive search","HF_DRAW_BUTTON":"Draw","HF_REDRAW_BUTTON":"Redraw","HG":"Homogeneous Field","HOURS":" ({hours} oras nakalipas)","HOW_TO_VIDS":"

How-To Videos:

","IMP_NOPE":"Pag-I-Import Hindi Matagumpay: {error}","IMP_WAS_OP":"I-Import ang Wasabee operasyon","IMPORT_OP_SUCCESS":"Na-Import na Operasyon: {opName} Matagumpay.","IMPORT_OP_TITLE":"Na-Import na Op: {date}","IMPORT_OP":"I-Import ang Operasyon","IMPOSSIBLE":"Imposible","INGNAME_GID":"Pangalan sa Ingress o GoogleID","INPUT_DT_KEY_COUNT":"Ilagay ang Bilang ng Pangharang na Keys","INVALID REQUEST":"Hindi wastong Request","IOS NEED FAKE UA":"Kailangang pumili ng \'Custom UserAgent for Webviews\' sa IITC-Mobile settings para makapag-login ng maayos","KEY_LIST2":"Litahan ng Keys para sa Operation: {opName}","KEYS":"Keys","KNOWN_BLOCK":"Nalalamang Blockers: {opName}","LA DESC":"Depende sa dami at uri ng Link Amps, ang mas mababang panimulang portal level ay maaaring piliin.","LA":"L8 at ilang LA","LANG":"Wika","LEAVE":"Ialis","LetDecayPortalAlert":"Ipa-decay","LINK ASSIGNMENT":"Assign link to:","LINK STATE PROMPT":"estado ng Link","LINK STATE":"Set link status:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Load Portals","LOADING":"[loading]","LOADING1":"Loading: [{portalGuid}]","LOC_PROC":"Lokasyon nai-proseso","LOCATION SUB":"Nairehistro ang lokasyon","LOCFRMSER":" (locally at sa server)","LOG IN":"Mag Log In","LOG_OUT":"Log Out","MADRID_SET_1":"Select the region for baselink Anchor 2 to Anchor 3","MADRID_SET_2":"Select the region for baselink Anchor 3 to Anchor 1","MADRID_SET_3":"Select the region for baselink Anchor 1 to Anchor 2","MADRID_TITLE":"Madrid Protocol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Draw","MANAGE_TEAM":"Ipamahala {teamName}","MANAGE":"Ipamahala","MARKER ASSIGNMENT":"Assign marker to:","MARKER LIST TITLE":"Listahan ng Marker","MARKER LIST":"Markers","MARKER STATE PROMPT":"Estado ng Marker","MARKER STATE":"Set marker state:","MARKER_LIST":"Listahan ng Marker: {opName}","MARKERS BUTTON TITLE":"Markers","MAX_SPLITS":"Max Splits","MAX":"Fan Field","MeetAgentPortalMarker":"Kitain ang Agent","MERGE ON UPDATE":"Merge on update","MERGE_CHANGES_LOCAL":"Local changes","MERGE_CHANGES_MERGE":"Merge result","MERGE_CHANGES_REMOTE":"Remote changes","MERGE_LOCAL":"Keep local","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, replace the local version with the server version, or cancel?","MERGE_REBASE":"Rebase","MERGE_REPLACE":"Replace","MERGE_TITLE":"Merge local&remote OP","MIN_SRC_PORT_LVL":"Pinakamababang level kailangan sa on panimulang portal","MINUTES":" ({minutes} minutong nakalipas)","MM":"Multimax","MM_BOTH_SIDE":"Use both base sides","MM_INSERT_ORDER":"Insert at the end","MM_SET_ALL_PORTALS":"All visible portals","MM_SET_ALL_KEYS":"All GetKey Markers","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Spine","MULTI_M_TITLE":"Gumuhit ng Max Layers","MULTI_M":"Multimax","MUST_NOT_BE_EMPTY":"Hindi maari na walang laman","MY_CAP_ID":"Aking Capsule ID","MY_COUNT":"Aking Bilang","NAME_REQ":"Kilanakailangan ng Pangalan","NAME":"Pangalan:","NEW_OP":"Bagong Operasyon","NEW_TEAM_NAME":"Bagong Pangalan ng Pangkat","NEW_TEAM":"New Team","NEW_WAS_SERVER":"Bagong Waasbee Server","NEWOP BUTTON TITLE":"Bumuo ng bagong Operasyon","NEWOP BUTTON":"Bagong Op","NO_DT_ITEMS":"Walang DrawTools drawn items na nakita","NO_LABEL":"Walang tatak","NO_STOCK_INTEL":"Hindi suportado ng Wasabee ang stock intel draw imports","NO_TITLE":"Walang Pamagat","NO LONGER AVAILABLE":"Resource removed from server: {error}","NO LONGER AVAILABLE SHORT":"Resource removed from server","NOT LOGGED IN SHORT":"Hindi naka-Logged in","NOT LOGGED IN":"Hindi naka-Logged in {error}","NOT_LOADED":"Hindi nai-load, ulitin muli.","NOT_SET":"hindi naitalaga","NTNAME":"Pangalan","OK":"OK","ON_HAND":"On Hand","ONION_WAS_TAKEN":"Onion","ONION":"Draw","ONLY_DT_IMP":" (para lang sa DrawTools imports)","OP DELETED":"Operation removed from server: {opID}","OP PERM DENIED":"Walang pahintulot sa operasyon {opID}","OP_CHECKLIST":"Checklist ng Operasyon: {opName}","OP_NAME_UNSET":"Pangalan ng operasyon ay tinangal","OP_PERMS":"Permisyo sa Op","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Operation Settings","OPEN_REQUEST":"[open request]","OPER_COLOR":"Kulay ng Operasyon:","OPER_NAME":"Pangalan ng Operasyon:","OPERATIONS":"Mga Operasyon","OPS BUTTON TITLE":"Operasyon","OPS BUTTON":"Ops","ORDER":"Kaayusan","OtherPortalAlert":"Iba","PASTE_INSTRUCT":"I-Paste ang Wasabee draw export dito.\\n\\nHindi ma-import ng Wasabee ang stock intel format.\\n\\nMerong experimental na suporta para sa pag-import ng IITC DrawTools format.\\n\\nBago i-import ang DrawTools format, tignan ang mga areas at siguraduhing lahat ng portals naka-load para naka-cached ito sa IITC. Ang mga portals na hindi pre-cached ay that are not pre-cached ay ipapalit ng \'fake\' portal.\\n\\nKailangan mong gamitin ang \'Ipagpalit\' feature para ipatlit ang mga anchor mula sa fake portal sa tamang portal. (ang portal ay dapat nasa tamang lokasyon.\\n\\nAng mga pangalan ng naka-Cached na portals ay hindi maaring nakapangalan ng tama.)","pending":"Nakabinbin","PERM DENIED":"Walang pahintulot: {error}","PERM DENIED SHORT":"Walang pahintulot","PERMS":"{opName} permisyo","PLEASE_SELECT_PORTAL":"Pumili ng portal","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Keys: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Set State","PORTAL KEY LIST":"Listahan ng Key para sa Portal {portalName}","PORTAL_COUNT":"{count} portals","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Click to change next links color","QD BUTTON END":"I-Click para tapusin ang pagukit ng fields","QD BUTTON TOGGLE MODE":"Click to change draw mode","QD CHANGE COLOR":"Change color","QD END":"Wakas","QD TITLE":"Mabilisang Pagukit ng Layers","QD TOGGLE MODE":"Change mode","QDBASE":"Base Link","QDCONT":"I-Click ang mga spine portal para I-drawing ang field.","QDNEXT":"I-Click ang pangalawang anchor portal.","QDSTART":"I-Click ang unang anchor portal.","READ_SHORT":"RO","READ":"basahin","RechargePortalAlert":"Recharge","REFERENCE_TIME":"Reference Time:","REM_LOC_CP":"Tangalin ang local copy ng {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Gusto mong permanenteng tanggalin {teamName} sa Wasabee Server?","REMOVE_TEAM_CONFIRM_TITLE":"Tanggalin Pangkat {teamName}","REMOVE_TEAM":"Tanggalin Pangkat:","REMOVE":"Tangalin","RENAME_TEAM":"Palitan ang Pangalan ng Pangkat:","RENAME":"Palitan ang Pangalan","REQUIRED":"Kinakailangan","RESET":"Reset","REVERSE":"Reverse","ROCKS_COM":"enl.rocks community:","ROLE":"Papel","SAVELINKS TITLE":"Save Links","SAVELINKS_DRAW":"Save Links","SAVELINKS":"Save Links","SECONDS":" ({seconds} segundong nakalipas)","SEL_SB_ANCHOR":"Pillin ang anchor, I-zoom sa area para dagdagan sa starburst","SEL_SB_ANCHOR2":"Zoom out. Make sure portals have all loaded, then click draw.","SEL_SL_ANCHOR":"Select the portal to save the links of. Click save links button and look at checklist.","SEL_SRC_ANC2":"Piliin ang Panimula at Anchor 2","SEL_SRC_PORT":"Pumili ng panimulang portal","SELECT PORTAL":"Piliin ang portal na ipapadala","SELECT_FAN_PORTALS":"Pumili ng mga anchor portals, (isang panimulang portal at panghuling portal) tapos i-zoom in sa lugar na i-fan field, hintayin na mag load ang mga portals (dapat nasa screen ang mga portals) at pindutin ang Fanfield button.","SELECT_FAN_PORTALS2":"Wait for all portals to load, then click draw.","SELECT_INSTRUCTIONS":"Pumili ng dalawang anchor portals, tapos i-zoom in sa lugar para sa spine, hintayin mag-load ang mga portals (dapat nasa screen ang mga portals para gumana) tapos pindutin ang Multimax button.","SELECT_ONION_PORTALS":"Layers build from the inside out. Zoom in to center and select starting portal, then zoom out to area.","SELF SWAP":"Hindi maaari ipagpalit ang portal sa sarili! Pumili ng ibang portal.","SEND ANALYTICS":"Send Anonymous Analytics","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Select target recipient","SEND TARGET CONFIRM":"Gusto mong ipadala ang {portalName} target sa {agent}?","SEND TARGET":"Ipadala ang Target","SEND_LOC":"Ipalada ang Lokasyon","SET_3_PORT":"Pumili muna ng tatlong portals!","SET_COMMENT":"Magatalaga ng Komentayro","SET_LCOMMENT":"Italaga ang commento sa Link","SET_LINK_COMMENT":"Komento para sa link:","SET_LINKS_ZONES":"Set Links to Zones","SET_MARKER_COMMENT":"Komento para sa marker:","SET_MARKER_TYPE_TITLE":"Change marker type","SET_MARKERS_ZONES":"Set Markers to Zones","SET_MCOMMENT":"Italaga ang commento sa Marker: {portalName}","SET_NEW_OP":"Bigyan ng pangalan ang bagong operasyon","SET_PCOMMENT":"Italaga ang commento sa Portal: {portalName}","SET_PORT_COMMENT":"Komento para sa portal:","SET_PORTAL_COMMENT":"Magtalaga komento sa portal","SET":"italaga","SETTINGS_TOOLBOX":"Wasabee Settings","SETTINGS_TITLE":"Advanced Settings","SKINS_AVAILABLE":"There are {count} available skins.","SKINS_BUTTON":"Configure Skins","SKINS_DESCRIPTION":"Available skin packs are located in the right columns. Move skins you wish to use to the left columns.","SKINS_MANAGE_TITLE":"Manage skins","SKIP_CONFIRM_ALWAYS":"Never ask (use with caution)","SKIP_CONFIRM_ENTITY":"Only ask for team/op","SKIP_CONFIRM_NEVER":"Always ask","SKIP_CONFIRM":"Skip confirmation","SOURCE_PORT":"Source Portal","STARBURST TITLE":"Starburst ","STARBURST_DRAW":"Iguhit","STARBURST":"Starburst","START_PORT":"Panimulang Portal","STATE":"Estado","SUPPORT_INSTRUCT":"Para sa karagdagang tulong, sumali sa Ang Wasabee User Telegram Channel","SWAP PROMPT":"Gusto mo ba ipagpalit:","SWAP TITLE":"Ipagpalit ang Portals","SWAP WITH":" sa ","SWAP":"Ipagpalit","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Matagumpay na i-Download
Mag-click DITO para sa mga pahiwatig, tip, at dokumentasyon.","SYNC":"I-Download ang Matatamo na mga Operasyon","TARGET SENT":"Naipadala ang Target","TEAM STATE":"Share Location","TEAM_CREATED":"Pangkat {teamName} nabuo","TEAM_NAME":"Pangalan ng Pangkat","TEAM":"Pangkat","TEAMS BUTTON TITLE":"I-Lista mga Wasabee Pangkat","TEAMS BUTTON":"Pangkat","TO_PORT":"Papunta sa Portal","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Apply","toolbar.quick_delete.apply.title":"Delete selected links/markers","toolbar.quick_delete.cancel.text":"Cancel","toolbar.quick_delete.cancel.title":"Cancel","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Exit delete mode","toolbar.quick_delete.title":"Quick delete","toolbar.quick_delete.tooltip.toggle_mode":"Click on features to mark for deletion","toolbar.quick_delete.tooltip.quick_mode":"Click on features to delete instantly","toolbar.quick_draw.tooltip.star_mode.anchor":"Select the star anchor","toolbar.quick_draw.tooltip.star_mode.portal":"Select a portal","toolbar.quick_draw.tooltip.single_mode.first":"Click first portal","toolbar.quick_draw.tooltip.single_mode.next":"Click next portal","toolbar.quick_draw.tooltip.portal_fail":"Portal data not loaded, please try again","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Settings","toolbox.teammates":"Teammates Online","TRAWL SKIP TILES":"Trawl Skip Tiles","TRAWL TITLE":"Trawl Lanes","TRAWL WARNING":"This will load the tile data under all drawn links. This is a slow process.","TRAWL_AUTOMARK":"Auto-mark blockers after trawling","TRAWL_BULK_LOAD_WARNING":"This method loads the tile data as quickly as possible. Use at your own risk.","TRAWL_BULK_LOAD":"Bulk Load Tile Data","TRAWL_CLEAR_MARKERS":"Clear virus/destroy markers before trawling","TRAWL_REMAINING":"{count} tiles remaining","TRAWL":"Trawl for Blockers","TRAWLING":"Trawling the lanes for blockers, close this dialog to stop","TYPE":"Uri","UNASSIGNED":"Hindi Nakatalaga","UNKNOWN":"Nakatago","UPDATE HOVER":"UPDATE {opName} sa server","UPDATE PERM DENIED":"Walang pahintulot para sa pag-update","UPDATE_CONFLICT_DESC":"The OP has been modified on server since last sync. Do you want to replace the server version by the current one?","UPDATE_CONFLICT_TITLE":"Conflict detected with server","UPDATE_COUNT":"I-Update ang bilang","UPDATED":"Matagumpay na i-update","UpgradePortalAlert":"Upgrade","UPLOAD BUTTON HOVER":"UPLOAD {opName} (kasalukuyang wala sa server)","UPLOADED":"Matagumpay na i-upload","USE PANES ON MOBILE":"Use panes (need reload)","USE_VALID_NAME":"Gumamit ng naaayon na pangalan ng operasyon","UseVirusPortalAlert":"Gumamit ng Virus","VRLA DESC":"Depende sa dami at uri ng Link Amp, ang mas mababang panimulang portal level ay maaaring piliin.","VRLA":"L8 at ilang VRLA","WASABEE BUTTON TITLE":"Wasabee: Lumot na siya! Paiyakin ang mga Smurfs!","WASABEE_D_LIST":"Ipasok ang Bilang ng Defensive Key","WD BUTTON TITLE":"Ilagay mga Pangharang na Keys","WD BUTTON":"W-D Keys","WRITE_SHORT":"RW","WRITE":"isulat","WSERVER":"Server: {url}","YESNO_DEL":"Sigurado ka na gusto mo burahin ang {opName}?","ZONE_DRAW":"Click to set the zone boundaries","ZONE":"Zoned","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Marker"}}'),Français:JSON.parse('{"ABOUT_WASABEE":"À propos de Wasabee","acknowledged":"Noté","ADD LINK TITLE":"Ajouter des liens","ADD MARKER TITLE":"Ajouter des marqueurs","ADD_AGENT":"Ajouter l\'agent :","ADD_BL":"Ajouter les backlinks :","ADD_BULK":"Ajouter en masse","ADD_BUTTON_LINKS":"Ajouter les liens","ADD_LINKS":"Ajouter des liens","ADD_MARKER":"+ Marqueur","ADD_NEW_OP":"Ajouter une nouvelle Opé","ADD_SUCC_INSTR":"L\'agent a bien été ajouté à l\'équipe","ADD_ZONE":"Ajouter une zone","ADD":"Ajouter","ADD1":"Ajouter le premier lien","ADD2":"Ajouter le second lien","AGENT_STATS":"Informations de l\'agent","AGENT":"Agent","AGES":" (il y a longtemps)","ALREADY_HAS_MARKER":"Ce portail porte déjà un marqueur. Choisissez un autre portail.","AMAZ_TEAM_NAME":"Nom de l\'équipe","ANCHOR ASSIGNMENT":"Affecter tous les liens sortants à :","ANCHOR_GMAP":"Google Maps","ANCHOR_PORTAL":"Ancre","ANCHOR_PORTAL2":"Portail Ancre 2","ANCHOR_PORTAL3":"Portail Ancre 3","ANCHOR1":"Ancre 1","ANCHOR2":"Ancre 2","ANCHOR3":"Ancre 3","ANCHORS_AS_BOOKMARKS":"Ancres vers Bookmarks","API_KEY":"Clé API Rocks :","ASS_TO":"Assigné à","ASSIGN LINK PROMPT":"Assigner le lien de {portalName}","ASSIGN MARKER PROMPT":"Assigner le marqueur sur {portalName}","ASSIGN OUTBOUND PROMPT":"Assigner les liens sortants de {portalName}","ASSIGN OUTBOUND":"Assigner les liens sortants","ASSIGN":"Assigner","ASSIGNED_ONLY_SHORT":"AO","ASSIGNED_ONLY":"Seulement les affectations","assigned":"Assigné","AUTH INCOMPAT":"Vous avez activé un plugin dans TamperMonkey (ou équivalent) qui est incompatible avec Wasabee.","AUTH REQUIRED":"Authentification requise","AUTH TOKEN REJECTED":"Jeton d’authentification rejeté par le serveur : {error}","AUTH_SELECT_ACCOUNT":"Sélectionner le compte","AUTO_DRAWS":"Auto-Draw","AUTODRAWS":"Choix d\'Auto-draw","AUTODRAW_PORTALS_SET":"Portails","autodraw.common.draw_button":"Tracer","autodraw.fanfield.result":"Fanfield a trouvé {links} liens et {fields} fields pour {ap} AP","autodraw.flipflop.result":"Flip flop: {count} liens trouvés","autodraw.homogeneous.missing_split":"Il manque {count} portails pour une configuration complète","autodraw.homogeneous.order":"Ordre","autodraw.homogeneous.portals_required":"{count} requis","autodraw.madrid.auto_determined":"Auto-déterminée","autodraw.madrid.balanced":"Équilibré","autodraw.madrid.result":"Madrid a trouvé {count} couches","autodraw.multimax.result":"Multimax a trouvé {count} couches","autodraw.multimax.result_both_side":"Multimax a trouvé {count1} et {count2} couches","autodraw.onion.variant":"Variante","autodraw.onion.variant.equilateral":"~Équilatéral","autodraw.onion.variant.grow":"Un plus grand","autodraw.onion.variant.balanced":"Équilibré","AUTOLOAD_RATE":"Délai entre deux requêtes","AUTOLOAD":"Charger automatiquement les données manquantes de portails","AUTOMARK STOP":"Le processus d\'Auto-Mark s\'est arrêté suite à l\'absence de donnée pour certains portails.","AUTOMARK":"Auto-Marque","BAT_TOAD":"Les grenouilles masquées","BLOCKER LIST TITLE":"Afficher les bloquants","BLOCKER TITLE":"Bloquants","CANCEL":"Annuler","CAPSULE":"Capsule","CapturePortalMarker":"Capturer","CHANGE SERVER PROMPT":"Nouveau serveur Wasabee","CHANGE SERVER":"Changer de serveur","CHANGE_WAS_SERVER":"Changer de serveur Wasabee","CHECKLIST BUTTON TITLE":"Checklist de l\'opération","CHECKLIST BUTTON":"Checklist","CLEAR LINKS":"Supprimer les liens","CLEAR MARKERS":"Supprimer les marqueurs","CLEAR_EVERYTHING":"Supprimer Portails/Links et Marqueurs","CLEAROPS BUTTON TITLE":"Supprimer TOUTES les données Wasabee","CLEAROPS BUTTON":"Supprimer les données Wasabee","CLEAROPS PROMPT":"Toutes les opérations et données relatives à Wasabee seront supprimées de cet appareil. Seules les données présentes sur le/les serveurs seront récupérées à la prochaine synchronisation. Wasabee sera désactivé jusqu\'au prochain rechargement d\'IITC.","CLOSE":"Fermer","COMMENT":"Commentaire","COMPLETED BY":"Fait par {agentName}","completed":"Fait","CON_DEL":"Confirmer la suppression : {opName}","COUNT":"Nombre","CREATE_NEW_TEAM":"Créer une équipe","CreateLinkAlert":"Lien","CUR_USER_INFO":"Information sur l\'utilisateur courant","D_SHOW_LIST":"Entrer les clés défensives","DEFAULT OP NAME":"Opération {date}","DELETE ANCHOR PROMPT":"Voulez vous supprimer cette ancre et tous les liens associés :","DELETE ANCHOR TITLE":"Supprimer une ancre","DELETE MARKER PROMPT":"Voulez vous supprimer le marqueur :","DELETE MARKER TITLE":"Supprimer un marqueur","DELETE_ANCHOR":"Supprimer","DELETE_LINK":"Supprimer","DELETE_OP":"Supprimer {opName}","DESCRIP_PLACEHOLD":"Description (optionnelle)","DestroyPortalAlert":"Casse","dialog.about.download_mobile_app":"

Application Wasabee :

","dialog.agent_comment.text":"Commentaire :","dialog.agent_comment.title":"Définir le commentaire de {agentName}","dialog.auth.ott.button":"Connexion à jeton unique","dialog.auth.ott.text":"Récupérez un jeton (One time Token) depuis le serveur Wasabee, puis collez-le ici","dialog.auth.ott.title":"Connexion à jeton unique","dialog.blockers.clear_automark":"Supprimer les Auto-Mark","dialog.clear_all.text":"Voulez-vous supprimer les liens et marqueurs de {opName} ?","dialog.clear_all.title":"Réinitialisation de {opName}","dialog.clear_links.text":"Voulez-vous supprimer tous les liens de {opName} ?","dialog.clear_links.title":"Effacer les liens : {opName}","dialog.clear_markers.text":"Voulez-vous supprimer tous les marqueurs de {opName} ?","dialog.clear_markers.title":"Effacer les marqueurs : {opName}","dialog.checklist.count_fields":"Nombre de fields","dialog.checklist.count_fields.no_empty":"{fieldCount} fields trouvés et aucun champ vide","dialog.checklist.count_fields.with_empty":"{fieldCount} fields trouvés et {emptyCount} champ(s) vide(s) sur {linkCount} lien(s)","dialog.checklist.count_fields.link_from_inside":"{count} liens trouvés depuis des portails sous fields","dialog.checklist.count_fields.link_from_inside.covered_at_order":" à {order} par le lien ","dialog.common.color":"Couleur","dialog.common.commands":"Commandes","dialog.common.commands_short":"Cmds","dialog.common.delete":"Supprimer","dialog.common.links":"Liens","dialog.common.markers":"Marqueurs","dialog.common.name":"Nom","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Propriétaire","dialog.common.zone_all":"Toutes les zones","dialog.filter.actions.description":"Changer toutes les tâches visibles","dialog.filter.actions.delete_visible":"Supprimer","dialog.filter.actions.delete_hidden":"Supprimer toutes les autres tâches","dialog.filter.actions.shift.label":"Décalage","dialog.filter.actions.shift.button":"Décaler","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Appliquer le filtre","dialog.filter.filters.description":"Sélectionner les propriétés sur lesquelles filtrer les tâches que vous voulez voir&modifier.","dialog.filter.filters.field.task":"Tâche","dialog.filter.filters.field.min_order":"Ordre min","dialog.filter.filters.field.max_order":"Ordre max","dialog.filter.filters.title":"Filtres","dialog.filter.title":"Filtres & Actions","dialog.firebase.setup":"Visitez {url} et cliquez sur le bouton pour autoriser les mises à jour en direct. Vous devrez recharger l\'IITC ensuite.","dialog.import.url":"Charger l’URL","dialog.import.success_message":"Importation terminée. {count} portails trouvés et {faked} faux portails utilisés. Veuillez utiliser la fonction d\'échange pour déplacer les faux portails vers les vrais portails au même endroit. Faire un zoom avant sur les portails \'Chargement\' dans la liste de contrôle peut les forcer à charger.","dialog.keys.update_error":"Le portail n\'est pas encore dans l\'opération, veuillez d\'abord la synchroniser avec le serveur","dialog.leave_team.text":"Si vous quittez {teamName} vous ne pouvez pas rejoindre à moins que le propriétaire vous rajoute.","dialog.leave_team.title":"Quitter : {teamName}","dialog.link_list.length":"Longueur","dialog.link_list.level":"Niv Min","dialog.link_list.all_from":"Tirer tout depuis","dialog.link_list.all_to":"Tirer tout vers","dialog.conflict.cancel_upload":"Annuler","dialog.conflict.conflicts":"Conflits :","dialog.conflict.local":"Copie locale","dialog.conflict.server":"Copie du serveur","dialog.conflict.zone":"Zone : {name}","dialog.conflict.prop.assignedTo":"Assigné :","dialog.conflict.prop.comment":"Commentaire :","dialog.conflict.prop.color":"Couleur :","dialog.conflict.prop.deltaminutes":"Delta :","dialog.conflict.prop.fromPortal":"De :","dialog.conflict.prop.hardness":"Difficulté :","dialog.conflict.prop.order":"Ordre :","dialog.conflict.prop.state":"État :","dialog.conflict.prop.toPortal":"Vers :","dialog.conflict.prop.zone":"Zone :","dialog.conflict.prop.zone_points":"La forme a été modifiée","dialog.online_agents.actions":"Action","dialog.online_agents.last_seen":"Dernière activité","dialog.online_agents.title":"Agents en ligne","dialog.op_settings.advanced":"Avancé","dialog.op_settings.import.desc":"Importer les liens/marqueurs/zones d\'une autre OP","dialog.op_settings.import.collision_default":"En cas de conflit, utilisez les liens/marqueurs importés","dialog.op_settings.import.select_op":"Opération","dialog.op_settings.import.select_color":"Couleur de l\'OP","dialog.op_settings.import.button":"Importer","dialog.op_settings.setting":"Paramètres","dialog.op_settings.zones":"Zones","dialog.ops_list.background_disable":"Cacher en arrière-plan","dialog.ops_list.background_enable":"Afficher en arrière-plan","dialog.ops_list.download":"Télécharger {opName}","dialog.ops_list.last_fetched":"Dernière récupération : {date}","dialog.ops_list.local_change":"La version locale a été modifiée","dialog.ops_list.remote_change":"Modifications sur le serveur","dialog.ops_list.toggle_hide":"Afficher/Masquer","dialog.ops_list.unhide_ops":"Démasquer tout","dialog.remove_agent.text":"Voulez-vous retirer {agentName} de {teamName}?","dialog.remove_agent.title":"Retirer : {agentName}","dialog.setcomment.portal_hardness":"Difficulté","dialog.settings.disable_live_updates":"Désactiver les mises à jour en direct","dialog.settings.populate_opportals":"Afficher le cercle des OP portails à tout zoom","dialog.team_list.load_wd_keys":"Charger les clés W-D","dialog.team_list.share_wd_keys":"Partager les clés W-D","dialog.team_manage.join_link":"Lien pour rejoindre","dialog.team_manage.join_link.create":"Créer","dialog.team_manage.join_link.revoke":"Révoquer","dialog.team_members.location":"Partage de position","dialog.team_members.wd_keys":"Partage de clés W-D","dialog.team_message":"Message d\'équipe : « {message} » de {sender}","dialog.update_warning":"Wasabee est obsolète. Veuillez mettre à jour en utilisant votre gestionnaire de plugin ou en allant sur https://wasabee.rocks","dialog.zone_color.title":"Colorier la zone","dialog.zone_color.text":"Colorier tous les liens dans la zone {zoneName}","dialog.zones.color":"Couleur","dialog.zones.color_links":"Colorier les liens","dialog.zones.delete.title":"Supprimer la zone « {zoneName} »","dialog.zones.delete.text":"Voulez-vous supprimer la zone « {zoneName} » ?","dialog.zones.delete_zone_shape":"Réinitialiser la forme","dialog.zones.draw_zone_shape":"Dessiner la zone","dialog.zones.id":"ID","dialog.zones.jump_to":"Zoomer sur la zone","dialog.zones.stop_drawing":"Terminer le dessin","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Format DrawTools","DUPE_OP":"Dupliquer l\'opération","END_PORT":"Portail de fin","ExcludeMarker":"Exclure d\'Auto-Draw/Mark","EXPORT OP TITLE":"Exporter l\'opération","EXPORT OP":"Exporter","EXPORT":"Exporter :","FAKED":"Faux [{portalId}]","FANFIELD":"Tracer","FANFIELD2":"Fan Field","FarmPortalMarker":"Farmer","FLIP_FLOP_NAME":"Flip Flop","FLIP_FLOP_TITLE":"Flip Flop","FLIP_FLOP_DESC":"À partir d\'une ancre, d\'un ensemble de portails visibles et d\'un nombre de SBUL, cherche un fanfield à tirer depuis l\'ancre par distance décroissante pour éviter de rechercher les clés dans le carrousel.","FLIP_FLOP_INSTRUCTION":"Sélectionner un portal, se placer dans la zone des portails cibles afin qu\'ils soient visibles, puis presser Tracer. Une fois un fanfield trouvé, vous pouvez trouver d\'autres ancres compatibles pour des re-tirs consécutifs","FLIP_FLOP_FIND_ANCHORS":"Trouver d\'autres ancres","FROM_1-2":"depuis la base 1-2","FROM_1-3":"depuis la base 1-3","FROM_2-3":"depuis la base 2-3","FROM_DEPTH":"depuis l\'intérieur vers l\'extérieur","FROM_PORT":"Depuis le Portail","GET DT":"Récupérer le dessin actuel","GetKeyPortalMarker":"Clés","GotoPortalMarker":"Aller à","H-GEN_INST":"Choisir les 3 portails du field englobant, le nombre de couches et cliquer sur Draw.","HF_DEEP_SEARCH":"Recherche exhaustive","HF_DRAW_BUTTON":"Tracer","HF_REDRAW_BUTTON":"Re-Draw","HG":"Field homogène","HOURS":"(il y a {hours} heures)","HOW_TO_VIDS":"

Tuto:

","IMP_NOPE":"Échec de l\'importation : {error}","IMP_WAS_OP":"Importer les opérations Wasabee","IMPORT_OP_SUCCESS":"Importation de l\'opération « {opName} » réussie.","IMPORT_OP_TITLE":"Importer l\'opération : {date}","IMPORT_OP":"Importer l\'opération","IMPOSSIBLE":"Impossible","INGNAME_GID":"Pseudo Ingress ou Identifiants Google","INPUT_DT_KEY_COUNT":"Entrer le nombre de clés défensives","INVALID REQUEST":"Requête invalide","IOS NEED FAKE UA":"Vous devez définir un \'Custom UserAgent for Webviews\' dans les options de IITC-Mobile pour que la connexion à Wasabee fonctionne","KEY_LIST2":"Liste des clés pour l\'opération : {opName}","KEYS":"Clés","KNOWN_BLOCK":"Liens bloquants connus : {opName}","LA DESC":"Le niveau nécessaire du portail peut être plus faible en fonction du type des Link Amp utilisés.","LA":"L8+ quelques LinkAmp","LANG":"Langue","LEAVE":"Quitter","LetDecayPortalAlert":"À decay","LINK ASSIGNMENT":"Affecter le lien à :","LINK STATE PROMPT":"Statut du lien","LINK STATE":"Définir l\'état du lien :","LINKS BUTTON TITLE":"Liens","LINKS":"Liens","LINKS2":"{portalName} : Liens ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Charger les portails","LOADING":"[chargement]","LOADING1":"Chargement : {portalGuid}","LOC_PROC":"Emplacement traité","LOCATION SUB":"Position envoyée","LOCFRMSER":"(Localement et sur le serveur)","LOG IN":"Connexion","LOG_OUT":"Déconnexion","MADRID_SET_1":"Définir la zone pour le multifield de base 2-3","MADRID_SET_2":"Définir la zone pour le multifield de base 1-3","MADRID_SET_3":"Définir la zone pour le multifield de base 1-2","MADRID_TITLE":"Madrid Protocol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Tracer","MANAGE_TEAM":"Gérer {teamName}","MANAGE":"Gérer","MARKER ASSIGNMENT":"Affecter le marqueur à :","MARKER LIST TITLE":"Liste des marqueurs","MARKER LIST":"Marqueurs","MARKER STATE PROMPT":"Statut du marqueur","MARKER STATE":"Définir l\'état du marqueur :","MARKER_LIST":"Liste des marqueurs : {opName}","MARKERS BUTTON TITLE":"Marqueurs","MAX_SPLITS":"Nb. Couches","MAX":"Fan Field","MeetAgentPortalMarker":"Rencontrer un agent","MERGE ON UPDATE":"Fusion à la mise à jour d\'une OP","MERGE_CHANGES_LOCAL":"Changements locaux","MERGE_CHANGES_MERGE":"Résultat après fusion","MERGE_CHANGES_REMOTE":"Changements sur le serveur","MERGE_LOCAL":"Locale","MERGE_MESSAGE":"Les modifications locales et du serveur sont en conflit. Vous devez résoudre les conflits que Wasabee n\'a pas réussi à résoudre lui-même. Sélectionnez la version à conserver pour chaque conflit non résolu. Vous pouvez également ignorer tous les conflits et utiliser la copie du serveur, ou vous pouvez simplement garder la copie locale intacte.","MERGE_REBASE":"Fusion","MERGE_REPLACE":"Remplacer","MERGE_TITLE":"Fusion des versions locale et serveur","MIN_SRC_PORT_LVL":"Niveau minimum requis pour le portail source","MINUTES":" (il y a {minutes} minute(s))","MM":"Multimax","MM_BOTH_SIDE":"Utiliser les deux côtés de la base","MM_INSERT_ORDER":"Insérer à la fin","MM_SET_ALL_PORTALS":"Tous les portails visibles","MM_SET_ALL_KEYS":"Tous les marqueurs GetKey","MM_SET_KEYS_ZONE":"GetKey : {zoneName}","MM_SPINE":"Alignement","MULTI_M_TITLE":"Dessiner le maximum de couches","MULTI_M":"Tracer","MUST_NOT_BE_EMPTY":"Ne dois pas être vide","MY_CAP_ID":"ID de ma capsule","MY_COUNT":"Mon nombre de clés","NAME_REQ":"Nom requis","NAME":"Nom :","NEW_OP":"Nouvelle opération","NEW_TEAM_NAME":"Nouveau nom d\'équipe","NEW_TEAM":"Nouvelle équipe","NEW_WAS_SERVER":"Nouveau serveur Wasabee","NEWOP BUTTON TITLE":"Créer une opération","NEWOP BUTTON":"+ Op","NO_DT_ITEMS":"Pas de Draw détecté","NO_LABEL":"Pas de nom donné","NO_STOCK_INTEL":"Wasabee ne supporte pas les draws de l\'intel stock.","NO_TITLE":"Titre non défini","NO LONGER AVAILABLE":"Ressource supprimée du serveur : {error}","NO LONGER AVAILABLE SHORT":"Ressource supprimée du serveur","NOT LOGGED IN SHORT":"Déconnecté","NOT LOGGED IN":"Déconnecté : {error}","NOT_LOADED":"Échec lors du chargement des opérations, essayer à nouveau.","NOT_SET":"non défini","NTNAME":"Nom","OK":"Ok","ON_HAND":"En main","ONION_WAS_TAKEN":"Oignon","ONION":"Tracer","ONLY_DT_IMP":"(Uniquement pour les imports de DrawTools)","OP DELETED":"Opération supprimée du serveur : {opID}","OP PERM DENIED":"Permission refusée pour l\'opération : {opID}","OP_CHECKLIST":"Checklist : {opName}","OP_NAME_UNSET":"Le nom de l\'opération n\'a pas été défini","OP_PERMS":"Permissions","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Propriétés de l\'opération","OPEN_REQUEST":"∞","OPER_COLOR":"Couleur de l\'opération","OPER_NAME":"Nom de l\'opération","OPERATIONS":"Opérations","OPS BUTTON TITLE":"Opérations","OPS BUTTON":"Ops","ORDER":"Ordre","OtherPortalAlert":"Autre","PASTE_INSTRUCT":"Coller un export de dessin Wasabee ici.\\n\\nWasabee ne peut pas importer le format Intel.\\n\\nIl existe un support expérimental pour importer le format IITC DrawTools.\\n\\nAvant d\'importer le format DrawTools, prévisualisez les zones et assurez-vous que tous les portails sont chargés de sorte que l\'IITC les a mis en cache. Les portails utilisés qui ne sont pas mis en cache correspondront à de faux portails.\\n\\nVous devrez utiliser la fonctionnalité \'swap\' pour déplacer les ancres des faux portails vers les vrais portails (ils devraient être dans les bons emplacements, mais pas associés aux portails).\\n\\nLes portails mis en cache peuvent ne pas être correctement nommés.","pending":"En attente","PERM DENIED":"Permission refusée : {error}","PERM DENIED SHORT":"Permission refusée","PERMS":"Permissions de {opName}","PLEASE_SELECT_PORTAL":"Sélectionner un portail","popup.anchor.duplicate":"Dupliquer","popup.anchor.keys":"Clés : {onHand} / {required}","popup.anchor.keys_mycount":"Moi : {myCount} / {required}","popup.marker.state_button":"Définir l\'état","PORTAL KEY LIST":"Clés du portail {portalName}","PORTAL_COUNT":"{count} portails","PORTAL":"Portail","QD BUTTON CHANGE COLOR":"Cliquez pour changer la couleur des prochains liens","QD BUTTON END":"Arrête le dessin","QD BUTTON TOGGLE MODE":"Cliquez pour changer le mode de dessin","QD CHANGE COLOR":"Changer de couleur","QD END":"Terminer","QD TITLE":"Quick Draw","QD TOGGLE MODE":"Changer de mode","QDBASE":"Base","QDCONT":"Cliquez sur un portail pour faire un field","QDNEXT":"Cliquer sur la seconde ancre.","QDSTART":"Cliquer sur la première ancre.","READ_SHORT":"RO","READ":"lire","RechargePortalAlert":"Recharge","REFERENCE_TIME":"Temps de référence :","REM_LOC_CP":"Supprimer la copie locale de {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Voulez-vous vraiment supprimer {teamName} du serveur Wasabee ?","REMOVE_TEAM_CONFIRM_TITLE":"Supprimer l\'équipe {teamName}","REMOVE_TEAM":"Supprimer une équipe","REMOVE":"Supprimer","RENAME_TEAM":"Renommer l\'équipe :","RENAME":"Renommer","REQUIRED":"Requis","RESET":"Reset","REVERSE":"Inverser","ROCKS_COM":"Communauté enl.rocks :","ROLE":"Rôle","SAVELINKS TITLE":"Copie de liens","SAVELINKS_DRAW":"Copier les liens","SAVELINKS":"Copie de liens Intel","SECONDS":"(il y a {seconds} secondes)","SEL_SB_ANCHOR":"Sélectionner l\'ancre.","SEL_SB_ANCHOR2":"Dézoomer en laissant charger les portails de la zone puis cliquer sur Draw.","SEL_SL_ANCHOR":"Sélectionner le portail dont vous voulez copier les liens vers l\'opération courante.","SEL_SRC_ANC2":"Sélectionner le portail source ET la seconde ancre","SEL_SRC_PORT":"Sélectionner le portail source","SELECT PORTAL":"Sélectionner un premier portail","SELECT_FAN_PORTALS":"Sélectionner une ancre, le premier portail et le dernier portail du Fanfield. Le reste sera calculé à partir des portails visibles.","SELECT_FAN_PORTALS2":"Attendez le chargement des portails et cliquer sur Draw.","SELECT_INSTRUCTIONS":"Sélectionner deux ancres, puis zoomer sur la zone contenant l\'alignement.","SELECT_ONION_PORTALS":"Les couches sont construites de la plus petite à la plus grande, avec au plus trois fields par portail en commençant par le portal défini, puis en utilisant les portails visibles.","SELF SWAP":"Le portail sélectionné est le même. Sélectionner un autre portail.","SEND ANALYTICS":"Envoyer des statistiques anonymes","SEND LOCATION":"Partager sa position (uniquement lorsque l\'IITC est au premier plan)","SEND TARGET AGENT":"Sélectionner l\'agent cible","SEND TARGET CONFIRM":"Voulez-vous signaler la cible {portalName} à {agent} ?","SEND TARGET":"Envoyer la cible","SEND_LOC":"Envoyer sa position","SET_3_PORT":"Sélectionner d\'abord trois portails !","SET_COMMENT":"Entrer un commentaire","SET_LCOMMENT":"Commentaire du lien","SET_LINK_COMMENT":"Entrer un commentaire pour le lien :","SET_LINKS_ZONES":"Affecter les liens aux zones","SET_MARKER_COMMENT":"Entrer un commentaire pour le marqueur :","SET_MARKER_TYPE_TITLE":"Changer le type de marqueur","SET_MARKERS_ZONES":"Affecter les marqueurs aux zones","SET_MCOMMENT":"Commentaire pour ce marqueur : {portalName}","SET_NEW_OP":"Donner un nom à cette nouvelle opération","SET_PCOMMENT":"Entrer un commentaire pour ce portail : {portalName}","SET_PORT_COMMENT":"Entrer un commentaire pour ce portail :","SET_PORTAL_COMMENT":"Entrer un commentaire","SET":"Définir","SETTINGS_TOOLBOX":"Paramètres Wasabee","SETTINGS_TITLE":"Paramètres avancés","SKINS_AVAILABLE":"Il y a {count} thèmes disponibles.","SKINS_BUTTON":"Choisir les thèmes","SKINS_DESCRIPTION":"Déplacer les thèmes de la colonne de droite vers la colonne de gauche pour les activer. L\'ordre permet de les combiner. Le thème le plus bas est le dernier appliqué.","SKINS_MANAGE_TITLE":"Configuration des thèmes","SKIP_CONFIRM_ALWAYS":"Rien (risqué)","SKIP_CONFIRM_ENTITY":"Seulement les OP/équipes","SKIP_CONFIRM_NEVER":"Tout","SKIP_CONFIRM":"Demander confirmation pour","SOURCE_PORT":"Portail source","STARBURST TITLE":"Starburst","STARBURST_DRAW":"Tracer","STARBURST":"Starburst","START_PORT":"Portail de départ","STATE":"État","SUPPORT_INSTRUCT":"Pour obtenir de l\'aide rejoindre ce channel Telegram (en Anglais) The Wasabee User Telegram Channel","SWAP PROMPT":"Voulez-vous remplacer ","SWAP TITLE":"Déplacer le portail","SWAP WITH":" par ","SWAP":"Déplacer","swap.marker.title":"Déplacer le marqueur","swap.marker.prompt":"Voulez-vous déplacer le marqueur :","SYNC DONE":"Téléchargement terminé
Cliquez ICI pour obtenir des conseils, des astuces et de la documentation.","SYNC":"Télécharger les opérations disponibles","TARGET SENT":"Cible transmise","TEAM STATE":"Partage de position","TEAM_CREATED":"Équipe {teamName} créée","TEAM_NAME":"Nom d\'équipe","TEAM":"Équipe","TEAMS BUTTON TITLE":"Liste des équipes","TEAMS BUTTON":"Équipes","TO_PORT":"Vers le portail","toolbar.op.filter":"Filtres","toolbar.op.redo":"Refaire","toolbar.op.title":"Op : {opName}","toolbar.op.undo":"Annuler","toolbar.quick_delete.apply.text":"Appliquer","toolbar.quick_delete.apply.title":"Supprime les liens et marqueurs sélectionnés","toolbar.quick_delete.cancel.text":"Annuler","toolbar.quick_delete.cancel.title":"Annuler","toolbar.quick_delete.clear.text":"Effacer tout","toolbar.quick_delete.clear.title":"Supprime tous les liens et marqueurs","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Quitter le mode Suppression","toolbar.quick_delete.title":"Suppression Rapide","toolbar.quick_delete.tooltip.toggle_mode":"Sélectionnez les éléments à supprimer","toolbar.quick_delete.tooltip.quick_mode":"Cliquez pour supprimer","toolbar.quick_draw.tooltip.star_mode.anchor":"Sélectionnez l\'ancre de la Starburst","toolbar.quick_draw.tooltip.star_mode.portal":"Cliquez sur les autres portails","toolbar.quick_draw.tooltip.single_mode.first":"Sélectionnez le premier portail","toolbar.quick_draw.tooltip.single_mode.next":"Sélectionnez le portail suivant","toolbar.quick_draw.tooltip.portal_fail":"Données de portail incomplètes, réessayez","toolbar.quick_draw.tooltip.burst.portal":"Sélectionner un portail","toolbar.quick_draw.toggle.text":"Mode : {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multicouche","toolbar.quick_draw.mode.singlelink":"Liens simples","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Options","toolbox.teammates":"Coéquipiers en ligne","TRAWL SKIP TILES":"Fouille : sauter des tuiles","TRAWL TITLE":"Fouille des bloquants","TRAWL WARNING":"Ceci va charger les tuiles de données sous les liens dessinés. C\'est un processus lent.","TRAWL_AUTOMARK":"Marquer automatiquement les portails après la fouille.","TRAWL_BULK_LOAD_WARNING":"Cette méthode demande toutes les tuiles nécessaires le plus rapidement possible. À utiliser en connaissance de cause.","TRAWL_BULK_LOAD":"Charger directement depuis les tuiles","TRAWL_CLEAR_MARKERS":"Supprimer les marqueurs de casse/virus avant la fouille.","TRAWL_REMAINING":"{count} tuiles restantes","TRAWL":"Fouille des bloquants","TRAWLING":"Parcours des bloquants en cours, fermer la fenêtre pour arrêter.","TYPE":"Type","UNASSIGNED":"Non assigné","UNKNOWN":"Inconnu","UPDATE HOVER":"Mettre à jour {opName} sur le serveur","UPDATE PERM DENIED":"Vous n\'avez pas la permission de mettre à jour","UPDATE_CONFLICT_DESC":"L\'opération a été modifiée sur le serveur depuis la dernière synchronisation. Voulez-vous écraser la version du serveur par la vôtre ?","UPDATE_CONFLICT_TITLE":"Conflit avec le serveur","UPDATE_COUNT":"Nombre mis un jour","UPDATED":"Mise à jour réussie","UpgradePortalAlert":"Upper","UPLOAD BUTTON HOVER":"Envoyer {opName} au serveur","UPLOADED":"Envoi réussi","USE PANES ON MOBILE":"Volet latéral (rechargement nécessaire)","USE_VALID_NAME":"Utiliser un nom d\'opération valide","UseVirusPortalAlert":"Virus","VRLA DESC":"Le niveau nécessaire du portail peut être plus faible en fonction du type des Link Amp utilisés.","VRLA":"L8 + quelques VRLA","WASABEE BUTTON TITLE":"Wasabee est vert et fait pleurer les Schtroumpfs","WASABEE_D_LIST":"Entrer le nombre de clés défensives","WD BUTTON TITLE":"Enregistrer des clés défensives","WD BUTTON":"Clés W-D","WRITE_SHORT":"RW","WRITE":"modifier","WSERVER":"Serveur : {url}","YESNO_DEL":"Voulez-vous vraiment supprimer {opName} ?","ZONE_DRAW":"Cliquer pour définir les limites de la zone","ZONE":"Zone","smallScreen":{"ADD_LINKS":"+ Liens","ADD_MARKER":"+ Marqueur"}}'),Português:JSON.parse('{"ABOUT_WASABEE":"Sobre Wasabee","acknowledged":"Reconhecido","ADD LINK TITLE":"Adicionar Links","ADD MARKER TITLE":"Adicionar Marcadores","ADD_AGENT":"Adicionar Agente:","ADD_BL":"Adicionar links para trás:","ADD_BULK":"Adição em massa","ADD_BUTTON_LINKS":"Adicionar todos os links de uma vez.","ADD_LINKS":"Adicionar Links","ADD_MARKER":"+ Marcador","ADD_NEW_OP":"Adicionar Nova Op","ADD_SUCC_INSTR":"Agente adicionado com sucesso","ADD_ZONE":"Adicionar zona","ADD":"Adicionar","ADD1":"Adicionar primeiro link","ADD2":"Adicionar segundo link","AGENT_STATS":"Agente Stats","AGENT":"Agente","AGES":" (há muito tempo)","ALREADY_HAS_MARKER":"Este portal já tem um marcador. Escolha um portal diferente.","AMAZ_TEAM_NAME":"Nome incrível da equipe.","ANCHOR ASSIGNMENT":"Atribuir todos os links de saída para:","ANCHOR_GMAP":"Mapa Google","ANCHOR_PORTAL":"Portal Âncora","ANCHOR_PORTAL2":"Âncora Portal 2","ANCHOR_PORTAL3":"Âncora Portal 3","ANCHOR1":"Âncora 1","ANCHOR2":"Âncora 2","ANCHOR3":"Âncora 3","ANCHORS_AS_BOOKMARKS":"Âncora como bookmarks","API_KEY":"Chave API do Rocks:","ASS_TO":"Atrubuir a:","ASSIGN LINK PROMPT":"Atribuir link para: {portalName}","ASSIGN MARKER PROMPT":"Atrubuir marcador para: {portalName}","ASSIGN OUTBOUND PROMPT":"Atribuir todos os links externos de: {portalName}","ASSIGN OUTBOUND":"Atribuir links externos","ASSIGN":"Atribuir","ASSIGNED_ONLY_SHORT":"A","ASSIGNED_ONLY":"Só Atribuir","assigned":"Atribuído","AUTH INCOMPAT":"Você ativou um plugin no TamperMonkey que é incompatível com o Wasabee","AUTH REQUIRED":"Autentificação Requerida","AUTH TOKEN REJECTED":"Envio de token de autenticação rejeitado pelo servidor: {error}","AUTH_SELECT_ACCOUNT":"Selecionar conta","AUTO_DRAWS":"Auto-desenhar","AUTODRAWS":"Wasabee Auto-draw Opções","AUTODRAW_PORTALS_SET":"Portais","autodraw.common.draw_button":"Desenhar","autodraw.fanfield.result":"Fanfield encontrado {links} links e {fields} campos para {ap} AP","autodraw.flipflop.result":"Flip flop: {count} links encontrados","autodraw.homogeneous.missing_split":"Não foi possível encontrar {count} divisões, tente menos profundidade ou uma região diferente","autodraw.homogeneous.order":"Pedido","autodraw.homogeneous.portals_required":"{count} necessário","autodraw.madrid.auto_determined":"Auto-determinado","autodraw.madrid.balanced":"Equilibrado","autodraw.madrid.result":"Madri encontrou {count} camadas","autodraw.multimax.result":"Multimax encontrou {count} camadas","autodraw.multimax.result_both_side":"Multimax encontrou {count1} e {count2} camadas","autodraw.onion.variant":"Opção","autodraw.onion.variant.equilateral":"~Equalizador","autodraw.onion.variant.grow":"Deixe crescer","autodraw.onion.variant.balanced":"Perfeitamente equilibrado","AUTOLOAD_RATE":"Taxa de solicitação de detalhes do portal (ms)","AUTOLOAD":"Carregar automaticamente os detalhes do portal em falta","AUTOMARK STOP":"Auto-Marcar interrompido devido a portais não serem carregados","AUTOMARK":"Auto-Marcar","BAT_TOAD":"Brinquedos de batalha","BLOCKER LIST TITLE":"Mostrar todos os blockers","BLOCKER TITLE":"Bloqueadores","CANCEL":"Cancelar","CAPSULE":"Capsula","CapturePortalMarker":"Capturado","CHANGE SERVER PROMPT":"Novo servidro Wasabee","CHANGE SERVER":"Trocar de Servidor","CHANGE_WAS_SERVER":"Mudar servidor Wasabee","CHECKLIST BUTTON TITLE":"Checklist da Operação","CHECKLIST BUTTON":"Checklist","CLEAR LINKS":"Limpar Links","CLEAR MARKERS":"Limpar Markers","CLEAR_EVERYTHING":"limpar Portais/Links/Marcadores","CLEAROPS BUTTON TITLE":"limpar TODOS os dados Wasabee","CLEAROPS BUTTON":"Limpar dados Wasabee","CLEAROPS PROMPT":"Isto limpará todas as OPS e dados relacionados a Wasabee. Tudo será restaurado apartir do servidor na próxima sincronização.","CLOSE":"Fechar","COMMENT":"Comentario","COMPLETED BY":"Completo por {agentName}","completed":"Completo","CON_DEL":"Confirmar Apagar: {opName}","COUNT":"Contar","CREATE_NEW_TEAM":"Criar Nova Equipa","CreateLinkAlert":"Link","CUR_USER_INFO":"Informações do usuário atual","D_SHOW_LIST":"Chaves de defesa de entrada","DEFAULT OP NAME":"Nova Op: {date}","DELETE ANCHOR PROMPT":"Desejas excluir esta âncora e todos os links associados:","DELETE ANCHOR TITLE":"Apagar Âncora","DELETE MARKER PROMPT":"Você deseja excluir este marcador:","DELETE MARKER TITLE":"Apagar Marcador","DELETE_ANCHOR":"Apagar","DELETE_LINK":"Apagar","DELETE_OP":"Apagar {opName}","DESCRIP_PLACEHOLD":"Descrição (opcional)","DestroyPortalAlert":"Destroir","dialog.about.download_mobile_app":"

Aplicativo Wasabee:

","dialog.agent_comment.text":"Comentario:","dialog.agent_comment.title":"Definir comentário para {agentName}","dialog.auth.ott.button":"Login único para o Token","dialog.auth.ott.text":"Obtenha um token do servidor Wasabee, e então cole-o aqui","dialog.auth.ott.title":"Usar Token Único","dialog.blockers.clear_automark":"Limpar Automark","dialog.clear_all.text":"Você quer resetar o {opName}?","dialog.clear_all.title":"Limpar: {opName}","dialog.clear_links.text":"Você quer remover todos os links de {opName}?","dialog.clear_links.title":"Limpar Links: {opName}","dialog.clear_markers.text":"Deseja remover todos os marcadores de {opName}?","dialog.clear_markers.title":"Limpar Links: {opName}","dialog.checklist.count_fields":"Contar campos","dialog.checklist.count_fields.no_empty":"Encontrados {fieldCount} campos e sem campo vazio","dialog.checklist.count_fields.with_empty":"Encontrados {fieldCount} campos e {emptyCount} campo(s) vazio(s) no link {linkCount}","dialog.checklist.count_fields.link_from_inside":"Encontrados {count} links dos portais cobertos","dialog.checklist.count_fields.link_from_inside.covered_at_order":" em {order} por link ","dialog.common.color":"Cor","dialog.common.commands":"Comandos","dialog.common.commands_short":"Cmds","dialog.common.delete":"Apagar","dialog.common.links":"Links","dialog.common.markers":"Marcadores","dialog.common.name":"Nome","dialog.common.off":"Desligar","dialog.common.on":"Ligar","dialog.common.owner":"Dono","dialog.common.zone_all":"Todos","dialog.filter.actions.description":"Aplicar uma alteração em todas as tarefas visíveis","dialog.filter.actions.delete_visible":"Apagar","dialog.filter.actions.delete_hidden":"Excluir todas as outras tarefas","dialog.filter.actions.shift.label":"Desvio","dialog.filter.actions.shift.button":"Mudar","dialog.filter.actions.title":"Ações","dialog.filter.filters.apply":"Aplicar filtros","dialog.filter.filters.description":"Selecione as propriedades para filtrar as tarefas que deseja ver mudar.","dialog.filter.filters.field.task":"Tarefa","dialog.filter.filters.field.min_order":"Pedido Mínimo","dialog.filter.filters.field.max_order":"Pedido máximo","dialog.filter.filters.title":"Filtros","dialog.filter.title":"Filtros&ações","dialog.firebase.setup":"Visite {url} e pressione o botão para autorizar atualizações ao vivo. Você precisará recarregar o IITC depois.","dialog.import.url":"Preencher do URL","dialog.import.success_message":"Importação completa. Encontrados {count} portais e usados {faked} falsificados. Por favor, use o recurso de troca para mover portais falsos para os portais reais no mesmo local. Ampliar os portais de \'Carregamento\' na lista de verificação pode forçá-los a carregar.","dialog.keys.update_error":"Portal ainda não está na OP, por favor, sincronizar com o servidor primeiro","dialog.leave_team.text":"Se você sair do {teamName}, você não pode entrar novamente a menos que o dono adicione você novamente.","dialog.leave_team.title":"Deixar: {teamName}","dialog.link_list.length":"Comprimento","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Definir todas saídas","dialog.link_list.all_to":"Definir todas as entradas","dialog.conflict.cancel_upload":"Cancelar carregamento","dialog.conflict.conflicts":"Conflitos:","dialog.conflict.local":"Cópia local","dialog.conflict.server":"Cópia do servidor","dialog.conflict.zone":"Zona: {name}","dialog.conflict.prop.assignedTo":"Atribuir:","dialog.conflict.prop.comment":"Comentario:","dialog.conflict.prop.color":"Cor:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"De:","dialog.conflict.prop.hardness":"Difícil:","dialog.conflict.prop.order":"Pedido:","dialog.conflict.prop.state":"Estado:","dialog.conflict.prop.toPortal":"Para:","dialog.conflict.prop.zone":"Zona:","dialog.conflict.prop.zone_points":"A forma foi alterada","dialog.online_agents.actions":"Ações","dialog.online_agents.last_seen":"Visto pela última vez","dialog.online_agents.title":"Agentes Online","dialog.op_settings.advanced":"Avançado","dialog.op_settings.import.desc":"Importar links/marcadores/zonas de outro OP","dialog.op_settings.import.collision_default":"Em caso de conflitos, use links/marcadores importados","dialog.op_settings.import.select_op":"Selecionar OP","dialog.op_settings.import.select_color":"Cor do link OP","dialog.op_settings.import.button":"Importar","dialog.op_settings.setting":"Configurações","dialog.op_settings.zones":"Zonas","dialog.ops_list.background_disable":"Desat. dados seg. plano","dialog.ops_list.background_enable":"Mostrar plano de fundo","dialog.ops_list.download":"Descarregar {opName}","dialog.ops_list.last_fetched":"Última pesquisa: {date}","dialog.ops_list.local_change":"Local foi alterado","dialog.ops_list.remote_change":"Controle remoto foi alterado","dialog.ops_list.toggle_hide":"Alternar Mostrar/Ocultar","dialog.ops_list.unhide_ops":"Exibir todas as OPs","dialog.remove_agent.text":"Você deseja remover {agentName} de {teamName}?","dialog.remove_agent.title":"Remover: {agentName}","dialog.setcomment.portal_hardness":"Difículdade","dialog.settings.disable_live_updates":"Desativar atualizações ao vivo","dialog.settings.populate_opportals":"Preencher o mapa com portais de op","dialog.team_list.load_wd_keys":"Carregar chaves W-D","dialog.team_list.share_wd_keys":"Partilhar chaves W-D","dialog.team_manage.join_link":"Link de entrada","dialog.team_manage.join_link.create":"Criar","dialog.team_manage.join_link.revoke":"Revogar","dialog.team_members.location":"A partilhar a localização","dialog.team_members.wd_keys":"Partilhar chaves W-D","dialog.team_message":"Anúncio de equipa: “{message}” de {sender}","dialog.update_warning":"O Wasabee está desatualizado. Atualize a usar seu gerenciador de plugins ou indo para https://wasabee.rocks","dialog.zone_color.title":"Cor da zona","dialog.zone_color.text":"Definir a cor de todos os links na zona {zoneName}","dialog.zones.color":"Cor","dialog.zones.color_links":"Cor de Link","dialog.zones.delete.title":"Excluir zona {zoneName}","dialog.zones.delete.text":"Você quer apagar a zona “{zoneName}? ?","dialog.zones.delete_zone_shape":"Resetar a forma","dialog.zones.draw_zone_shape":"Desenhar limites dos blocos","dialog.zones.id":"ID","dialog.zones.jump_to":"Pular para zona","dialog.zones.stop_drawing":"Parar de desenhar","dialog.zones.title":"Zonas","DRAW TOOLS FORMAT":"Formato Draw Tools","DUPE_OP":"Duplicar Operação","END_PORT":"Portal final","ExcludeMarker":"Excluir de Auto-Desenhar / Marcar","EXPORT OP TITLE":"Exportar Op Actual","EXPORT OP":"Exportar Op","EXPORT":"Exportar:","FAKED":"Falsificado: [{portalId}]","FANFIELD":"Desenhar","FANFIELD2":"Desenhar Fan Field","FarmPortalMarker":"Farmar","FLIP_FLOP_NAME":"Inverter Flop","FLIP_FLOP_TITLE":"Inverter Flop","FLIP_FLOP_DESC":"De uma determinada âncora, um conjunto de portal visível e um número de SBUL, encontre um fanfield para arremessar links da âncora diminuindo distância para evitar procurar chaves.","FLIP_FLOP_INSTRUCTION":"Selecione um portal, zoom para ver portais suficientes e pressione Desenhar. Uma vez que um fanfield for encontrado, você poderá procurar por outras âncoras por jogadas consecutivas","FLIP_FLOP_FIND_ANCHORS":"Encontrar outras âncoras","FROM_1-2":"A Partir da base 1-2","FROM_1-3":"A Partir da base 1-3","FROM_2-3":"A Partir da base 2-3","FROM_DEPTH":"da profundidade","FROM_PORT":"A Partir do Portal","GET DT":"Obtenha o desenho existente do DrawTools","GetKeyPortalMarker":"Retirar Chaves","GotoPortalMarker":"Ir para","H-GEN_INST":"Define portais para a camada externa. Escolhe o número de divisões. Clica para desenhar","HF_DEEP_SEARCH":"Pesquisa exaustiva","HF_DRAW_BUTTON":"Desenhar","HF_REDRAW_BUTTON":"Redesenhar","HG":"Campo Homogêneo","HOURS":" ({hours} horas atrás)","HOW_TO_VIDS":"

Vídeos de instruções:

","IMP_NOPE":"A Importação Falhou: {error}","IMP_WAS_OP":"Importar Operação Wasabee","IMPORT_OP_SUCCESS":"OP Importada: {opName} successfuly.","IMPORT_OP_TITLE":"Importar Op: {date}","IMPORT_OP":"Importar Operação","IMPOSSIBLE":"Impossível","INGNAME_GID":"Nome de entrada ou GoogleID","INPUT_DT_KEY_COUNT":"Contagem de chaves defensivas de entrada","INVALID REQUEST":"Pedido inválido","IOS NEED FAKE UA":"Deves definir um \'Agente de usuário personalizado para visualizações da Web\' nas configurações do IITC-Mobile ou o login falhará","KEY_LIST2":"Lista de chaves para operação: {opName}","KEYS":"Chaves","KNOWN_BLOCK":"Blockers conhecidos: {opName}","LA DESC":"Dependendo do número e tipo de Link Amps usados, um nível de portal de origem inferior pode ser suficiente.","LA":"L8+ alguns LA","LANG":"Língua","LEAVE":"Deixar","LetDecayPortalAlert":"Deixar caír","LINK ASSIGNMENT":"Atribuir link a:","LINK STATE PROMPT":"Estado do link","LINK STATE":"Definir status do link:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Carregar Portais","LOADING":"[a carregar]","LOADING1":"a carregar: [{portalGuid}]","LOC_PROC":"localização processada","LOCATION SUB":"Localização registrada","LOCFRMSER":" (localmente e do servidor)","LOG IN":"Iniciar Sessão","LOG_OUT":"Terminar Sessão","MADRID_SET_1":"Selecione a região para a ligação de base Âncora 2 à Âncora 3","MADRID_SET_2":"Selecione a região para a ligação de base Âncora 3 à Âncora 1","MADRID_SET_3":"Selecione a região para a ligação de base Âncora 1 a Âncora 2","MADRID_TITLE":"Madrid Protocol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Desenhar","MANAGE_TEAM":"Gerenciar {teamName}","MANAGE":"Gerenciar","MARKER ASSIGNMENT":"Atribuir marcador a:","MARKER LIST TITLE":"Lista de Marcadores","MARKER LIST":"Marcadores","MARKER STATE PROMPT":"Status do marcador","MARKER STATE":"Definir estado do marcador:","MARKER_LIST":"Lista de Marcadores: {opName}","MARKERS BUTTON TITLE":"Marcadores","MAX_SPLITS":"Divisões máximas","MAX":"Fan Field","MeetAgentPortalMarker":"Conhecer Agente","MERGE ON UPDATE":"Unir na atualização","MERGE_CHANGES_LOCAL":"Alterações locais","MERGE_CHANGES_MERGE":"Combinar resultado","MERGE_CHANGES_REMOTE":"Mudanças remotas","MERGE_LOCAL":"Manter localmente","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, use the server version or keep the local version?","MERGE_REBASE":"Unir","MERGE_REPLACE":"Usar servidor","MERGE_TITLE":"Combinar OP local&remoto","MIN_SRC_PORT_LVL":"Nível mínimo exigido no portal de origem","MINUTES":" ({minutes} minutos atrás)","MM":"Multimáx","MM_BOTH_SIDE":"Usar ambos os lados base","MM_INSERT_ORDER":"Inserir no final","MM_SET_ALL_PORTALS":"Todos os portais visíveis","MM_SET_ALL_KEYS":"Todos os Marcadores GetKey","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Espinha","MULTI_M_TITLE":"Desenhar camadas máximas","MULTI_M":"Desenhar","MUST_NOT_BE_EMPTY":"Não deve estar vazio","MY_CAP_ID":"Minha Capsula ID","MY_COUNT":"Minha Conta","NAME_REQ":"Nome Requerido","NAME":"Nome:","NEW_OP":"Nova Operação","NEW_TEAM_NAME":"Novo nome de Equipa","NEW_TEAM":"Nova Equipa","NEW_WAS_SERVER":"Novo servidor Waasbee","NEWOP BUTTON TITLE":"Criar uma nova operação","NEWOP BUTTON":"Nova Op","NO_DT_ITEMS":"Nenhum item desenhado do DrawTools foi detectado","NO_LABEL":"Nenhum rótulo definido","NO_STOCK_INTEL":"Wasabee não suporta importações de desenho de inteligência de stoque","NO_TITLE":"Nenhum título definido","NO LONGER AVAILABLE":"Recurso removido do servidor: {error}","NO LONGER AVAILABLE SHORT":"Recurso removido do servidor","NOT LOGGED IN SHORT":"Não logado","NOT LOGGED IN":"Não logado: {error}","NOT_LOADED":"Não totalmente carregado, tente novamente.","NOT_SET":"não configurado","NTNAME":"Nome","OK":"OK","ON_HAND":"Na Mão","ONION_WAS_TAKEN":"Cebola","ONION":"Desenhar","ONLY_DT_IMP":" (apenas para importações do DrawTools)","OP DELETED":"Operação removida do servidor: {opID}","OP PERM DENIED":"Permissão negada para operação: {opID}","OP_CHECKLIST":"Lista de verificação de operação: {opName}","OP_NAME_UNSET":"O nome da operação não estava definido","OP_PERMS":"Permissões de operação","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Configurações de operação","OPEN_REQUEST":"[pedido aberto]","OPER_COLOR":"Cor da operação:","OPER_NAME":"Nome da Operação:","OPERATIONS":"Operações","OPS BUTTON TITLE":"Operações","OPS BUTTON":"Ops","ORDER":"Pedido","OtherPortalAlert":"Otros","PASTE_INSTRUCT":"Cola uma exportação de desenho Wasabee aqui.\\n\\nWasabee cannot import the stock intel format.\\n\\nThere is experimental support for importing the IITC DrawTools format.\\n\\nBefore importing DrawTools format, preview the areas and make sure all the portals load so IITC has them cached. Any portals that are not pre-cached will be faked.\\n\\nYou will need to use the \'swap\' feature to move anchors from the faked portals to the real portals (they should be in the correct location, just not associated with the portal.\\n\\nCached portals might not be properly named.","pending":"Pendente","PERM DENIED":"Permissão negada: {error}","PERM DENIED SHORT":"Permissão negada","PERMS":"{opName} permissões","PLEASE_SELECT_PORTAL":"Seleciona um portal","popup.anchor.duplicate":"Duplicar","popup.anchor.keys":"Chaves: {onHand} / {required}","popup.anchor.keys_mycount":"Eu: {myCount} / {required}","popup.marker.state_button":"Definir estado","PORTAL KEY LIST":"Lista de chaves para portal {portalName}","PORTAL_COUNT":"{count} portais","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Clique para alterar a cor dos próximos links","QD BUTTON END":"Clique para parar de desenhar campos","QD BUTTON TOGGLE MODE":"Clique para alterar o modo de desenho","QD CHANGE COLOR":"Alterar a cor","QD END":"FIM","QD TITLE":"Camadas de desenho rápido","QD TOGGLE MODE":"Alterar o modo","QDBASE":"Link Base","QDCONT":"Clica num portal espinha para desenhar um campo.","QDNEXT":"Clica no segundo portal de âncora.","QDSTART":"Clica no primeiro portal de âncora.","READ_SHORT":"Ler Abreviado","READ":"Ler","RechargePortalAlert":"Recarregar","REFERENCE_TIME":"Tempo de Referência:","REM_LOC_CP":"Remover cópia local de {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Você deseja remover permanentemente {teamName} do servidor Wasabee?","REMOVE_TEAM_CONFIRM_TITLE":"Remover Equipe {teamName}","REMOVE_TEAM":"Remover Equipa:","REMOVE":"Remover","RENAME_TEAM":"Renomear Equipe:","RENAME":"Renomear","REQUIRED":"Requerido","RESET":"Redefinir","REVERSE":"Inverter","ROCKS_COM":"comunidade enl.rocks:","ROLE":"Função","SAVELINKS TITLE":"Salvar Links","SAVELINKS_DRAW":"Salvar Links","SAVELINKS":"Salvar Links","SECONDS":" ({seconds} segundos atrás)","SEL_SB_ANCHOR":"Seleciona a âncora.","SEL_SB_ANCHOR2":"Reduzir o zoom. Verifica se todos os portais foram carregados e clica em desenhar.","SEL_SL_ANCHOR":"Selecione o portal para salvar os links de. Clique no botão salvar links e veja a lista de seleção.","SEL_SRC_ANC2":"Selecionar a fonte e a âncora 2","SEL_SRC_PORT":"Selecionar um portal de origem","SELECT PORTAL":"Seleciona um portal primeiro","SELECT_FAN_PORTALS":"Selecionar um portal de âncora, um portal inicial e um portal final e, em seguida, posiciona a visualização sobre a área do campo.","SELECT_FAN_PORTALS2":"Espere todos os portais carregarem e clique em desenhar.","SELECT_INSTRUCTIONS":"Selecione dois portais de âncora, e então aumente o zoom sobre a área giratória.","SELECT_ONION_PORTALS":"As camadas são construídas de dentro para fora. Aumenta o zoom para o centro e seleciona o portal inicial, em seguida, diminui o zoom para a área.","SELF SWAP":"Não é possível trocar um portal contigo mesmo! Seleciona um portal diferente.","SEND ANALYTICS":"Enviar análises anônimas","SEND LOCATION":"Partilhar localização (somente quando o IITC estiver em primeiro plano)","SEND TARGET AGENT":"Selecionar o destinatário alvo","SEND TARGET CONFIRM":"Queres enviar {portalName} alvo para {agent}?","SEND TARGET":"Enviar alvo","SEND_LOC":"Enviar localização","SET_3_PORT":"Defina os três portais primeiro!","SET_COMMENT":"Definir Comentário","SET_LCOMMENT":"Definir comentário do link","SET_LINK_COMMENT":"Definir comentário para o link:","SET_LINKS_ZONES":"Definir links para zonas","SET_MARKER_COMMENT":"Definir comentário para marcador em:","SET_MARKER_TYPE_TITLE":"Alterar o tipo de marcador","SET_MARKERS_ZONES":"Definir Marcadores para Zonas","SET_MCOMMENT":"Definir comentário do marcador: {portalName}","SET_NEW_OP":"Define o novo nome da operação","SET_PCOMMENT":"Definir comentário do portal: {portalName}","SET_PORT_COMMENT":"Definir comentário para portal:","SET_PORTAL_COMMENT":"Definir comentário do portal","SET":"definir","SETTINGS_TOOLBOX":"Configurações do Wasabee","SETTINGS_TITLE":"Definições avançadas","SKINS_AVAILABLE":"Existem {count} skins disponíveis.","SKINS_BUTTON":"Configurar Skins","SKINS_DESCRIPTION":"Gerenciar as skins disponíveis movendo o tema para a coluna da esquerda. Quanto mais baixo na coluna, maior será a prioridade para o UI.","SKINS_MANAGE_TITLE":"Gerenciar skins","SKIP_CONFIRM_ALWAYS":"Nunca perguntar (use com cuidado)","SKIP_CONFIRM_ENTITY":"Apenas perguntar para equipa/op","SKIP_CONFIRM_NEVER":"Perguntar sempre","SKIP_CONFIRM":"Confirmação de salto","SOURCE_PORT":"Portal Fonte","STARBURST TITLE":"Starburst","STARBURST_DRAW":"Desenhar","STARBURST":"Starburst","START_PORT":"Portal inicial","STATE":"Estado","SUPPORT_INSTRUCT":"Para obter suporte, por favor, junte-se ao The Wasabee User Telegram Channel","SWAP PROMPT":"Queres trocar:","SWAP TITLE":"Trocar Portais","SWAP WITH":" com ","SWAP":"Troca","swap.marker.title":"Trocar marcador","swap.marker.prompt":"Deseja trocar o marcador:","SYNC DONE":"Download Completo","SYNC":"Download operações disponíveis","TARGET SENT":"Alvo Enviado","TEAM STATE":"Partilhar localização","TEAM_CREATED":"Equipa {teamName} created","TEAM_NAME":"Nome Equipa","TEAM":"Equipa","TEAMS BUTTON TITLE":"Listar equipas Wasabee","TEAMS BUTTON":"Equipas","TO_PORT":"Para o Portal","toolbar.op.filter":"Filtros","toolbar.op.redo":"Refazer","toolbar.op.title":"Op: {op.Name}","toolbar.op.undo":"Desfazer","toolbar.quick_delete.apply.text":"Aplicar","toolbar.quick_delete.apply.title":"Apagar links/marcadores selecionados","toolbar.quick_delete.cancel.text":"Cancelar","toolbar.quick_delete.cancel.title":"Cancelar","toolbar.quick_delete.clear.text":"Limpar tudo","toolbar.quick_delete.clear.title":"Limpar todos os links e marcadores","toolbar.quick_delete.stop.text":"Parar","toolbar.quick_delete.stop.title":"Sair do modo de eliminação","toolbar.quick_delete.title":"Eliminação rápida","toolbar.quick_delete.tooltip.toggle_mode":"Clique nos recursos para marcar para exclusão","toolbar.quick_delete.tooltip.quick_mode":"Clique nos recursos para excluir instantaneamente","toolbar.quick_draw.tooltip.star_mode.anchor":"Selecionar a âncora da Estrela","toolbar.quick_draw.tooltip.star_mode.portal":"Selecionar um portal","toolbar.quick_draw.tooltip.single_mode.first":"Clique no primeiro portal","toolbar.quick_draw.tooltip.single_mode.next":"Clique no próximo portal","toolbar.quick_draw.tooltip.portal_fail":"Dados do portal não carregados, por favor, tente novamente","toolbar.quick_draw.tooltip.burst.portal":"Selecione um Portal","toolbar.quick_draw.toggle.text":"Modo: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Caminho Simples","toolbar.quick_draw.mode.starburst":"Estrela","toolbar.wasabee.settings":"Configurações","toolbox.teammates":"Companheiros Online","TRAWL SKIP TILES":"Pular blocos para armadilha","TRAWL TITLE":"Trawl Lanes","TRAWL WARNING":"Isto carregará os dados do bloco em todos os links desenhados. Este é um processo lento.","TRAWL_AUTOMARK":"Auto-mark blockers depois da procura","TRAWL_BULK_LOAD_WARNING":"Este método carrega os dados do bloco o mais rápido possível. Usa por sua conta e risco.","TRAWL_BULK_LOAD":"Carregar rapidamente Dados do Bloco","TRAWL_CLEAR_MARKERS":"Limpa vírus / destroi marcadores antes da procura","TRAWL_REMAINING":"{count} Restantes","TRAWL":"Procurar por Blockers","TRAWLING":"A Varrer os links a procura de blockers, fecha esta caixa de diálogo para parar","TYPE":"Tipo","UNASSIGNED":"Não atribuído","UNKNOWN":"Desconhecido","UPDATE HOVER":"UPDATE {opName} no servidor","UPDATE PERM DENIED":"Você não possui permissão para editar","UPDATE_CONFLICT_DESC":"A OP foi modificada no servidor desde a última sincronização. Queres substituir a versão do servidor pela atual?","UPDATE_CONFLICT_TITLE":"Conflito detectado com o servidor","UPDATE_COUNT":"Contagem de atualização","UPDATED":"Atualizado com sucesso","UpgradePortalAlert":"Atualizar","UPLOAD BUTTON HOVER":"UPLOAD {opName} (atualmente não está no servidor)","UPLOADED":"Carregado com sucesso","USE PANES ON MOBILE":"Usar painéis (precisa recarregar)","USE_VALID_NAME":"Usa um nome de operação válido","UseVirusPortalAlert":"Usar Virus","VRLA DESC":"Dependendo do número e tipo de Link Amps usados, um nível de portal de origem inferior pode ser suficiente.","VRLA":"L8+alguns VRLA","WASABEE BUTTON TITLE":"Wasabee: É VERDE E FAZ SMURFS CHORAREM.","WASABEE_D_LIST":"Contagem de chaves defensivas de entrada","WD BUTTON TITLE":"Log de chaves defensivas","WD BUTTON":"W-D Chaves","WRITE_SHORT":"RW","WRITE":"escrita","WSERVER":"Servidor: {url}","YESNO_DEL":"Tem certeza de que deseja excluir {opName}?","ZONE_DRAW":"Clique para definir os limites da zona","ZONE":"Zona","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Marcador"}}'),Русский:JSON.parse('{"ABOUT_WASABEE":"О Wasabee","acknowledged":"цель получена","ADD LINK TITLE":"Добавление линков","ADD MARKER TITLE":"Добавление маркеров","ADD_AGENT":"Добавить агента:","ADD_BL":"Добавить перемычки:","ADD_BULK":"Массовое добавление","ADD_BUTTON_LINKS":"Добавить все линки сразу.","ADD_LINKS":"Добавить линки","ADD_MARKER":"+ маркер","ADD_NEW_OP":"Добавить новую ОПРЦ","ADD_SUCC_INSTR":"Агент добавлен","ADD_ZONE":"Добавить зону","ADD":"Добавить","ADD1":"Добавить первый линк","ADD2":"Добавить второй линк","AGENT_STATS":"Данные агента","AGENT":"Агент","AGES":" (давно)","ALREADY_HAS_MARKER":"У этого портала уже есть маркер. Выбери другой портал.","AMAZ_TEAM_NAME":"Отличное название.","ANCHOR ASSIGNMENT":"Назначить все исходящие линки:","ANCHOR_GMAP":"Google-карты","ANCHOR_PORTAL":"Опорный портал","ANCHOR_PORTAL2":"Опорный портал 2","ANCHOR_PORTAL3":"Опорный портал 3","ANCHOR1":"Опорник 1","ANCHOR2":"Опорник 2","ANCHOR3":"Опорник 3","ANCHORS_AS_BOOKMARKS":"Опорники в закладки","API_KEY":"API ключ Rocks:","ASS_TO":"Назначено агенту","ASSIGN LINK PROMPT":"Назначить линк с портала: {portalName}","ASSIGN MARKER PROMPT":"Назначить маркер с {portalName}","ASSIGN OUTBOUND PROMPT":"Назначить все исходящие линки с {portalName}","ASSIGN OUTBOUND":"Назначить исходящие линки","ASSIGN":"Назначить","ASSIGNED_ONLY_SHORT":"Назначенные","ASSIGNED_ONLY":"Только назначенные","assigned":"Назначено","AUTH INCOMPAT":"Ты активировал в TamperMonkey плагин, который несовместим с Wasabee","AUTH REQUIRED":"Необходима аутентификация","AUTH TOKEN REJECTED":"Отправка аутентификационного токена на сервер отклонена: {error}","AUTH_SELECT_ACCOUNT":"Выбери аккаунт","AUTO_DRAWS":"Авто-рисовка","AUTODRAWS":"Опции авто-рисовки Wasabee","AUTODRAW_PORTALS_SET":"Порталы","autodraw.common.draw_button":"Нарисовать","autodraw.fanfield.result":"Найдено fanfield с {links} линками и {fields} полями для {ap} AP","autodraw.flipflop.result":"Flip flop: найдено {count} линков","autodraw.homogeneous.missing_split":"Невозможно найти поле {count} уровня, попробуй уровни нижеили в другом месте","autodraw.homogeneous.order":"Порядок","autodraw.homogeneous.portals_required":"Нужно {count}","autodraw.madrid.auto_determined":"Авто-определённый","autodraw.madrid.balanced":"Сбалансированный","autodraw.madrid.result":"Для Мадрида найдено {count} полей","autodraw.multimax.result":"Для multimax найдено {count} полей","autodraw.multimax.result_both_side":"Для multimax найлено {count1} и {count2} полей","autodraw.onion.variant":"Опции","autodraw.onion.variant.equilateral":"~Равносторонний","autodraw.onion.variant.grow":"Пусть растет","autodraw.onion.variant.balanced":"Безупречный баланс","AUTOLOAD_RATE":"Скорость запроса данных портала (ms)","AUTOLOAD":"Автоматически загружать недостающие данные портала","AUTOMARK STOP":"Авто-маркировка остановлена, т.к. порталы не были загружены","AUTOMARK":"Авто-маркировка","BAT_TOAD":"Боевые жабы","BLOCKER LIST TITLE":"Показать все кроссы","BLOCKER TITLE":"кроссы","CANCEL":"Отменить","CAPSULE":"Капсула","CapturePortalMarker":"Захватить","CHANGE SERVER PROMPT":"Новый сервер Wasabee","CHANGE SERVER":"Сменить сервер","CHANGE_WAS_SERVER":"Сменить сервер Wasabee","CHECKLIST BUTTON TITLE":"Чек-лист операции","CHECKLIST BUTTON":"Чек-лист","CLEAR LINKS":"Удалить линки","CLEAR MARKERS":"Удалить маркеры","CLEAR_EVERYTHING":"Удалить порталы/линки/маркеры для текущей ОПРЦ","CLEAROPS BUTTON TITLE":"Удалить данные","CLEAROPS BUTTON":"Удалить данные","CLEAROPS PROMPT":"Удалить все локальные ОПРЦ. ОПРЦ будут восстановлены при следующей загрузке.","CLOSE":"Закрыть","COMMENT":"Комментарий","COMPLETED BY":"Выполнено агентом {agentName}","completed":"Выполнено","CON_DEL":"Подтверди удаление: {opName}","COUNT":"Количество","CREATE_NEW_TEAM":"Создать новую команду","CreateLinkAlert":"Линк","CUR_USER_INFO":"Информация о пользователе","D_SHOW_LIST":"Ввести ключи на руках","DEFAULT OP NAME":"Новая ОПРЦ: {date}","DELETE ANCHOR PROMPT":"Хочешь удалить этот портал и все связанные линки:","DELETE ANCHOR TITLE":"Удалить портал","DELETE MARKER PROMPT":"Хочешь удалить этот маркер:","DELETE MARKER TITLE":"Удалить маркер","DELETE_ANCHOR":"Удалить","DELETE_LINK":"Удалить","DELETE_OP":"Удалить {opName}","DESCRIP_PLACEHOLD":"Описание (опционально)","DestroyPortalAlert":"Снести","dialog.about.download_mobile_app":"

Приложение Wasabee:

","dialog.agent_comment.text":"Комментарий:","dialog.agent_comment.title":"Задать комментарий для {agentName}","dialog.auth.ott.button":"Вход с одноразовым токеном","dialog.auth.ott.text":"Получи токен на сервере Wasabee, затем вставь его здесь","dialog.auth.ott.title":"Одноразовый токен","dialog.blockers.clear_automark":"Очистить автометки","dialog.clear_all.text":"Хочешь сбросить {opName}?","dialog.clear_all.title":"Очистить: {opName}","dialog.clear_links.text":"Хочешь удалить все линки в {opName}?","dialog.clear_links.title":"Очистить линки: {opName}","dialog.clear_markers.text":"Хочешь удалить все маркеры в {opName}?","dialog.clear_markers.title":"Очистить линки: {opName}","dialog.checklist.count_fields":"Почситать поля","dialog.checklist.count_fields.no_empty":"Найдено {fieldCount} полей и пустых полей нет","dialog.checklist.count_fields.with_empty":"Найдено {fieldCount} полей и {emptyCount} пустых полей на {linkCount} линках","dialog.checklist.count_fields.link_from_inside":"Найдено {count} линков с накрытых порталов","dialog.checklist.count_fields.link_from_inside.covered_at_order":" на шаге {order} линком ","dialog.common.color":"Цвет","dialog.common.commands":"Команды","dialog.common.commands_short":"Команды","dialog.common.delete":"Удалить","dialog.common.links":"Линки","dialog.common.markers":"Маркеры","dialog.common.name":"Название","dialog.common.off":"Выкл.","dialog.common.on":"Вкл.","dialog.common.owner":"Владелец","dialog.common.zone_all":"Все","dialog.filter.actions.description":"Применить изменения ко всем видимым задачам","dialog.filter.actions.delete_visible":"Удалить","dialog.filter.actions.delete_hidden":"Удалить все другие задачи","dialog.filter.actions.shift.label":"Смещение","dialog.filter.actions.shift.button":"Сдвиг","dialog.filter.actions.title":"Действия","dialog.filter.filters.apply":"Применить фильтры","dialog.filter.filters.description":"Выберите свойства для фильтрации задач, которые вы хотите видеть и изменить.","dialog.filter.filters.field.task":"Задача","dialog.filter.filters.field.min_order":"Минимальный номер","dialog.filter.filters.field.max_order":"Максимальный номер","dialog.filter.filters.title":"Фильтры","dialog.filter.title":"Фильтры и действия","dialog.firebase.setup":"Посети {url} и нажми кнопку, чтобы авторизовать обновления в реальном времени. После этого перезагрузи IITC.","dialog.import.url":"Заполнить из URL","dialog.import.success_message":"Импорт завершён. Найдено {count} порталов и {faked} порталов было не подгружено. Используй функцию замены, чтобы заменить неподгруженные порталы на настоящие на тех же местах. Увеличение масштаба на порталах чек-листа с меткой \'загрузка\' может заставить их загрузиться.","dialog.keys.update_error":"Портал пока не в ОПРЦ, сделай синхронизацию с сервером","dialog.leave_team.text":"Если покинешь {teamName}, то не сможешь снова присоединиться пока владенец не добавит тебя.","dialog.leave_team.title":"Покинуть: {teamName}","dialog.link_list.length":"Длина","dialog.link_list.level":"Мин. уровень","dialog.link_list.all_from":"Установить все исходящие","dialog.link_list.all_to":"Установить все входящее","dialog.conflict.cancel_upload":"Отменить загрузку","dialog.conflict.conflicts":"Конфликты:","dialog.conflict.local":"Локальная копия","dialog.conflict.server":"Серверная копия","dialog.conflict.zone":"Зона: {name}","dialog.conflict.prop.assignedTo":"Назначить:","dialog.conflict.prop.comment":"Комментарий:","dialog.conflict.prop.color":"Цвет:","dialog.conflict.prop.deltaminutes":"Дельта:","dialog.conflict.prop.fromPortal":"От:","dialog.conflict.prop.hardness":"Сложность:","dialog.conflict.prop.order":"Порядок:","dialog.conflict.prop.state":"Статус:","dialog.conflict.prop.toPortal":"К:","dialog.conflict.prop.zone":"Зона:","dialog.conflict.prop.zone_points":"Форма изменилась","dialog.online_agents.actions":"Действия","dialog.online_agents.last_seen":"Последняя активность","dialog.online_agents.title":"Агенты онлайн","dialog.op_settings.advanced":"Доп. настройки","dialog.op_settings.import.desc":"Импортировать линки/маркеры/зоны из другой ОПРЦ","dialog.op_settings.import.collision_default":"В случае конфликта использовать импортированные линки/маркеры","dialog.op_settings.import.select_op":"Выбрать ОПРЦ","dialog.op_settings.import.select_color":"Цвет линков","dialog.op_settings.import.button":"Импорт","dialog.op_settings.setting":"Настройки","dialog.op_settings.zones":"Зоны","dialog.ops_list.background_disable":"Отключить фон","dialog.ops_list.background_enable":"Показывать в фоне","dialog.ops_list.download":"Скачать {opName}","dialog.ops_list.last_fetched":"Получено: {date}","dialog.ops_list.local_change":"Локальная версия изменилась","dialog.ops_list.remote_change":"Версия на сервере изменилась","dialog.ops_list.toggle_hide":"Переключить Показать/Скрыть","dialog.ops_list.unhide_ops":"Показать все ОПРЦ","dialog.remove_agent.text":"Хочешь удалить {agentName} из {teamName}?","dialog.remove_agent.title":"Удалить: {agentName}","dialog.setcomment.portal_hardness":"Сложность","dialog.settings.disable_live_updates":"Отключить обновления в реальном времени","dialog.settings.populate_opportals":"Заполнить карту порталами ОПРЦ","dialog.team_list.load_wd_keys":"Загрузить ключи на руках","dialog.team_list.share_wd_keys":"Поделиться ключами на руках","dialog.team_manage.join_link":"Ссылка для присоединения","dialog.team_manage.join_link.create":"Создать","dialog.team_manage.join_link.revoke":"Отозвать","dialog.team_members.location":"Делится местоположением","dialog.team_members.wd_keys":"Делится ключами на руках","dialog.team_message":"Объявление команде: \\"{message}\\" от {sender}","dialog.update_warning":"Wasabee устарело. Пожалуйста, обнови через менеджер плагинов или по ссылке https://wasabee.rocks","dialog.zone_color.title":"Цвет зоны","dialog.zone_color.text":"Задать цвет всем линкам в зоне {zoneName}","dialog.zones.color":"Цвет","dialog.zones.color_links":"Задать цвет линкам","dialog.zones.delete.title":"Удалить зону {zoneName}","dialog.zones.delete.text":"Хочешь удалить зону “{zoneName}” ?","dialog.zones.delete_zone_shape":"Сбросить очертание зоны","dialog.zones.draw_zone_shape":"Нарисовать границы","dialog.zones.id":"ID","dialog.zones.jump_to":"Перейти к зоне","dialog.zones.stop_drawing":"Закончить рисовать","dialog.zones.title":"Зоны","DRAW TOOLS FORMAT":"Формат ДТ","DUPE_OP":"Дублировать операцию","END_PORT":"Конечный портал","ExcludeMarker":"Исключить из авто-рисовки/маркировки","EXPORT OP TITLE":"Экспортировать текущую ОПРЦ","EXPORT OP":"Экспортировать ОПРЦ","EXPORT":"Экспортировать:","FAKED":"Неподгружен: [{portalId}]","FANFIELD":"Нарисовать","FANFIELD2":"Нарисовать Fan Field","FarmPortalMarker":"Отфармить","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Исходя из заданного опорника, видимых порталов и количества SBUL, найти fanfield, в котором очередность перенавеса с опорника будет идти по уменьшению длины линков для того, чтобы избежать поиска ключей.","FLIP_FLOP_INSTRUCTION":"Выбери портал, приблизь карту, чтобы видеть достаточно порталов и нажми Рисовать. Как только fanfield будет найдено, можно будет поискать другие опорники для последовательного перенавеса.","FLIP_FLOP_FIND_ANCHORS":"Найти другие опорники","FROM_1-2":"от опорного линка 1-2","FROM_1-3":"от опорного линка 1-3","FROM_2-3":"от опорного линка 2-3","FROM_DEPTH":"из глубины","FROM_PORT":"С портала","GET DT":"Получить существующее ДТ","GetKeyPortalMarker":"Получить ключи","GotoPortalMarker":"Перейти к","H-GEN_INST":"Выбери порталы для внешнего слоя. Выбери порядок гомогенности. Нажми \'рисовать\'.","HF_DEEP_SEARCH":"Инсчерпывающий поиск","HF_DRAW_BUTTON":"Рисовать","HF_REDRAW_BUTTON":"Перерисовать","HG":"Гомогенное поле","HOURS":" ({hours} часов назад)","HOW_TO_VIDS":"

Обучающие видео:

","IMP_NOPE":"Ошибка импорта.","IMP_WAS_OP":"Импортировать ОПРЦ Wasabee","IMPORT_OP_SUCCESS":"ОПРЦ: {opName} импортирована успешно.","IMPORT_OP_TITLE":"Импортировать ОПРЦ: {date}","IMPORT_OP":"Импортировать операцию","IMPOSSIBLE":"Невозможно","INGNAME_GID":"Ник Ingress или GoogleID","INPUT_DT_KEY_COUNT":"Введи количество ключей на руках","INVALID REQUEST":"Неверный запрос","IOS NEED FAKE UA":"Нужно установить \'Custom UserAgent for Webviews\' в настройках IITC-Mobile, чтобы вход удался","KEY_LIST2":"Список ключей для операции: {opName}","KEYS":"Ключи","KNOWN_BLOCK":"Известные кроссы: {opName}","LA DESC":"В зависимости от количества и типа использованных ламп для линковки может быть достаточно более низкого уровня портала.","LA":"П8 с несколькими LA","LANG":"Язык","LEAVE":"Выйти","LetDecayPortalAlert":"Просадить","LINK ASSIGNMENT":"Назначить линк:","LINK STATE PROMPT":"Статус линка","LINK STATE":"Установить статус линка:","LINKS BUTTON TITLE":"Линки","LINKS":"Линки","LINKS2":"{portalName} : Линки ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Загрузить порталы","LOADING":"[загрузка]","LOADING1":"Загрузка: [{portalGuid}]","LOC_PROC":"Местоположение обработано","LOCATION SUB":"Местоположение зарегистрировано","LOCFRMSER":" (локально и с сервера)","LOG IN":"Логин","LOG_OUT":"Выход","MADRID_SET_1":"Выбери область для опорного линка сопорника 2 на опорник 3","MADRID_SET_2":"Выбери область для опорного линка сопорника 3 на опорник 1","MADRID_SET_3":"Выбери область для опорного линка сопорника 1 на опорник 2","MADRID_TITLE":"Мадридский протокол","MADRID_WAS_TAKEN":"Мадридский протокол","MADRID":"Нарисовать","MANAGE_TEAM":"Редактировать {teamName}","MANAGE":"Редактировать","MARKER ASSIGNMENT":"Назначить маркер:","MARKER LIST TITLE":"Список маркеров","MARKER LIST":"Маркеры","MARKER STATE PROMPT":"Статус маркера","MARKER STATE":"Установить статус маркера:","MARKER_LIST":"Список маркеров: {opName}","MARKERS BUTTON TITLE":"Маркеры","MAX_SPLITS":"Максимальный уровень","MAX":"FanField","MeetAgentPortalMarker":"Встретить агента","MERGE ON UPDATE":"Объединить при обновлении","MERGE_CHANGES_LOCAL":"Изменения на устройстве","MERGE_CHANGES_MERGE":"Объединить результат","MERGE_CHANGES_REMOTE":"Изменения на сервере","MERGE_LOCAL":"Сохранить версию с устройства","MERGE_MESSAGE":"Похоже, что в ОПРЦ{opName} внесены изменения на устройстве. Хочешь объединить изменения с ОПРЦ на сервере, использовать версию с сервера или сохранить версию с устройства?","MERGE_REBASE":"Объединить","MERGE_REPLACE":"Использовать версию с сервера","MERGE_TITLE":"Объединение версий ОПРЦ на устройстве и на сервере","MIN_SRC_PORT_LVL":"Минимальный требуемый уровень портала для линковки","MINUTES":" ({minutes} минут назад)","MM":"Multimax","MM_BOTH_SIDE":"Использовать обе стороны опорного линка","MM_INSERT_ORDER":"Вставить в конце","MM_SET_ALL_PORTALS":"Все видимые порталы","MM_SET_ALL_KEYS":"Все маркеры GetKey","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Грядка","MULTI_M_TITLE":"Нарисовать максимальное количество слоёв","MULTI_M":"Нарисовать","MUST_NOT_BE_EMPTY":"Не должно быть пустым","MY_CAP_ID":"ID моей капсулы","MY_COUNT":"Моё количество","NAME_REQ":"Требуется имя","NAME":"Название:","NEW_OP":"Новая операция","NEW_TEAM_NAME":"Новое имя команды","NEW_TEAM":"Новая команда","NEW_WAS_SERVER":"Новый сервер Wasabee","NEWOP BUTTON TITLE":"Создать новую операцию","NEWOP BUTTON":"Новая ОПРЦ","NO_DT_ITEMS":"Не обнаружено элементов ДТ","NO_LABEL":"Метка не установлена","NO_STOCK_INTEL":"Wasabee не поддерживает импорт из Intel","NO_TITLE":"Название не установлено","NO LONGER AVAILABLE":"Ресурс удален с сервера: {error}","NO LONGER AVAILABLE SHORT":"Ресурс удален с сервера","NOT LOGGED IN SHORT":"Не залогинен","NOT LOGGED IN":"Не залогинен: {error}","NOT_LOADED":"Не полностью загружено, попробуй еще раз.","NOT_SET":"не установлено","NTNAME":"Название","OK":"ОК","ON_HAND":"На руках","ONION_WAS_TAKEN":"Onion","ONION":"Нарисовать","ONLY_DT_IMP":" (только для импорта ДТ)","OP DELETED":"Операция удалена с сервера: {opID}","OP PERM DENIED":"Отказано в доступе к операции: {opID}","OP_CHECKLIST":"Чек-лист операции: {opName}","OP_NAME_UNSET":"Название операции не задано","OP_PERMS":"Разрешения ОПРЦ","OP_SETTINGS_BUTTON":"ОПРЦ ⚙","OP_SETTINGS_TITLE":"Настройки операции","OPEN_REQUEST":"[открытый запрос]","OPER_COLOR":"Цвет операции:","OPER_NAME":"Название операции:","OPERATIONS":"Операции","OPS BUTTON TITLE":"Список операций","OPS BUTTON":"Выбери ОПРЦ","ORDER":"Порядок","OtherPortalAlert":"Другое","PASTE_INSTRUCT":"Вставь экспортируемые данные Wasabee здесь.\\n\\nWasabee не может импортировать данные в формате интела.\\n\\nЕсть эксперементальная поддержка ДТ формата IITC.\\n\\nПрежде чем импортировать ДТ в формате IITC, просмотри область ДТ и убедись, что все порталы загружены и кэшированы в IITC. Любой неподгруженный портал будет неподгружен.\\n\\nНужно будет использовать функцию \'замена\', чтобы переместить порталы со неподгруженных на настоящие (местоположение порталов будет корректным, однако неподгруженные порталы не будут связаны с реальными).\\n\\nКэшированные порталы могут некорректно называться.","pending":"Ожидается","PERM DENIED":"Доступ запрещен: {error}","PERM DENIED SHORT":"Доступ запрещен","PERMS":"Разрешения {opName}","PLEASE_SELECT_PORTAL":"Выбери портал","popup.anchor.duplicate":"Дублировать","popup.anchor.keys":"Ключи: {onHand} / {required}","popup.anchor.keys_mycount":"Я: {myCount} / {required}","popup.marker.state_button":"Задать статус","PORTAL KEY LIST":"Список ключей для портала {portalName}","PORTAL_COUNT":"{count} порталов","PORTAL":"Портал","QD BUTTON CHANGE COLOR":"Кликни, чтобы изменить цвет следующего линка","QD BUTTON END":"Кликни, чтобы остановить прорисовку полей","QD BUTTON TOGGLE MODE":"Кликни, чтобы поменять режим рисовки","QD CHANGE COLOR":"Изменить цвет","QD END":"Стоп","QD TITLE":"Слои быстрой рисовки","QD TOGGLE MODE":"Изменить режим","QDBASE":"Опорный линк","QDCONT":"Кликни портал в грядке, чтобы нарисовать поле.","QDNEXT":"Кликни на второй опорный портал.","QDSTART":"Кликни на первый опорный портал.","READ_SHORT":"RO","READ":"только чтение","RechargePortalAlert":"Зарядить","REFERENCE_TIME":"Референсное время:","REM_LOC_CP":"Удалить локальную копию {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Хочешь навсегда удалить {teamName} с сервера Wasabee?","REMOVE_TEAM_CONFIRM_TITLE":"Удаление команды {teamName}","REMOVE_TEAM":"Удалить команду:","REMOVE":"Удалить","RENAME_TEAM":"Переименовать команду:","RENAME":"Переименовать","REQUIRED":"Требуется","RESET":"Сброс","REVERSE":"Обратить","ROCKS_COM":"Сообщество enl.rocks:","ROLE":"Роль","SAVELINKS TITLE":"Сохранить линки","SAVELINKS_DRAW":"Сохранить линки","SAVELINKS":"Сохранить линки","SECONDS":" ({seconds} секунд назад)","SEL_SB_ANCHOR":"Выбери опорник.","SEL_SB_ANCHOR2":"Уменьши масштаб. Убедись, что порталы полностью загрузились, затем кликни рисовку.","SEL_SL_ANCHOR":"Выбери портал, линки которого нужно сохранить. Кликни на кнопку сохранения линков и посмотри в чек-лист.","SEL_SRC_ANC2":"Выбери оба портала: начальный и опорник 2","SEL_SRC_PORT":"Выбери начальный портал","SELECT PORTAL":"Сначала выбери портал","SELECT_FAN_PORTALS":"Выбери опорный портал, стартовый портал и конечный портал, а затем позиционируйте карту над областью полей.","SELECT_FAN_PORTALS2":"Подожди, пока все порталы загрузятся, затем кликни рисовку.","SELECT_INSTRUCTIONS":"Выбери два опорных портала, затем увеличь область грядки.","SELECT_ONION_PORTALS":"Слои строятся изнутри наружу. Приблизь масштаб в центр и выбери начальный портал, затем отдали масштаб на всю область.","SELF SWAP":"Нельзя заменить портал на тот же самый! Выбери другой портал.","SEND ANALYTICS":"Отправить аналитику анонимно","SEND LOCATION":"Делиться местоположением (только когда IITC активно используется)","SEND TARGET AGENT":"Выбрать получателя цели","SEND TARGET CONFIRM":"Хочешь отправить цель {portalName} агенту {agent}?","SEND TARGET":"Отправить цель","SEND_LOC":"Отправить местоположение","SET_3_PORT":"Сначала задай три портала!","SET_COMMENT":"Задать комментарий","SET_LCOMMENT":"Задать комментарий к линку","SET_LINK_COMMENT":"Задать комментарий для линка:","SET_LINKS_ZONES":"Задать линкам зоны","SET_MARKER_COMMENT":"Задать комментарий для маркера на:","SET_MARKER_TYPE_TITLE":"Изменить тип маркера","SET_MARKERS_ZONES":"Задать маркеры в зоны","SET_MCOMMENT":"Задать комментария маркеру: {portalName}","SET_NEW_OP":"Задай имя для новой операции","SET_PCOMMENT":"Задать комментарий порталу: {portalName}","SET_PORT_COMMENT":"Задать комментарий порталу:","SET_PORTAL_COMMENT":"Задать комментарий порталу","SET":"задать","SETTINGS_TOOLBOX":"Настройки Wasabee","SETTINGS_TITLE":"Расширенные настройки","SKINS_AVAILABLE":"Есть {count} доступных скинов.","SKINS_BUTTON":"Настроить скины","SKINS_DESCRIPTION":"Пакеты доступных скинов размещены в правой колонке. Перемести в левую колонку те, которые хочешь использовать.","SKINS_MANAGE_TITLE":"Управление скинами","SKIP_CONFIRM_ALWAYS":"Никогда не спрашивать (используй осторожно)","SKIP_CONFIRM_ENTITY":"Спрашивать только для команд/ОПРЦ","SKIP_CONFIRM_NEVER":"Всегда спрашивать","SKIP_CONFIRM":"Подтверждение пропуска","SOURCE_PORT":"Начальный портал","STARBURST TITLE":"Звезда","STARBURST_DRAW":"Рисовка","STARBURST":"Звезда","START_PORT":"Стартовый портал","STATE":"Статус","SUPPORT_INSTRUCT":"Для поддержки, присоединяйся к The Wasabee User Telegram Channel","SWAP PROMPT":"Хочешь заменить:","SWAP TITLE":"Замена порталов","SWAP WITH":" на ","SWAP":"Замена","swap.marker.title":"Поменять маркер","swap.marker.prompt":"Хочешь поменять маркер:","SYNC DONE":"Загрузка завершена
Кликни ЗДЕСЬ для подсказок, советов и документации.","SYNC":"Загрузить доступные операции","TARGET SENT":"Цель отправлена","TEAM STATE":"Делиться местоположением","TEAM_CREATED":"Команда {teamName} создана","TEAM_NAME":"Название команды","TEAM":"Команда","TEAMS BUTTON TITLE":"Список команд Wasabee","TEAMS BUTTON":"Команды","TO_PORT":"На портал","toolbar.op.filter":"Фильтры","toolbar.op.redo":"Повторить","toolbar.op.title":"ОПРЦ: {opName}","toolbar.op.undo":"Отменить","toolbar.quick_delete.apply.text":"Применить","toolbar.quick_delete.apply.title":"Удалить выбранные линки/маркеры","toolbar.quick_delete.cancel.text":"Отмена","toolbar.quick_delete.cancel.title":"Отмена","toolbar.quick_delete.clear.text":"Очистить всё","toolbar.quick_delete.clear.title":"Очистить все линки и маркеры","toolbar.quick_delete.stop.text":"Стоп","toolbar.quick_delete.stop.title":"Выйти из режима удаления","toolbar.quick_delete.title":"Быстрое удаление","toolbar.quick_delete.tooltip.toggle_mode":"Кликни на объекты, чтобы выделить их для удаления","toolbar.quick_delete.tooltip.quick_mode":"Кликни на объекты, чтобы немедленно удалить их","toolbar.quick_draw.tooltip.star_mode.anchor":"Выбери опорник звезды","toolbar.quick_draw.tooltip.star_mode.portal":"Выбери портал","toolbar.quick_draw.tooltip.single_mode.first":"Нажми на первый портал","toolbar.quick_draw.tooltip.single_mode.next":"Нажми на следующий портал","toolbar.quick_draw.tooltip.portal_fail":"Данные о портале не загружены, попробуй еще раз","toolbar.quick_draw.tooltip.burst.portal":"Выбери портал","toolbar.quick_draw.toggle.text":"Режим: {mode}","toolbar.quick_draw.mode.burst":"Звёздочка","toolbar.quick_draw.mode.multilayer":"Матрёшка","toolbar.quick_draw.mode.singlelink":"Цепочка","toolbar.quick_draw.mode.starburst":"Линкстар","toolbar.wasabee.settings":"Настройки","toolbox.teammates":"Сокомандники онлайн","TRAWL SKIP TILES":"Шаг тайлов для выверки","TRAWL TITLE":"Выверка трасс","TRAWL WARNING":"Этот метод загрузит данные тайлов под всеми нарисованными линками. Это медленный процесс.","TRAWL_AUTOMARK":"Автоматически маркировать кроссы после выверки","TRAWL_BULK_LOAD_WARNING":"Этот метод загрузит данные тайлов так быстро, как это возможно. Используй его на свой страх и риск.","TRAWL_BULK_LOAD":"Массово загрузить данные тайлов","TRAWL_CLEAR_MARKERS":"Очистить маркеры вирусов и сноса перед выверкой","TRAWL_REMAINING":"{count} тайлов осталось","TRAWL":"Выверка для поиска кроссов","TRAWLING":"Выверка трасс для поиска кроссов, закрой этот диалог, чтобы остановить процесс","TYPE":"Тип","UNASSIGNED":"Не назначен","UNKNOWN":"Неизвестен","UPDATE HOVER":"ОБНОВИТЬ {opName} на сервере","UPDATE PERM DENIED":"У тебя недостаточно прав для обновления","UPDATE_CONFLICT_DESC":"ОПРЦ изменилась на сервере с момента последней синхронизации. Хочешь заменить версию на сервере текущей?","UPDATE_CONFLICT_TITLE":"Обнаружен конфликт с сервером","UPDATE_COUNT":"Количество обновлений","UPDATED":"Успешно обновлено","UpgradePortalAlert":"Апнуть","UPLOAD BUTTON HOVER":"ЗАГРУЗИТЬ {opName} на сервер (пока что её там нет)","UPLOADED":"Успешно загружено на сервер","USE PANES ON MOBILE":"Использовать панели (нужна перезагрузка)","USE_VALID_NAME":"Используй действительное название операции","UseVirusPortalAlert":"Использовать вирус","VRLA DESC":"В зависимости от количества и типа использованных ламп может быть достаточно более низкого уровня портала для линковки.","VRLA":"П8 с несколькими VRLA","WASABEE BUTTON TITLE":"Wasabee: зелёный и заставляет смурфов плакать.","WASABEE_D_LIST":"Ввод количества ключей на руках","WD BUTTON TITLE":"Список ключей на руках","WD BUTTON":"Ключи на руках","WRITE_SHORT":"RW","WRITE":"чтение и запись","WSERVER":"Сервер: {url}","YESNO_DEL":"Уверен, что хочешь удалить {opName}?","ZONE_DRAW":"Кликни, чтобы задать границы зоны","ZONE":"Зона","smallScreen":{"ADD_LINKS":"+ Линки","ADD_MARKER":"+ Маркер"}}'),Dansk:JSON.parse('{"ABOUT_WASABEE":"Om Wasabee","acknowledged":"Anerkendt","ADD LINK TITLE":"Tilføj Links","ADD MARKER TITLE":"Tilføj Markører","ADD_AGENT":"Tilføj Agent:","ADD_BL":"Tilføj baglinie:","ADD_BULK":"Massetilføj","ADD_BUTTON_LINKS":"Tilføj alle links med det samme.","ADD_LINKS":"Tilføj Links","ADD_MARKER":"+ Markør","ADD_NEW_OP":"Tilføj Ny Op","ADD_SUCC_INSTR":"Agent tilføjet","ADD_ZONE":"Tilføj Zone","ADD":"Tilføj","ADD1":"Tilføj første link","ADD2":"Tilføj andet link","AGENT_STATS":"Agent Statistik","AGENT":"Agent","AGES":" (for længe siden)","ALREADY_HAS_MARKER":"Denne portal har allerede en markør, vælg en anden Portal.","AMAZ_TEAM_NAME":"Fantastisk holdnavn.","ANCHOR ASSIGNMENT":"Tilknyt alle udgående links til:","ANCHOR_GMAP":"Google Maps","ANCHOR_PORTAL":"Anker Portal","ANCHOR_PORTAL2":"Anker Portal 2","ANCHOR_PORTAL3":"Anker Portal 3","ANCHOR1":"Anker 1","ANCHOR2":"Anker 2","ANCHOR3":"Anker 3","ANCHORS_AS_BOOKMARKS":"Ankere som bookmarks","API_KEY":"Rocks API-nøgle:","ASS_TO":"Tildelt","ASSIGN LINK PROMPT":"Tilføj link fra: {portalName}","ASSIGN MARKER PROMPT":"Tildel markør fra: {portalName}","ASSIGN OUTBOUND PROMPT":"Tildel alle udgående links fra: {portalName}","ASSIGN OUTBOUND":"Tildel udgående links","ASSIGN":"Tildel","ASSIGNED_ONLY_SHORT":"KT","ASSIGNED_ONLY":"Kun tildelt","assigned":"Tildelt","AUTH INCOMPAT":"Du har aktiveret et plugin i TamperMonkey, der er inkompatibelt med Wasabee","AUTH REQUIRED":"Godkendelse påkrævet","AUTH TOKEN REJECTED":"Afsendelse af godkendelsestoken til serveren blev afvist: {error}","AUTH_SELECT_ACCOUNT":"Vælg konto","AUTO_DRAWS":"Auto-tegne","AUTODRAWS":"Wasabee Indstillinger for automatisk tegning","AUTODRAW_PORTALS_SET":"Portaler","autodraw.common.draw_button":"Tegn","autodraw.fanfield.result":"Fanfield found {links} links and {fields} fields for {ap} AP","autodraw.flipflop.result":"Flip flop: fundet {count} links","autodraw.homogeneous.missing_split":"Unable to find {count} splits, try less depth or a different region","autodraw.homogeneous.order":"Order","autodraw.homogeneous.portals_required":"{count} required","autodraw.madrid.auto_determined":"Auto-determined","autodraw.madrid.balanced":"Balanced","autodraw.madrid.result":"Madrid found {count} layers","autodraw.multimax.result":"Multimax found {count} layers","autodraw.multimax.result_both_side":"Multimax found {count1} and {count2} layers","autodraw.onion.variant":"Valg","autodraw.onion.variant.equilateral":"~Ligesidet","autodraw.onion.variant.grow":"Lad det vokse","autodraw.onion.variant.balanced":"Perfekt balanceret","AUTOLOAD_RATE":"Rate for anmodning om portaldetaljer (ms)","AUTOLOAD":"Indlæs automatisk manglende portaloplysninger","AUTOMARK STOP":"Auto-markering stoppede på grund af, at portaler ikke blev indlæst","AUTOMARK":"Auto-mærke","BAT_TOAD":"Battle Toads/manglende oversættelse","BLOCKER LIST TITLE":"Vis alle blokkere","BLOCKER TITLE":"Blokere","CANCEL":"Annuller","CAPSULE":"Kapsel","CapturePortalMarker":"erobre","CHANGE SERVER PROMPT":"Ny Wasabee Server","CHANGE SERVER":"Skift Server","CHANGE_WAS_SERVER":"Skift Wasabee Server","CHECKLIST BUTTON TITLE":"Operation Tjekliste","CHECKLIST BUTTON":"Tjekliste","CLEAR LINKS":"Ryd links","CLEAR MARKERS":"Ryd markører","CLEAR_EVERYTHING":"Ryd portaler/links/markører for aktuel OP","CLEAROPS BUTTON TITLE":"Ryd Data","CLEAROPS BUTTON":"Ryd Data","CLEAROPS PROMPT":"Ryd alle lokale OPS. Ops vil blive gendannet ved næste download.","CLOSE":"Luk","COMMENT":"Kommentar","COMPLETED BY":"Færdiggjort af {agentName}","completed":"Færdiggjort","CON_DEL":"Bekræft sletning: {opName}","COUNT":"Optælling","CREATE_NEW_TEAM":"Opret nyt team","CreateLinkAlert":"Link","CUR_USER_INFO":"Aktuelle brugeroplysninger","D_SHOW_LIST":"Input defensive nøgler","DEFAULT OP NAME":"Ny Op: {date}","DELETE ANCHOR PROMPT":"Ønsker du at slette dette anker og alle tilhørende links:","DELETE ANCHOR TITLE":"Slet anker","DELETE MARKER PROMPT":"Vil du slette denne markør:","DELETE MARKER TITLE":"Slet markør","DELETE_ANCHOR":"Slet","DELETE_LINK":"Slet","DELETE_OP":"Slet {opName}","DESCRIP_PLACEHOLD":"Beskrivelse (valgfri)","DestroyPortalAlert":"Ødelæg/Skyd","dialog.about.download_mobile_app":"

Wasabee App:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Set comment for {agentName}","dialog.auth.ott.button":"One Time Token Login","dialog.auth.ott.text":"Get a token from the Wasabee Server, then paste it here","dialog.auth.ott.title":"One Time Token","dialog.blockers.clear_automark":"Clear Automark","dialog.clear_all.text":"Do you want to reset {opName}?","dialog.clear_all.title":"Clear: {opName}","dialog.clear_links.text":"Do you want to remove all links from {opName}?","dialog.clear_links.title":"Clear Links: {opName}","dialog.clear_markers.text":"Do you want to remove all markers from {opName}?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Count fields","dialog.checklist.count_fields.no_empty":"Found {fieldCount} fields and no empty field","dialog.checklist.count_fields.with_empty":"Found {fieldCount} fields and {emptyCount} empty field(s) on {linkCount} link(s)","dialog.checklist.count_fields.link_from_inside":"Found {count} links from covered portals","dialog.checklist.count_fields.link_from_inside.covered_at_order":" at {order} by link ","dialog.common.color":"Color","dialog.common.commands":"Commands","dialog.common.commands_short":"Cmds","dialog.common.delete":"Delete","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Name","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Owner","dialog.common.zone_all":"All","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Visit {url} and press the button to authorize live updates. You will need to reload IITC afterward.","dialog.import.url":"Fill from URL","dialog.import.success_message":"Import fuldført. Fandt {count} portaler og brugte {faked} forfalskede. Brug venligst swap-funktionen til at flytte forfalskede portaler til de rigtige portaler på samme sted. Zoom ind på \'Indlæser\' portaler i tjeklisten kan tvinge dem til at indlæse.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"If you leave {teamName} you cannot rejoin unless the owner re-adds you.","dialog.leave_team.title":"Leave: {teamName}","dialog.link_list.length":"Length","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Cancel upload","dialog.conflict.conflicts":"Conflicts:","dialog.conflict.local":"Local copy","dialog.conflict.server":"Server copy","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Assign:","dialog.conflict.prop.comment":"Comment:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"From:","dialog.conflict.prop.hardness":"Hard:","dialog.conflict.prop.order":"Order:","dialog.conflict.prop.state":"State:","dialog.conflict.prop.toPortal":"To:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Actions","dialog.online_agents.last_seen":"Last Seen","dialog.online_agents.title":"Online Agents","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zones","dialog.ops_list.background_disable":"Disable background","dialog.ops_list.background_enable":"Show in background","dialog.ops_list.download":"Download {opName}","dialog.ops_list.last_fetched":"Last fetched: {date}","dialog.ops_list.local_change":"Local has changed","dialog.ops_list.remote_change":"Remote has changed","dialog.ops_list.toggle_hide":"Toggle Show/Hide","dialog.ops_list.unhide_ops":"Unhide all OPs","dialog.remove_agent.text":"Do you want to remove {agentName} from {teamName}?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Sværhedsgrad","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"Load W-D Keys","dialog.team_list.share_wd_keys":"Share W-D Keys","dialog.team_manage.join_link":"Join Link","dialog.team_manage.join_link.create":"Create","dialog.team_manage.join_link.revoke":"Revoke","dialog.team_members.location":"Sharing Location","dialog.team_members.wd_keys":"Sharing W-D Keys","dialog.team_message":"Team announcement: “{message}” from {sender}","dialog.update_warning":"Wasabee is out of date. Please update using your plugin manager or by going to https://wasabee.rocks","dialog.zone_color.title":"Zone Color","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Draw Tools Format","DUPE_OP":"Duplikere Operation","END_PORT":"Slut Portal ","ExcludeMarker":"Udelad fra Auto-Tegn/Marker","EXPORT OP TITLE":"Eksporter aktuel Op","EXPORT OP":"Eksporter Op","EXPORT":"Eksporter:","FAKED":"forfalsket: [{portalId}]","FANFIELD":"Tegn","FANFIELD2":"Tegn Fan Field","FarmPortalMarker":"Farm","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Fra et givet anker, et sæt synlige portaler og et antal SBUL, find et fanefelt til at smide links fra anker ved at mindske afstanden for at undgå at søge nøgler.","FLIP_FLOP_INSTRUCTION":"Vælg en portal, zoom for at se nok portaler og tryk på Tegn. Når et fanfelt er fundet, du kan søge efter andre ankre for gentagne linkninger","FLIP_FLOP_FIND_ANCHORS":"Find andre ankre","FROM_1-2":"fra basislinie 1-2","FROM_1-3":"fra basislinie 1-3","FROM_2-3":"fra basislinie 2-3","FROM_DEPTH":"fra center","FROM_PORT":"Fra Portal","GET DT":"Få eksisterende DrawTools-tegning","GetKeyPortalMarker":"Hent nøgler","GotoPortalMarker":"Gå Til","H-GEN_INST":"Sæt portaler til det ydre lag. Vælg antal opdelinger. Klik på tegn","HF_DEEP_SEARCH":"Omfattende søgning","HF_DRAW_BUTTON":"Tegn","HF_REDRAW_BUTTON":"Gentegn","HG":"Homogent felt","HOURS":" ({hours} timer siden)","HOW_TO_VIDS":"

Sådan-gør-du videoer:

","IMP_NOPE":"Import mislykkedes.","IMP_WAS_OP":"Importer Wasabee Operation","IMPORT_OP_SUCCESS":"Importeret Operation: {opName} lykkedes.","IMPORT_OP_TITLE":"Importer Op: {date}","IMPORT_OP":"Importer Operation","IMPOSSIBLE":"Umulig","INGNAME_GID":"Ingress navn eller GoogleID","INPUT_DT_KEY_COUNT":"Input antal defensiv nøgler","INVALID REQUEST":"Ugyldig forespørgsel","IOS NEED FAKE UA":"Du skal indstille en \'Custom UserAgent for Webviews\' i IITC-Mobile-indstillingerne, ellers mislykkes login","KEY_LIST2":"Nøgleliste til Operationen: {opName}","KEYS":"Nøgler","KNOWN_BLOCK":"Kendte blokkere: {opName}","LA DESC":"Afhængigt af antallet og typen af ​​anvendte Link Amps, kan et lavere kildeportal level være tilstrækkeligt.","LA":"L8+ nogle LA","LANG":"Sprog","LEAVE":"Forlad","LetDecayPortalAlert":"Lad forfalde","LINK ASSIGNMENT":"Tildel link til:","LINK STATE PROMPT":"Link tilstand","LINK STATE":"Angiv link-status:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Load Portaler","LOADING":"[loader]","LOADING1":"Loader: [{portalGuid}]","LOC_PROC":"Beliggenhed behandlet","LOCATION SUB":"Lokation registreret","LOCFRMSER":" (lokalt og fra server)","LOG IN":"Log Ind","LOG_OUT":"Log Ud","MADRID_SET_1":"Vælg regionen for basislinket Anker 2 til Anker 3","MADRID_SET_2":"Vælg regionen for basislinket Anker 3 til Anker 1","MADRID_SET_3":"Vælg regionen for basislinket Anker 1 til Anker 2","MADRID_TITLE":"Madrid Protokol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Tegn","MANAGE_TEAM":"Administrer {teamName}","MANAGE":"Administrer","MARKER ASSIGNMENT":"Tildel markør til:","MARKER LIST TITLE":"Markør Liste","MARKER LIST":"Markører","MARKER STATE PROMPT":"Markør Status","MARKER STATE":"Angiv markørtilstand:","MARKER_LIST":"Markør Liste: {opName}","MARKERS BUTTON TITLE":"Markører","MAX_SPLITS":"Max Delinger","MAX":"Fane Felt","MeetAgentPortalMarker":"Mød Agent","MERGE ON UPDATE":"Flet ved opdatering","MERGE_CHANGES_LOCAL":"Lokale ændringer","MERGE_CHANGES_MERGE":"Flet resultat","MERGE_CHANGES_REMOTE":"Fjernændringer","MERGE_LOCAL":"Behold lokale","MERGE_MESSAGE":"Det ser ud til, at {opName} har lokale ændringer. Vil du flette dine ændringer med server-OP\'en, bruge serverversionen eller beholde den lokale version?","MERGE_REBASE":"Flet","MERGE_REPLACE":"Brug server","MERGE_TITLE":"Flet lokal&fjern OP","MIN_SRC_PORT_LVL":"Minimums level påkrævet på kildeportalen","MINUTES":" ({minutes} minutter siden)","MM":"Multimaks","MM_BOTH_SIDE":"Brug begge base sider","MM_INSERT_ORDER":"Indsæt i slutningen","MM_SET_ALL_PORTALS":"Alle synlige portaler","MM_SET_ALL_KEYS":"Alle GetKey-Markører","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Rygrad","MULTI_M_TITLE":"Tegn Max Lag","MULTI_M":"Tegn","MUST_NOT_BE_EMPTY":"Må ikke være tom","MY_CAP_ID":"Mit kapsel ID","MY_COUNT":"Mit Antal","NAME_REQ":"Navn påkrævet","NAME":"Navn:","NEW_OP":"Ny operation","NEW_TEAM_NAME":"Nyt holdnavn","NEW_TEAM":"Nyt hold","NEW_WAS_SERVER":"Ny Wasabee Server","NEWOP BUTTON TITLE":"Opret en ny operation","NEWOP BUTTON":"Ny Op","NO_DT_ITEMS":"Ingen DrawTools tegnede elementer fundet","NO_LABEL":"Ingen etiket sat","NO_STOCK_INTEL":"Wasabee understøtter ikke stock intel tegninger","NO_TITLE":"Ingen titel angivet","NO LONGER AVAILABLE":"Ressource fjernet fra serveren: {error}","NO LONGER AVAILABLE SHORT":"Ressource fjernet fra serveren","NOT LOGGED IN SHORT":"Ikke logget ind","NOT LOGGED IN":"Ikke logget ind: {error}","NOT_LOADED":"Ikke fuldt indlæst, prøv igen.","NOT_SET":"ikke indstillet","NTNAME":"Navn","OK":"OK","ON_HAND":"Har Allerede","ONION_WAS_TAKEN":"Onion/løg","ONION":"Tegn","ONLY_DT_IMP":" (kun for DrawTools-import)","OP DELETED":"Operationen fjernet fra serveren: {opID}","OP PERM DENIED":"Tilladelse nægtet til operationen: {opID}","OP_CHECKLIST":"Operation Tjekliste: {opName}","OP_NAME_UNSET":"Operationsnavn blev deaktiveret","OP_PERMS":"Op Tilladelser","OP_SETTINGS_BUTTON":"Op Indstillinger ⚙","OP_SETTINGS_TITLE":"Op Indstillinger","OPEN_REQUEST":"[åbn anmodning]","OPER_COLOR":"Operation Farve:","OPER_NAME":"Operation Navn:","OPERATIONS":"Operationer","OPS BUTTON TITLE":"Operations Liste","OPS BUTTON":"Vælg OP","ORDER":"Sorter","OtherPortalAlert":"Andet","PASTE_INSTRUCT":"Indsæt en Wasabee draw-eksport her.\\n\\nWasabee kan ikke importere stock intel-formatet.\\n\\nDer er eksperimentel understøttelse af import af IITC DrawTools-formatet.\\n\\nFør du importerer DrawTools-formatet, skal du forhåndsvise områderne og sørge for, at alle portalerne indlæses så IITC har dem cachelagret. Alle portaler, der ikke er pre-cached, vil blive forfalsket.\\n\\nDu bliver nødt til at bruge \'swap\'-funktionen til at flytte ankre fra de falske portaler til de rigtige portaler (de bør være på den korrekte placering, bare ikke forbundet med portal.\\n\\nCachede portaler er muligvis ikke korrekt navngivet.","pending":"Afventer","PERM DENIED":"Tilladelse nægtet: {error}","PERM DENIED SHORT":"Tilladelse nægtet","PERMS":"{opName} tilladelser","PLEASE_SELECT_PORTAL":"Vælg venligst en portal","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Keys: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Set State","PORTAL KEY LIST":"Nøgleliste for portal {portalName}","PORTAL_COUNT":"{count} portaler","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Klik for at ændre farve på næste link","QD BUTTON END":"Klik for at stoppe med at tegne felter","QD BUTTON TOGGLE MODE":"Klik for at ændre tegnetilstand","QD CHANGE COLOR":"Skift farve","QD END":"Slut","QD TITLE":"Hurtig tegn lag","QD TOGGLE MODE":"Skift tilstand","QDBASE":"Base Link","QDCONT":"Klik på en baglinieportal for at tegne et felt.","QDNEXT":"Klik på den anden ankerportal.","QDSTART":"Klik på den første ankerportal.","READ_SHORT":"L","READ":"Læs","RechargePortalAlert":"Genoplad","REFERENCE_TIME":"Referencetid:","REM_LOC_CP":"Fjern lokal kopi af {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Vil du permanent fjerne {team Name} fra Wasabi-serveren?","REMOVE_TEAM_CONFIRM_TITLE":"Fjern hold {teamName}","REMOVE_TEAM":"Fjern hold:","REMOVE":"Fjern","RENAME_TEAM":"Omdøb hold:","RENAME":"Omdøb","REQUIRED":"Påkrævet","RESET":"Nulstil","REVERSE":"Endevend","ROCKS_COM":"enl.rocks fællesskab:","ROLE":"Rolle","SAVELINKS TITLE":"Gem Links","SAVELINKS_DRAW":"Gem Links","SAVELINKS":"Gem Links","SECONDS":" ({seconds} sekunder siden)","SEL_SB_ANCHOR":"Vælg ankerportal.","SEL_SB_ANCHOR2":"Zoom ud. Sørg for, at alle portaler er indlæst, og klik derefter på Tegn.","SEL_SL_ANCHOR":"Vælg den portal, du vil gemme links til. Klik på knappen Gem links og se på tjeklisten.","SEL_SRC_ANC2":"Vælg både Kilde og Anker 2","SEL_SRC_PORT":"Vælg en kildeportal","SELECT PORTAL":"Vælg venligst en portal først","SELECT_FAN_PORTALS":"Vælg en ankerportal, en startportal og en slutportal, og fokuser over markområdet.","SELECT_FAN_PORTALS2":"Vent på, at alle portaler er indlæst, og klik derefter på tegn.","SELECT_INSTRUCTIONS":"Vælg to ankerportaler, og zoom derefter over rygsøjlen.","SELECT_ONION_PORTALS":"Lag bygges indefra og ud. Zoom ind til midten, og vælg startportal, og zoom derefter ud til området.","SELF SWAP":"Kan ikke bytte en portal med sig selv! Vælg en anden portal.","SEND ANALYTICS":"Send anonyme analysedata","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Vælg modtager agent","SEND TARGET CONFIRM":"Vil du sende {portalName}-målet til {agent}?","SEND TARGET":"Send mål","SEND_LOC":"Send placering","SET_3_PORT":"Indstil venligst de tre portaler først!","SET_COMMENT":"Indstil kommentar","SET_LCOMMENT":"Indstil linkkommentar","SET_LINK_COMMENT":"Indstil kommentar til link:","SET_LINKS_ZONES":"Sæt links til zoner","SET_MARKER_COMMENT":"Sæt kommentar til markør på:","SET_MARKER_TYPE_TITLE":"Skift markørtype","SET_MARKERS_ZONES":"Indstil markører til zoner","SET_MCOMMENT":"Indstil markørkommentar: {portalName}","SET_NEW_OP":"Indstil venligst det nye operationsnavn","SET_PCOMMENT":"Indstil portalkommentar: {portalName}","SET_PORT_COMMENT":"Indstil kommentar til portal:","SET_PORTAL_COMMENT":"Indstil portalkommentar","SET":"indstil","SETTINGS_TOOLBOX":"Wasabee Settings","SETTINGS_TITLE":"Advanced Settings","SKINS_AVAILABLE":"Der er {count} tilgængelige skins.","SKINS_BUTTON":"Konfigurer skins","SKINS_DESCRIPTION":"Tilgængelige skin packs er placeret i højre kolonner. Flyt skins, du ønsker at bruge, til venstre kolonne.","SKINS_MANAGE_TITLE":"Administrer skins","SKIP_CONFIRM_ALWAYS":"Spørg aldrig (brug med forsigtighed)","SKIP_CONFIRM_ENTITY":"Spørg kun for hold/op","SKIP_CONFIRM_NEVER":"Spørg altid","SKIP_CONFIRM":"Spring bekræftelse over","SOURCE_PORT":"Kildeportal","STARBURST TITLE":"Starburst","STARBURST_DRAW":"Tegn","STARBURST":"Starburst","START_PORT":"Start Portal ","STATE":"Status","SUPPORT_INSTRUCT":"For at få support, tilmeld dig Wasabee bruger Telegram kanal","SWAP PROMPT":"Vil du bytte:","SWAP TITLE":"Byt portaler","SWAP WITH":" med ","SWAP":"Byt","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Download Komplet
Klik HER for tips, tips og dokumentation.","SYNC":"Download tilgængelige operationer","TARGET SENT":"Mål sendt","TEAM STATE":"Del placering","TEAM_CREATED":"Hold {teamName} oprettet","TEAM_NAME":"Hold navn","TEAM":"Hold","TEAMS BUTTON TITLE":"Liste over Wasabee-holdene","TEAMS BUTTON":"Hold","TO_PORT":"Til Portal","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Anvend","toolbar.quick_delete.apply.title":"Slet valgte links/markører","toolbar.quick_delete.cancel.text":"Annuller","toolbar.quick_delete.cancel.title":"Annuller","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Afslut slettetilstand","toolbar.quick_delete.title":"Hurtigt slet","toolbar.quick_delete.tooltip.toggle_mode":"Click on features to mark for deletion","toolbar.quick_delete.tooltip.quick_mode":"Click on features to delete instantly","toolbar.quick_draw.tooltip.star_mode.anchor":"Vælg stjerneanker","toolbar.quick_draw.tooltip.star_mode.portal":"Vælg en portal","toolbar.quick_draw.tooltip.single_mode.first":"Klik på den første portal","toolbar.quick_draw.tooltip.single_mode.next":"Klik på den næste portal","toolbar.quick_draw.tooltip.portal_fail":"Portaldata ikke indlæst, prøv venligst igen","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Settings","toolbox.teammates":"Teammates Online","TRAWL SKIP TILES":"Trawl Skip fliser","TRAWL TITLE":"Trawl baner","TRAWL WARNING":"Dette vil indlæse flisedataene under alle tegnede links. Dette er en langsom proces.","TRAWL_AUTOMARK":"Automærke blokere efter trawl","TRAWL_BULK_LOAD_WARNING":"Denne metode indlæser flisedataene så hurtigt som muligt. Brug på eget ansvar.","TRAWL_BULK_LOAD":"Masseindlæsning af flisedata","TRAWL_CLEAR_MARKERS":"Ryd virus/ødelæggelsesmarkører før trawl","TRAWL_REMAINING":"{count} fliser tilbage","TRAWL":"Trawl efter blokere","TRAWLING":"Når du trawler banerne efter blokeringer, luk denne dialog for at stoppe","TYPE":"Type","UNASSIGNED":"Ikke tildelt","UNKNOWN":"Ukendt","UPDATE HOVER":"OPDATER {opName} på serveren","UPDATE PERM DENIED":"Du har ikke rettigheder til at opdatere","UPDATE_CONFLICT_DESC":"OP er blevet ændret på serveren siden sidste synkronisering. Ønsker du at erstatte serverversionen med den nuværende?","UPDATE_CONFLICT_TITLE":"Konflikt opdaget med server","UPDATE_COUNT":"Opdater optælling","UPDATED":"Opdateret","UpgradePortalAlert":"Upgrader","UPLOAD BUTTON HOVER":"UPLOAD {opName} (ikke på serveren i øjeblikket)","UPLOADED":"Uploadet","USE PANES ON MOBILE":"Brug rammer (skal genindlæses)","USE_VALID_NAME":"Brug venligst et gyldigt operationsnavn","UseVirusPortalAlert":"Brug Virus","VRLA DESC":"Afhængigt af antallet og typen af anvendte linkforstærkere kan et lavere kildeportal level være tilstrækkeligt.","VRLA":"L8+nogle VRLA","WASABEE BUTTON TITLE":"Wasabee: den er grøn og får smølfer til at græde.","WASABEE_D_LIST":"Input antal forsvarsnøgler","WD BUTTON TITLE":"Log forsvarsnøgler","WD BUTTON":"W-D Nøgler","WRITE_SHORT":"S","WRITE":"Skrive","WSERVER":"Server: {url}","YESNO_DEL":"Er du sikker på, at du vil slette {opName}?","ZONE_DRAW":"Klik for at indstille zonegrænserne","ZONE":"Zone","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Markør"}}')},_={main:t(),autodraws:n(),toolbar:r(),map:l(),panes:d(),smallScreen:p(),iitcfix:h()},w={SELECTED_OP_KEY:"wasabee-selected-op",OPS_LIST_KEY:"wasabee-ops",OPS_LIST_HIDDEN_KEY:"wasabee-hidden-ops",OPS_SHOW_HIDDEN_OPS:"wasabee-show-hidden-ops",SEND_LOCATION_KEY:"wasabee-send-location",SEND_ANALYTICS_KEY:"wasabee-analytics",EXPERT_MODE_KEY:"wasabee-expert-mode",LANGUAGE_KEY:"wasabee-language",DEFAULT_LANGUAGE:"English",AGENT_INFO_KEY:"wasabee-me",LINK_SOURCE_KEY:"wasabee-link-source",ANCHOR_ONE_KEY:"wasabee-anchor-1",ANCHOR_TWO_KEY:"wasabee-anchor-2",ANCHOR_THREE_KEY:"wasabee-anchor-3",PORTAL_DETAIL_RATE_KEY:"wasabee-portaldetail-rate",SKIN_KEY:"wasabee-skin",LAST_MARKER_KEY:"wasabee-last-marker-type",AUTO_LOAD_FAKED:"wasabee-autoload-faked",TRAWL_SKIP_STEPS:"wasabee-trawl-skip",USE_PANES:"wasabee-use-panes",SKIP_CONFIRM:"wasabee-skip-confirm",OAUTH_CLIENT_ID:"269534461245-b767slmcrhllpns01u7omue0n5l3mva0.apps.googleusercontent.com",SERVER_BASE_KEY:"wasabee-server",SERVER_BASE_DEFAULT:"https://am.wasabee.rocks",REBASE_UPDATE_KEY:"wasabee-rebase-on-update",DEFAULT_MARKER_TYPE:"DestroyPortalAlert",QUICKDRAW_GUIDE_STYLE:{color:"#0f0",dashArray:[8,2],opacity:.7,weight:5,smoothFactor:1,interactive:!1},WEBUI_DEFAULT:"https://webui.wasabee.rocks",JOIN_TEAM_TEMPLATE:"https://webui.wasabee.rocks/?server={server}#/team/{teamid}/join/{token}",FIREBASE_IFRAME:"https://cdn2.wasabee.rocks/iitcplugin/firebase/",FIREBASE_DISABLE:"wasabee-firebase",UNDO_HISTORY_SIZE:100,POPULATE_OPPORTALS:"wasabee-populate-opportals"},T=f(),b={CSS:_,dialogNames:{linkDialogButton:"wasabee-addlinks",markerButton:"wasabee-marker",mustauth:"wasabee-mustauth",newopButton:"wasabee-newop",opsList:"wasabee-operations",opSettings:"wasabee-operation-settings",wasabeeButton:"wasabee-userinfo",linkList:"wasabee-linklist",markerList:"wasabee-markerlist",assign:"wasabee-assign",state:"wasabee-state",multimaxButton:"wasabee-multimax",importDialog:"wasabee-import",operationChecklist:"wasabee-operation-checklist",blockerList:"wasabee-blockerlist",exportDialog:"wasabee-export",keysList:"wasabee-keys",keyListPortal:"wasabee-keyByPortal",wasabeeDKeyButton:"wasabee-DKey",wasabeeDList:"wasabee-DList",madrid:"wasabee-madrid",autodraws:"wasabee-autodraws",starburst:"wasabee-starburst",savelinks:"wasabee-savelinks",settings:"wasabee-settings",fanfield:"wasabee-fanfield",skinDialog:"wasabee-settings-skins",setComment:"wasabee-comment",trawl:"wasabee-trawl",manageTeam:"wasabee-manageteam"},constants:w,publicServers:[{name:"Americas",url:"https://am.wasabee.rocks",short:"🇺🇸"},{name:"Europe",url:"https://eu.wasabee.rocks",short:"🇪🇺"},{name:"Asia/Pacific",url:"https://ap.wasabee.rocks",short:"AP"}],strings:E,defaultOperationColor:"orange",linkStyle:{dashArray:[5,5,1,5],assignedDashArray:[4,2,1],opacity:1,weight:2},selfBlockStyle:{color:"#ff1111",dashArray:[1,5],opacity:4,weight:3},backgroundLinkStyle:{dashArray:[8,5],opacity:.4,weight:2,color:"green",interactive:!1},anchorTemplate:T};let A,k;const S=new WeakMap,v=new WeakMap,O=new WeakMap,D=new WeakMap,N=new WeakMap;let C={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return v.get(e);if("objectStoreNames"===t)return e.objectStoreNames||O.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return R(e[t])},set:(e,t,a)=>(e[t]=a,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function y(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(k||(k=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(I(this),e),R(S.get(this))}:function(...e){return R(t.apply(I(this),e))}:function(e,...a){const o=t.call(I(this),e,...a);return O.set(o,e.sort?e.sort():[e]),R(o)}:(e instanceof IDBTransaction&&function(e){if(v.has(e))return;const t=new Promise(((t,a)=>{const o=()=>{e.removeEventListener("complete",n),e.removeEventListener("error",i),e.removeEventListener("abort",i)},n=()=>{t(),o()},i=()=>{a(e.error||new DOMException("AbortError","AbortError")),o()};e.addEventListener("complete",n),e.addEventListener("error",i),e.addEventListener("abort",i)}));v.set(e,t)}(e),a=e,(A||(A=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>a instanceof e))?new Proxy(e,C):e);var t,a}function R(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,a)=>{const o=()=>{e.removeEventListener("success",n),e.removeEventListener("error",i)},n=()=>{t(R(e.result)),o()},i=()=>{a(e.error),o()};e.addEventListener("success",n),e.addEventListener("error",i)}));return t.then((t=>{t instanceof IDBCursor&&S.set(t,e)})).catch((()=>{})),N.set(t,e),t}(e);if(D.has(e))return D.get(e);const t=y(e);return t!==e&&(D.set(e,t),N.set(t,e)),t}const I=e=>N.get(e),M=["get","getKey","getAll","getAllKeys","count"],P=["put","add","delete","clear"],x=new Map;function U(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(x.get(t))return x.get(t);const a=t.replace(/FromIndex$/,""),o=t!==a,n=P.includes(a);if(!(a in(o?IDBIndex:IDBObjectStore).prototype)||!n&&!M.includes(a))return;const i=async function(e,...t){const i=this.transaction(e,n?"readwrite":"readonly");let r=i.store;return o&&(r=r.index(t.shift())),(await Promise.all([r[a](...t),n&&i.done]))[0]};return x.set(t,i),i}var B;B=C,C={...B,get:(e,t,a)=>U(e,t)||B.get(e,t,a),has:(e,t)=>!!U(e,t)||B.has(e,t)};const K=function(e,t,{blocked:a,upgrade:o,blocking:n,terminated:i}={}){const r=indexedDB.open(e,t),s=R(r);return o&&r.addEventListener("upgradeneeded",(e=>{o(R(r.result),e.oldVersion,e.newVersion,R(r.transaction))})),a&&r.addEventListener("blocked",(()=>a())),s.then((e=>{i&&e.addEventListener("close",(()=>i())),n&&e.addEventListener("versionchange",(()=>n()))})).catch((()=>{})),s}("wasabee",3,{upgrade(e,t,a,o){if(t<1){const t=e.createObjectStore("agents",{keyPath:"id"});t.createIndex("date","date"),t.createIndex("fetched","fetched"),e.createObjectStore("teams",{keyPath:"id"}).createIndex("fetched","fetched");const a=e.createObjectStore("defensivekeys",{keyPath:["GID","PortalID"]});a.createIndex("PortalID","PortalID"),a.createIndex("Count","Count")}if(t<2){const t=e.createObjectStore("operations",{keyPath:"ID"});t.createIndex("fetched","fetched"),t.createIndex("server","server")}if(t<3){const t=e.createObjectStore("blockers",{keyPath:["opID","from","to"]});t.createIndex("opID","opID",{unique:!1}),t.createIndex("from",["opID","from"],{unique:!1}),t.createIndex("to",["opID","to"],{unique:!1}),e.createObjectStore("blockers_portals",{keyPath:["opID","id"]}).createIndex("opID","opID",{unique:!1})}console.debug(a,o)}});const G=K;class H{constructor(e){if("string"==typeof e)return console.trace("agent waits for an object"),null;var t;("shareWD"in e||"squad"in e)&&(t=e,e={...t,shareWDKeys:t.shareWD,loadWDKeys:t.loadWD,shareLocation:t.state,comment:t.squad}),this.id=e.id,this.name=e.name,this.intelname="unset"!==e.intelname?e.intelname:"",this.intelfaction=e.intelfaction,this.communityname=e.communityname||"",this.pic=e.pic?e.pic:null,this.lat=e.lat?e.lat:0,this.lng=e.lng?e.lng:0,this.date=e.date?e.date:null,this.enlid=e.enlid?e.enlid:null,this.vname=e.vname,this.Vverified=!!e.Vverified,this.level=e.level?Number(e.level):0,this.blacklisted=!!e.blacklisted,this.rocksname=e.rocksname,this.rocks=!!e.rocks,this.communityname?this.name=this.communityname:this.Vverified?this.name=this.vname||this.name:this.rocks?this.name=this.rocksname||this.name:this.intelname?this.name=this.intelname+" [!]":this.name=this.name||"[unknown name]",e.shareWDKeys&&(this.shareWDKeys=e.shareWDKeys),e.loadWDKeys&&(this.loadWDKeys=e.loadWDKeys),e.shareLocation&&(this.shareLocation=e.shareLocation),e.comment&&(this.comment=e.comment),this.fetched=e.fetched?e.fetched:Date.now(),this._updateCache()}getName(){return this.communityname?this.communityname:this.Vverified&&this.vname?this.vname:this.rocks&&this.rocksname?this.rocksname:this.intelname?this.intelname:this.name}async _updateCache(){const e=await(await G).get("agents",this.id);if(null!=e){if(!(e.fetched>=this.fetched)){Object.assign(e,this),delete e.shareWDKeys,delete e.loadWDKeys,delete e.comment,delete e.shareLocation;try{await(await G).put("agents",e)}catch(e){console.error(e)}}}else try{await(await G).put("agents",this)}catch(e){console.error(e)}}get latLng(){return this.lat&&this.lng?new L.LatLng(this.lat,this.lng):null}static async get(e){return await(await G).get("agents",e)}}class z{constructor(e){this.opID=e.opID,this.from=e.fromPortal.id,this.to=e.toPortal.id}static async addPortal(e,t){const a=(await G).transaction("blockers_portals","readwrite").store,o={opID:e.ID,id:t.id,name:t.name,lat:t.lat,lng:t.lng};if(o.id===o.name){const t=await a.get([e.ID,o.id]);t&&t.name!==t.id&&(o.name=t.name)}await a.put(o)}static async updatePortal(e,t){const a=(await G).transaction("blockers_portals","readwrite").store;if(t.name===t.id)return!1;const o=await a.get([e.ID,t.id]);return!!o&&(o.lat!==t.lat||o.lng!==t.lng?(await z.removeBlocker(e,t.id),!0):o.name!==t.name&&(await a.put({opID:e.ID,id:t.id,name:t.name,lat:t.lat,lng:t.lng}),!0))}static async removeBlocker(e,t){const a=(await G).transaction("blockers","readwrite").store;let o=await a.index("from").openKeyCursor(IDBKeyRange.only([e.ID,t]));for(;o;)a.delete(o.primaryKey),o=await o.continue();let n=await a.index("to").openKeyCursor(IDBKeyRange.only([e.ID,t]));for(;n;)a.delete(n.primaryKey),n=await n.continue();await(await G).delete("blockers_portals",[e.ID,t])}static async removeBlockers(e){const t=(await G).transaction("blockers","readwrite").store;let a=await t.index("opID").openKeyCursor(IDBKeyRange.only(e));for(;a;)t.delete(a.primaryKey),a=await a.continue();const o=(await G).transaction("blockers_portals","readwrite").store;let n=await o.index("opID").openKeyCursor(IDBKeyRange.only(e));for(;n;)o.delete(n.primaryKey),n=await n.continue()}static async addBlocker(e,t,a){const o=new z({opID:e.ID,fromPortal:t,toPortal:a});await(await G).put("blockers",o),await z.addPortal(e,t),await z.addPortal(e,a)}static async getPortals(e){return await(await G).getAllFromIndex("blockers_portals","opID",e.ID)}static async getAll(e){const t=await(await G).getAllFromIndex("blockers","opID",e.ID),a=await z.getPortals(e),o=new Map;for(const e of a)o.set(e.id,e);for(const e of t)e.fromPortal=o.get(e.from),e.toPortal=o.get(e.to);return t}}function F(e=40){const t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,(e=>("0"+e.toString(16)).substr(-2))).join("")}const W=["pending","assigned","acknowledged","completed"];function Y(e){return W.find((t=>t===e))||"pending"}class Z{constructor(e){this.ID=e.ID||F(),this.zone=+e.zone||1,this.order=+e.order||0,this.assignedTo=e.assignedTo?e.assignedTo:null,this.comment=e.comment?e.comment:"",this.state=e._state||e.state,this.deltaminutes=e.deltaminutes,this.dependsOn=e.dependsOn?Array.from(e.dependsOn):[],this.assignments=e.assignments?Array.from(e.assignments):[],!this.assignedTo&&e.assignments&&e.assignments.length>0&&(this.assignedTo=e.assignments[0])}toServer(){return this.toJSON()}toJSON(){return{ID:this.ID,zone:Number(this.zone),order:Number(this.order),assignedTo:this.assignedTo,state:this._state,comment:this.comment,deltaminutes:this.deltaminutes,dependsOn:this.dependsOn}}get state(){return this._state}set state(e){switch(e){case"assigned":case"acknowledged":if(!this.assignedTo||""==this.assignedTo){this._state="pending";break}this._state=e;break;case"completed":this.complete();break;default:this.assignedTo=null,this._state="pending"}}setOrder(e){this.order=0|+e}assign(e){e!==this.assignedTo&&(this._state=e?"assigned":"pending"),this.assignedTo=e||null}complete(e){this._state="completed"}get completed(){return"completed"==this._state}set completed(e){e?this.complete():this.state="assigned"}}class q extends Z{constructor(e){void 0!==e.throwOrderPos&&(e=function(e){return e.order=+e.throwOrderPos||0,e.state="pending",e.completedID=e.completed?e.assignedTo:null,e.completedID?e.state="completed":e.assignedTo&&(e.state="assigned"),e.description&&(e.comment=e.description),e}(e)),super(e),this.fromPortalId=e.fromPortalId,this.toPortalId=e.toPortalId,this.color=e.color?e.color:"main"}toJSON(){return{...super.toJSON(),fromPortalId:this.fromPortalId,toPortalId:this.toPortalId,color:this.color}}get portalId(){return this.fromPortalId}getLatLngs(e){const t=[],a=e.getPortal(this.fromPortalId);if(!a||!a.lat)return console.log("unable to get source portal"),null;t.push(a.latLng);const o=e.getPortal(this.toPortalId);return o&&o.lat?(t.push(o.latLng),t):(console.log("unable to get destination portal"),null)}setColor(e,t){this.color=e,this.color==t.color&&(this.color="main"),t.update()}getColor(e){let t=this.color;return"main"==t&&(t=e.color),t}length(e){const t=this.getLatLngs(e);return L.latLng(t[0]).distanceTo(t[1])}}const V={MARKER_TYPE_CAPTURE:"CapturePortalMarker",MARKER_TYPE_DECAY:"LetDecayPortalAlert",MARKER_TYPE_EXCLUDE:"ExcludeMarker",MARKER_TYPE_DESTROY:"DestroyPortalAlert",MARKER_TYPE_FARM:"FarmPortalMarker",MARKER_TYPE_GOTO:"GotoPortalMarker",MARKER_TYPE_KEY:"GetKeyPortalMarker",MARKER_TYPE_LINK:"CreateLinkAlert",MARKER_TYPE_MEETAGENT:"MeetAgentPortalMarker",MARKER_TYPE_OTHER:"OtherPortalAlert",MARKER_TYPE_RECHARGE:"RechargePortalAlert",MARKER_TYPE_UPGRADE:"UpgradePortalAlert",MARKER_TYPE_VIRUS:"UseVirusPortalAlert"},j=[V.MARKER_TYPE_DECAY,V.MARKER_TYPE_DESTROY,V.MARKER_TYPE_VIRUS],Q=new Set(Object.values(V)),J={CapturePortalMarker:"capture",LetDecayPortalAlert:"decay",ExcludeMarker:"exclude",DestroyPortalAlert:"destroy",FarmPortalMarker:"farm",GotoPortalMarker:"goto",GetKeyPortalMarker:"key",CreateLinkAlert:"link",MeetAgentPortalMarker:"meetagent",OtherPortalAlert:"other",RechargePortalAlert:"recharge",UpgradePortalAlert:"upgrade",UseVirusPortalAlert:"virus"};class X extends Z{constructor(e){super(e),this.portalId=e.portalId,this.type=e.type,this.attributes=e.attributes?Array.from(e.attributes):[]}static get markerTypes(){return Q}static get constants(){return V}toJSON(){return{...super.toJSON(),portalId:this.portalId,type:this.type,attributes:this.attributes}}get friendlyType(){return J[this.type]}isDestructMarker(){return j.includes(this.type)}static isDestructMarkerType(e){return j.includes(e)}}class $ extends H{constructor(e){if("string"==typeof e)return console.trace("me waits for an object"),null;if(e.id=e.GoogleID||e.id,super(e),this.querytoken=e.querytoken,this.pic=e.pic,this.intelfaction=e.intelfaction,this.lockey=e.lockey,this.vapi=e.vapi,this.Teams=[],e.Teams&&e.Teams.length>0)for(const t of e.Teams)t.ShareWD="On"==t.ShareWD||!0===t.ShareWD,t.LoadWD="On"==t.LoadWD||!0===t.LoadWD,t.State="On"==t.State||!0===t.State,this.Teams.push(t);if(this.Ops=[],e.Ops&&e.Ops.length>0)for(const t of e.Ops)this.Ops.push(t);this.fetched=e.fetched?e.fetched:Date.now(),this._teamMap=null}static maxCacheAge(){return Date.now()-864e5}toJSON(){return this}store(){localStorage["wasabee-me"]=JSON.stringify(this)}remove(){delete localStorage["wasabee-me"]}static localGet(){const e=localStorage["wasabee-me"];return"string"==typeof e?new $(JSON.parse(e)):null}static isLoggedIn(){const e=$.localGet();return!!e&&(e.fetched>$.maxCacheAge()||($.purge(),!1))}static cacheGet(){const e=$.localGet();return e?null==e.fetched||e.fetched<$.maxCacheAge()?($.purge(),null):e:null}static async purge(){const e=$.localGet();delete localStorage["wasabee-me"],delete localStorage.sentToServer;const t=(await G).transaction(["agents","teams","defensivekeys"],"readwrite"),a=t.objectStore("agents"),o=t.objectStore("teams"),n=t.objectStore("defensivekeys");await Promise.all([a.clear(),o.clear(),n.clear(),t.done]),window.map.fire("wasabee:logout",{GID:e?e.id:null})}teamJoined(e){return null==this._teamMap&&this.makeTeamMap(),!!this._teamMap.has(e)}makeTeamMap(){this._teamMap=new Map;for(const e of this.Teams)this._teamMap.set(e.ID,e.State)}}class ee{constructor(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return console.error(e),null}this.id=e.id,e.name.includes(e.id)&&(e.name=e.id),this.name=e.name,this.lat=(+e.lat).toFixed(6),this.lng=(+e.lng).toFixed(6),this.comment=e.comment?e.comment:"",this.hardness=e.hardness?e.hardness:"",this._latLng=e._latLng||{lat:+this.lat,lng:+this.lng}}toJSON(){return{id:this.id,name:this.name,lat:this.lat,lng:this.lng,comment:this.comment,hardness:this.hardness}}get latLng(){return this._latLng}static fake(e,t,a,o){return console.assert(e&&t,"WasabeePortal.fake called w/o lat/lng"),a||(a=F()),o||(o=a),new ee({id:a,name:o,lat:e,lng:t})}get faked(){return 35!=this.id.length||this.id==this.name}get loading(){return 35==this.id.length&&this.id==this.name}get pureFaked(){return 35!=this.id.length}}class te{constructor(e){if(this.id=Number(e.id),this.name=e.name,this.color=e.color?e.color:"#00ff00",this.points=[],e.points)for(const t of e.points)this.points.push(new ae(t))}toJSON(){return{id:+this.id,name:`${this.name}`,color:this.color,points:this.points}}contains(e){this.points.sort(((e,t)=>e.position-t.position));let t=!1;const a=e.lat,o=e.lng;for(let e=0,n=this.points.length-1;eo!=l>o&&a<(s-i)*(o-r)/(l-r)+i&&(t=!t)}return t}}class ae{constructor(e){this.position=Number(e.position),this.lat=+e.lat,this.lng=+e.lng}}function oe(){}class ne{constructor(){this._events={}}on(e,t,a){return e in this._events||(this._events[e]=[]),this._events[e].push({fct:t,context:a}),this}off(e,t,a){const o=this._events[e];if(o)for(const e of o)e.fct===t&&e.context===a&&(e.fct=oe,delete e.context);return this}fire(e,t){const a=(this._events[e]||[]).slice();if(a)for(const e of a){const a=e.fct;e.fct=oe;try{a.call(e.context,t)}catch(e){console.error(e)}e.fct=a}return this}}function ie(){if(window.plugin&&window.plugin.wasabee){let e=localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY];return null==e&&(e=window.plugin.wasabee.static.constants.SERVER_BASE_DEFAULT,localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY]=e),e}return""}const re=Math.PI/180,se=180/Math.PI;function le(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function ce(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function de(e,t){return e.lat===t.lat&&e.lng===t.lng}function ue(e){return e._cartesian||(e._cartesian=function(e,t){e*=re,t*=re;const a=Math.cos(e);return[a*Math.cos(t),a*Math.sin(t),Math.sin(e)]}(e.lat,e.lng)),e}function pe(e,t,a){return function(e,t,a){return ce(le(e,t),a)}(ue(e.latLng)._cartesian,ue(t.latLng)._cartesian,ue(a.latLng)._cartesian)>0?1:-1}function me(e,t,a,o){const n=pe(e,t,a);return pe(e,t,o)*n>0&&pe(t,a,o)*n>0&&pe(a,e,o)*n>0}function he(e,t,a){const o=ue(e.latLng)._cartesian,n=ue(t.latLng)._cartesian,i=ue(a.latLng)._cartesian;return function(e){const t=Math.atan2(e[2],Math.sqrt(e[0]*e[0]+e[1]*e[1])),a=Math.atan2(e[1],e[0]),o=L.latLng({lat:t*se,lng:a*se});return o._cartesian=[...e],o}([o[0]+n[0]+i[0],o[1]+n[1]+i[1],o[2]+n[2]+i[2]])}function ge(...e){const[t,a,o,n]=e.flat();if(de(t,a))return!1;if(de(o,n))return!1;if(de(t,o)||de(t,n))return!1;if(de(a,o)||de(a,n))return!1;if(Math.min(t.lng,a.lng)>Math.max(o.lng,n.lng))return!1;if(Math.max(t.lng,a.lng)0||e>0&&t<0)return!0;const a=ce(l,u),o=ce(l,p);if(a<0&&o>0||a>0&&o<0)return!0;const n=ce(i,m),r=ce(i,h);return n<0&&r>0||n>0&&r<0}const f=ce(g,u),E=ce(g,p),_=ce(g,m),w=ce(g,h);return f>0&&0>E&&_>0&&0>w||0>f&&E>0&&0>_&&w>0}class fe{constructor(e,t){const a=Math.PI/180;if(e.lng==t.lng)throw new Error("Error: cannot calculate latitude for meridians");this.lat1=e.lat*a,this.lat2=t.lat*a,this.lng1=e.lng*a,this.lng2=t.lng*a;const o=this.lng1-this.lng2,n=Math.sin(this.lat1),i=Math.sin(this.lat2),r=Math.cos(this.lat1),s=Math.cos(this.lat2);this.sinLat1CosLat2=n*s,this.sinLat2CosLat1=i*r,this.cosLat1CosLat2SinDLng=r*s*Math.sin(o)}isMeridian(){return this.lng1==this.lng2}latAtLng(e){let t;return t=(e=e*Math.PI/180)==this.lng1?this.lat1:e==this.lng2?this.lat2:Math.atan((this.sinLat1CosLat2*Math.sin(e-this.lng2)-this.sinLat2CosLat1*Math.sin(e-this.lng1))/this.cosLat1CosLat2SinDLng),180*t/Math.PI}bearing(){const e=this.lng1-this.lng2,t=Math.cos(this.lat2),a=Math.sin(e)*t,o=this.sinLat2CosLat1-this.sinLat1CosLat2*Math.cos(e);return Math.atan2(a,o)}}let Ee=null;class _e extends ne{constructor(e){if(super(),this._dirtyCoordsTable=!1,this._batchmode=!1,"string"==typeof e)return console.trace("op waits for an object"),null;this.ID=e.ID?e.ID:F(),this.name=e.name?e.name:"unnamed op",this.creator=e.creator?e.creator:"unset",this.anchors=e.anchors?Array.from(e.anchors):[],this.links=this.convertLinksToObjs(e.links),this.markers=this.convertMarkersToObjs(e.markers),this.color=e.color?e.color:"main",this.comment=e.comment?e.comment:null,this.teamlist=e.teamlist?Array.from(e.teamlist):[],this.fetched=e.fetched?e.fetched:null,this.stored=e.stored?e.stored:null,this.localchanged=!!e.localchanged,this.keysonhand=e.keysonhand?e.keysonhand:[],this.zones=this.convertZonesToObjs(e.zones),this.referencetime=e.referencetime?e.referencetime:null,this.lasteditid=e.lasteditid?e.lasteditid:null,this.remoteChanged=!!e.remoteChanged,this.server=this.fetched?e.server:null,this.fetchedOp=e.fetchedOp?e.fetchedOp:null,this.server||delete this.lasteditid,this.background=!!e.background,this.links||(this.links=[]),this.markers||(this.markers=[]);const t=this.convertPortalsToObjs(e.opportals);if(this._idToOpportals=new Map,this._coordsToOpportals=new Map,t)for(const e of t)this._idToOpportals.set(e.id,e);if(this.buildCoordsLookupTable(),e.blockers)for(const t of e.blockers)z.addBlocker(this,this.getPortal(t.fromPortalId),this.getPortal(t.toPortalId));this.cleanAnchorList(),this.cleanPortalList()}static async load(e){try{const t=await(await G).get("operations",e);if(null==t)return null;const a=new _e(t);if(null==a)throw new Error("corrupted operation");return a}catch(e){console.error(e)}return null}static async delete(e){delete localStorage[e],await(await G).delete("operations",e)}static async migrate(e){if(null==await(await G).get("operations",e))try{const t=localStorage[e];if(null==t)throw new Error("invalid operation ID");const a=JSON.parse(t),o=new _e(a);if(null==o)throw new Error("corrupted operation");await o.store(),delete localStorage[e]}catch(e){console.error(e)}else delete localStorage[e]}async store(){this.stored=Date.now();const e=this.toJSON();e.server=this.server,e.fetchedOp=this.fetchedOp,e.lasteditid=this.lasteditid,e.remoteChanged=this.remoteChanged,e.fetched=this.fetched,e.stored=this.stored,e.localchanged=this.localchanged,e.keysonhand=this.keysonhand,e.teamlist=this.teamlist,e.background=this.background;try{await(await G).put("operations",e)}catch(e){console.error(e)}Ee&&Ee.ID===this.ID&&Ee!==this&&console.trace("store current OP from a different obj, this *should* be followed by makeSelectedOperation",Ee.ID,Ee.name,this.ID,this.name)}toJSON(){return{ID:this.ID,name:this.name,creator:this.creator,opportals:Array.from(this._idToOpportals.values()),anchors:this.anchors,links:this.links,markers:this.markers,color:this.color,comment:this.comment,zones:this.zones,referencetime:this.referencetime}}toExport(){const e=new _e(JSON.parse(JSON.stringify(this)));return JSON.stringify(e)}getFetchedOp(){if(!this.fetchedOp)return null;try{const e=JSON.parse(this.fetchedOp);return new _e(e)}catch(e){return console.error("corrupted fetched op",e),null}}get opportals(){return Array.from(this._idToOpportals.values())}buildCoordsLookupTable(){this._coordsToOpportals.clear(),this._dirtyCoordsTable=!1;for(const e of this._idToOpportals.values()){const t=e.lat+"/"+e.lng,a=this._coordsToOpportals.get(t);a?(this._dirtyCoordsTable=!0,a.pureFaked?this._coordsToOpportals.set(t,e):e.pureFaked||console.warn("operation: portals %s and %s have same coordinates: %s",a.id,e.id,t)):this._coordsToOpportals.set(t,e)}if(this._dirtyCoordsTable){console.debug("operation: removing duplicates");const e=[],t=new Map;for(const[a,o]of this._idToOpportals){const n=o.lat+"/"+o.lng,i=this._idToOpportals.get(this._coordsToOpportals.get(n).id);t.set(a,i.id),a!=i.id&&e.push(a)}for(const e of this.links)e.fromPortalId=t.get(e.fromPortalId),e.toPortalId=t.get(e.toPortalId);for(const e of this.markers)e.portalId=t.get(e.portalId);this.anchors=this.anchors.map((e=>t.get(e)));for(const t of e)this._idToOpportals.delete(t)}this._dirtyCoordsTable=!1}getColor(){return null==this.color?"main":this.color}containsPortal(e){return this._idToOpportals.has(e.id)}getPortalByLatLng(e,t){return this._dirtyCoordsTable&&this.buildCoordsLookupTable(),this._coordsToOpportals.get(e+"/"+t)}containsLinkFromTo(e,t){if(0==this.links.length)return!1;for(const a of this.links)if(a.fromPortalId==e&&a.toPortalId==t||a.toPortalId==e&&a.fromPortalId==t)return!0;return!1}containsLink(e){return this.containsLinkFromTo(e.fromPortalId,e.toPortalId)}containsMarker(e,t){return this.containsMarkerByID(e.id,t)}containsMarkerByID(e,t){if(0==this.markers.length)return!1;for(const a of this.markers)if(a.portalId==e&&a.type==t)return!0;return!1}getLinkByPortalIDs(e,t){for(const a of this.links)if(a.fromPortalId==e&&a.toPortalId==t||a.fromPortalId==t&&a.toPortalId==e)return a;return null}getLink(e,t){return this.getLinkByPortalIDs(e.id,t.id)}getLinkById(e){for(const t of this.links)if(t.ID==e)return t;return null}getLinkListFromPortal(e){return this.links.filter((function(t){return t.fromPortalId==e.id||t.toPortalId==e.id}))}getPortal(e){return this._idToOpportals.get(e)}getMarker(e){for(const t of this.markers)if(t.ID==e)return t;return null}removeAnchor(e){this.anchors=this.anchors.filter((function(t){return t!==e})),this.links=this.links.filter((function(t){return t.fromPortalId!==e&&t.toPortalId!==e})),this.cleanAnchorList(),this.cleanPortalList(),this.update(!0),this.updateBlockers()}removeMarkerByID(e){this.markers=this.markers.filter((function(t){return t.ID!==e})),this.cleanPortalList(),this.update(!0),this.updateBlockers()}removeMarker(e){this.removeMarkerByID(e.ID)}setMarkerComment(e,t){for(const a of this.markers)a.ID==e.ID&&(a.comment=t);this.update(!0)}setMarkerState(e,t){for(const a of this.markers)a.ID==e&&(a.state=t);this.update(!0)}setLinkComment(e,t){for(const a of this.links)a.ID==e.ID&&(a.comment=t);this.update(!0)}setLinkState(e,t){for(const a of this.links)a.ID==e&&(a.state=t);this.update(!0)}setLinkColor(e,t){for(const a of this.links)a.ID==e&&(a.color=t);this.update(!0)}setLinkOrder(e,t){for(const a of this.links)a.ID==e&&a.setOrder(t);this.update(!0)}setMarkerOrder(e,t){for(const a of this.markers)a.ID==e&&a.setOrder(t);this.update(!0)}setPortalComment(e,t){const a=this.getPortal(e.id);a&&(a.comment=t,this.update(!0))}setPortalHardness(e,t){const a=this.getPortal(e.id);a&&(a.hardness=t,this.update(!0))}removeLinkByID(e){this.links=this.links.filter((t=>t.ID!=e)),this.cleanAnchorList(),this.cleanPortalList(),this.update(!0),this.updateBlockers()}removeLink(e,t){const a=[];for(const o of this.links)o.fromPortalId==e&&o.toPortalId==t||a.push(o);this.links=a,this.cleanAnchorList(),this.cleanPortalList(),this.update(!0),this.updateBlockers()}reverseLink(e,t){if(e instanceof q){const t=e.fromPortalId;e.fromPortalId=e.toPortalId,e.toPortalId=t}else for(const a of this.links)a.fromPortalId===e&&a.toPortalId===t&&(a.fromPortalId=t,a.toPortalId=e);this.update(!0)}cleanAll(){this.cleanAnchorList(),this.cleanPortalList(),this.cleanCaches()}cleanCaches(){}cleanAnchorList(){const e=[];for(const t of this.links)e.includes(t.fromPortalId)||e.push(t.fromPortalId),e.includes(t.toPortalId)||e.push(t.toPortalId);this.anchors=e}cleanPortalList(){const e=new Map;for(const t of this.links)e.set(t.fromPortalId,this._idToOpportals.get(t.fromPortalId)),e.set(t.toPortalId,this._idToOpportals.get(t.toPortalId));for(const t of this.markers)e.set(t.portalId,this._idToOpportals.get(t.portalId));for(const t of this.anchors)e.set(t,this._idToOpportals.get(t));const t=new Set,a={links:this.links.length,markers:this.markers.length};for(const[a,o]of e)void 0===o&&(this.links=this.links.filter((e=>e.fromPortalId!=a&&e.toPortalId!=a)),this.markers=this.markers.filter((e=>e.portalId!=a)),t.add(a));a.links-=this.links.length,a.markers-=this.markers.length,a.links+a.markers>0&&(console.trace("op corruption: missing portals"),this.fire("corrupt",{...a,portals:t.size}),this.cleanAnchorList());for(const a of t)e.delete(a);this._idToOpportals=e,this.buildCoordsLookupTable()}addPortal(e){!this.updatePortal(e)&&this._addPortal(e)&&this.update(!1)}_addPortal(e){if(!this.containsPortal(e)){const t=e.lat+"/"+e.lng;return this._coordsToOpportals.has(t)&&(console.debug("add portal %s on portal %s location %s",this._coordsToOpportals.get(t).id,e.id,t),this._dirtyCoordsTable=!0),this._idToOpportals.set(e.id,e),this._coordsToOpportals.set(t,e),!0}return!1}updatePortal(e){return!!this._updatePortal(e)&&(this.update(!0),!0)}_updatePortal(e){const t=this.getPortal(e.id);if(t){if(!e.faked){if(e.lat!==t.lat||e.lng!==t.lng){console.warn("portal %s has moved, replacing by a fake at old location",t.id);const a=ee.fake(t.lat,t.lng,null,t.name);this._coordsToOpportals.delete(t.lat+"/"+t.lng),this._addPortal(a),this._swapPortal(t,a);for(const e of this.markers)e.portalId==t.id&&(e.portalId=a.id);return this._idToOpportals.delete(t.id),this._addPortal(e),!0}return t.name!=e.name&&(t.name=e.name,!0)}}else{const t=this.getPortalByLatLng(e.lat,e.lng);if(t){t.pureFaked||console.warn("update real portal %s by portal %s at location %s",t.id,e.id,e.lat+"/"+e.lng),this._coordsToOpportals.delete(e.lat+"/"+e.lng),this._addPortal(e),this._swapPortal(t,e);for(const a of this.markers)a.portalId==t.id&&(a.portalId=e.id);return this._idToOpportals.delete(t.id),!0}}return!1}addLink(e,t,a={}){if(console.assert(e&&t,"missing portal for link"),e.id===t.id)return console.debug("Operation: Ignoring link where source and target are the same portal."),null;this.addAnchor(e),this.addAnchor(t);const o=this.getLink(e,t),n=o&&a.replace?o:new q({fromPortalId:e.id,toPortalId:t.id});if(a.description&&(n.comment=a.description),a.order&&n.setOrder(a.order),a.color&&(n.color=a.color),o){if(!a.replace)return console.debug("Link Already Exists In Operation -> "+JSON.stringify(n)),o;this.update(!0),this.updateBlockers()}else this.links.push(n),this.update(!0),this.updateBlockers();return n}containsAnchor(e){if(0==this.anchors.length)return!1;for(const t of this.anchors)if(t==e)return!0;return!1}addAnchor(e){this._addPortal(e),this.containsAnchor(e.id)||this.anchors.push(e.id)}get fakedPortals(){const e=Array.from(this._idToOpportals.values()).filter((e=>e.faked));return e}_swapPortal(e,t){this.anchors=this.anchors.filter((function(t){return t!==e.id})),this.containsAnchor(t.id)||this.anchors.push(t.id);const a=[];for(const o of this.links)o.fromPortalId==e.id?o.toPortalId===t.id?(console.debug(`Operation: Removing link '${o.ID}' while swapping because it would create a link with the same source and target.`),a.push(o)):this.containsLinkFromTo(t.id,o.toPortalId)?(console.debug(`Operation: Removing link '${o.ID}' while swapping because it would duplicate an existing link in the operation.`),a.push(o)):o.fromPortalId=t.id:o.toPortalId==e.id&&(o.fromPortalId===t.id?(console.debug(`Operation: Removing link '${o.ID}' while swapping because it would create a link with the same source and target.`),a.push(o)):this.containsLinkFromTo(o.fromPortalId,t.id)?(console.debug(`Operation: Removing link '${o.ID}' while swapping because it would duplicate an existing link in the operation.`),a.push(o)):o.toPortalId=t.id);this.links=this.links.filter((e=>!a.includes(e)))}swapPortal(e,t){this._addPortal(t),this._swapPortal(e,t),this.update(!0),this.updateBlockers()}duplicateAnchor(e,t){const a=!this._batchmode;a&&this.startBatchMode();const o=this.getLinkListFromPortal(e);for(const a of o){let o=this.getPortal(a.fromPortalId),n=this.getPortal(a.toPortalId);o.id===e.id&&(o=t),n.id===e.id&&(n=t),this.addLink(o,n,{description:a.comment,order:a.order,color:a.color,replace:!1})}a&&this.endBatchMode()}addMarker(e,t,a={}){if(!t)return!1;this._addPortal(t);const o=new X({type:e,portalId:t.id});return a&&a.comment&&(o.comment=a.comment),a&&a.zone&&(o.zone=a.zone),a&&a.assign&&o.assign(a.assign),this.markers.push(o),this.update(!0),o.isDestructMarker()&&this.updateBlockers(),!0}assignMarker(e,t){for(const a of this.markers)a.ID==e&&(a.assign(t),this.update(!0))}assignLink(e,t){for(const a of this.links)a.ID==e&&(a.assign(t),this.update(!0))}clearAllItems(){this.anchors=[],this.links=[],this.markers=[],this._idToOpportals.clear(),this._coordsToOpportals.clear(),this.update(!0)}clearAllLinks(){this.links=[],this.cleanAnchorList(),this.cleanPortalList(),this.update(!0)}clearAllMarkers(){this.markers=[],this.cleanPortalList(),this.update(!0)}update(e=!0){!0!==this._batchmode&&(this.fetched&&e&&(this.localchanged=!0),this.store(),this.fire("update"))}updateBlockers(){!0!==this._batchmode&&this.fire("blockers")}startBatchMode(){this._batchmode=!0}endBatchMode(){this._batchmode=!1,this.update(!0),this.updateBlockers()}convertLinksToObjs(e){const t=[];if(!e||0==e.length)return t;for(const a of e)t.push(new q(a));return t}convertMarkersToObjs(e){const t=[];if(!e||0==e.length)return t;if(e)for(const a of e)t.push(new X(a));return t}convertPortalsToObjs(e){const t=[];if(!e||0==e.length)return t;for(const a of e)if(a instanceof ee)t.push(a);else{const e=new ee(a);t.push(e)}return t}convertZonesToObjs(e){if(!e||0==e.length)return[{id:1,name:"Primary",color:"purple"},{id:2,name:"Secondary",color:"yellow"}].map((e=>new te(e)));const t=[];for(const a of e)if(a instanceof te)t.push(a);else{const e=new te(a);t.push(e)}return t}get mbr(){if(0==this._idToOpportals.size)return null;const e=[],t=[];for(const a of this.anchors){const o=this.getPortal(a);e.push(o.lat),t.push(o.lng)}for(const a of this.markers){const o=this.getPortal(a.portalId);e.push(o.lat),t.push(o.lng)}if(!e.length)return null;const a=Math.min.apply(null,e),o=Math.max.apply(null,e),n=Math.min.apply(null,t),i=Math.max.apply(null,t),r=L.latLng(a,n),s=L.latLng(o,i);return L.latLngBounds(r,s)}canWriteServer(){if(!this.isServerOp())return!1;if(!$.isLoggedIn())return!1;if(!this.isOnCurrentServer())return!1;const e=$.cacheGet();if(!e)return!1;if(e.id==this.creator)return!0;if(!e.Teams||0==e.Teams.length)return!1;for(const t of this.teamlist)if("write"==t.role)for(const a of e.Teams)if(t.teamid==a.ID)return!0;return!1}canWrite(){return"write"===this.getPermission()}getPermission(){if(!this.isServerOp())return"write";if(!$.isLoggedIn())return"write";if(!this.isOnCurrentServer())return"write";const e=$.cacheGet();if(!e)return"read";if(e.id==this.creator)return"write";const t=new Set(e.Teams.map((e=>e.ID)));for(const e of this.teamlist)if("write"==e.role&&t.has(e.teamid))return"write";for(const e of this.teamlist)if("read"==e.role&&t.has(e.teamid))return"read";return"assignonly"}isOnCurrentServer(){return this.isServerOp()&&this.server==ie()}isServerOp(){return!!this.fetched}isOwnedOp(){if(!this.isServerOp())return!0;if(!$.isLoggedIn())return!0;const e=$.cacheGet();return!!e&&e.id==this.creator}get nextOrder(){let e=0;for(const t of this.links)e=Math.max(e,t.order);for(const t of this.markers)e=Math.max(e,t.order);return++e}keyOnHand(e,t,a,o){"string"==typeof a&&(a=Number.parseInt(a,10));for(const n of this.keysonhand)if("string"==typeof n.onhand&&(n.onhand=Number.parseInt(n.onhand,10)),n.portalId==e&&n.gid==t)return n.onhand=a,n.capsule=o,void this.update(!1);const n={portalId:e,gid:t,onhand:a,capsule:o};this.keysonhand.push(n),this.update(!1)}KeysOnHandForPortal(e,t){let a=0;for(const o of this.keysonhand)o.portalId!==e||t&&t!==o.gid||(a+=o.onhand);return a}keysOnHandForPortalPerAgent(e){const t={};for(const a of this.keysonhand)a.portalId==e&&(a.gid in t||(t[a.gid]=0),t[a.gid]+=a.onhand);return t}KeysRequiredForPortal(e){let t=0;for(const a of this.links)a.toPortalId==e&&t++;return t}zoneName(e){if(0===e)return 0;for(const t of this.zones)if(t.id==e)return t.name;return e}getZone(e){for(const t of this.zones)if(t.id==e)return t;return null}setZone(e,t){e.zone=Number(t),this.update(!0)}removeZone(e){if(1!=e){for(const t of this.markers)t.zone==e&&(t.zone=1);for(const t of this.links)t.zone==e&&(t.zone=1);this.zones=this.zones.filter((t=>t.id!=e)),this.update(!0)}else console.log("cannot remove zone 1")}removeZonePoints(e){for(const t of this.zones)t.id==e&&(t.points=[]);this.update(!0)}renameZone(e,t){for(const a of this.zones)if(a.id==e){a.name=t;break}this.update(!0)}addZone(){const e=new Set;for(const t of this.zones)e.add(t.id);const t=Math.max(...e)+1;return this.zones.push(new te({id:t,name:`${t}`})),this.update(!0),t}addZonePoint(e,t){for(const a of this.zones)if(a.id==e){a.points.push({lat:t.lat,lng:t.lng,position:a.points.length});break}this.update(!0)}changes(e){const t=new _e(e||this.getFetchedOp()||{}),a=new Map(t.links.map((e=>[e.ID,e]))),o=new Map(t.markers.map((e=>[e.ID,e]))),n=new Map(this.links.map((e=>[e.ID,e]))),i=new Map(this.markers.map((e=>[e.ID,e])));if(t.name!=this.name)return!0;if(t.color!=this.color)return!0;if(t.comment!=this.comment)return!0;for(const[e,a]of this._idToOpportals)if(t._idToOpportals.has(e)){const o=t._idToOpportals.get(e);if(["comment","hardness"].filter((e=>o[e]!=a[e])).map((e=>[e,o[e]])).length>0)return!0}for(const e of a.keys())if(!n.has(e))return!0;for(const e of this.links){if(!a.has(e.ID))return!0;{const t=a.get(e.ID);if(["fromPortalId","toPortalId","color","zone","order","assignedTo","completedID","comment","state"].filter((a=>t[a]!=e[a])).map((e=>[e,t[e]])).length>0)return!0}}for(const e of o.keys())if(!i.has(e))return!0;for(const e of this.markers){if(!o.has(e.ID))return!0;{const t=o.get(e.ID);if(["type","zone","order","assignedTo","completedID","comment","state"].filter((a=>t[a]!=e[a])).map((e=>[e,t[e]])).length>0)return!0}}return!1}checkChanges(){return this.localchanged&&(this.localchanged=this.changes()),this.localchanged}mergeZones(e){const t=new Map;let a=0;for(const e of this.zones)t.set(e.id,e);for(const o of e.zones)t.has(o.id)||(this.zones.push(o),a+=1);return a}determineZone(e){this.zones.sort(((e,t)=>e.id-t.id));for(const t of this.zones)if(t.contains(e))return t.id;return 1}getOrderInfo(){const e=Array.from(this.links);e.sort(((e,t)=>e.order-t.order));const t=new Map,a=[];let o=0,n=0;const i=new Map,r=[];for(const s of e){i.has(s.fromPortalId)||i.set(s.fromPortalId,new Set),i.has(s.toPortalId)||i.set(s.toPortalId,new Set);const e=i.get(s.fromPortalId),l=i.get(s.toPortalId),c=new Set;for(const t of e)l.has(t)&&c.add(t);if(e.add(s.toPortalId),l.add(s.fromPortalId),s.order>0){const e=this.getPortal(s.fromPortalId),a=this.getPortal(s.toPortalId),i=[],l=[];for(const t of c){const o=this.getPortal(t);pe(o,e,a)>0?i.push(o):l.push(o)}if(i.length&&(o+=1),l.length&&(o+=1),i.length>1||l.length>1){let e=0;i.length>1&&(e+=i.length-1),l.length>1&&(e+=l.length-1),r.push([s,e]),n+=e}for(const o of c){const n=this.getPortal(o);for(const i of this.anchors)i===o||i===e.id||i===a.id||t.has(i)||me(e,a,n,this.getPortal(i))&&t.set(i,s)}}t.has(s.fromPortalId)&&a.push(s)}return{fieldCount:o,emptyFieldLinks:r,emptyCount:n,linksFromInner:a,coveredPortals:t}}}class we{constructor(e){if("string"==typeof e)return void console.trace("team waits for an object");let t=!1;"fetched"in e?this.fetched=e.fetched:(this.fetched=Date.now(),t=!0),this.id=e.id,this.name=e.name,this.rc=e.rc,this.rk=e.rk,this.jlt=e.jlt,this.vt=e.vt,this.vr=e.vr,this.agents=e.agents.map((e=>new H({...e,fetched:this.fetched}))),t&&this._updateCache()}async _updateCache(){try{await(await G).put("teams",this)}catch(e){console.error(e)}}static async get(e){return await(await G).get("teams",e)}}let Te=b.strings;const be=b.constants.DEFAULT_LANGUAGE,Ae=b.constants.LANGUAGE_KEY,Le=/\{ *([\w_ -]+) *\}/g;function ke(e,t){const a=function(){window.plugin.wasabee.skin&&window.plugin.wasabee.skin.strings&&(Te=window.plugin.wasabee.skin.strings);let e=localStorage[Ae];return e||(e=be,localStorage[Ae]=be,console.log("no language set, using default")),Te[e]||(e=be,localStorage[Ae]=be,console.log("invalid language set, changing to default")),e}();window.plugin.wasabee.skin&&window.plugin.wasabee.skin.strings&&(Te=window.plugin.wasabee.skin.strings);let o=null;Te[a]&&Te[a][e]&&(o=Te[a][e]),!o&&Te[be]&&Te[be][e]&&(o=Te[be][e]);let n=!1;return window.plugin.userLocation&&(n=!0),n&&Te[a]&&Te[a].smallScreen&&Te[a].smallScreen[e]&&(o=Te[a].smallScreen[e]),o||(o=`${e} not in ${a} or ${be}`),t?o.replace(Le,(function(e,a){const o=t[a];return void 0===o?`{${a}}`:""+o})):o}const Se=ke;function ve(e,t){return window.dialog({title:"Wasabee info",text:t?null:e.toString(),html:t?e:null})}function Oe(e,t){return window.dialog({title:"Wasabee warning",text:t?null:e.toString(),html:t?e:null})}function De(e){return window.dialog({title:"Wasabee error",text:e.toString()})}class Ne{constructor(e){this.code=e.code,this.text=e.text,this.error=e.error,this.code||(this.code=-1,this.text="Unknown error")}toString(){switch(this.code){case 401:return this.error?Se("NOT LOGGED IN",this):Se("NOT LOGGED IN SHORT");case 403:return this.error?Se("PERM DENIED",this):Se("PERM DENIED SHORT");case 410:return this.error?Se("NO LONGER AVAILABLE",this):Se("NO LONGER AVAILABLE SHORT");case 412:return this.error?"Mismatch version: "+this.error:"Mismatch version";default:return this.error?this.text+": "+this.error:this.text}}}function Ce(e){localStorage[window.plugin.wasabee.static.constants.SELECTED_OP_KEY]=e}function ye(){return localStorage[window.plugin.wasabee.static.constants.SELECTED_OP_KEY]}function Re(){return window.plugin.wasabee._selectedOp}async function Ie(){const e=Re(),t=await Be();return t.includes(e.ID)||(0==t.length?await Me():await Pe(t[t.length-1])),Re()}async function Me(){const e=new _e({creator:PLAYER.nickname,name:Se("DEFAULT OP NAME",{date:(new Date).toUTCString()})});return await e.store(),await Pe(e.ID),Re()}async function Pe(e){let t;null!=window.plugin.wasabee._selectedOp&&(t=window.plugin.wasabee._selectedOp.ID,e==window.plugin.wasabee._selectedOp.ID?console.log("makeSelectedOperation called on the current op; replacing with version from local store. not saving live changes first"):(await Be()).includes(window.plugin.wasabee._selectedOp.ID)&&await window.plugin.wasabee._selectedOp.store());const a=await _e.load(e);if(null==a)return console.log("makeSelectedOperation called on invalid opID"),void De("attempted to load invalid opID");a.on("update",(()=>window.map.fire("wasabee:op:change"))),a.on("blockers",(()=>window.map.fire("wasabee:crosslinks"))),a.on("corrupt",(e=>Oe(`Oops, something went wrong and OP ${a.name} got corrupted. Fix by removing ${e.portals} missing portals and ${e.links} links and ${e.markers} markers. Please check your OP and report to the devs.`))),delete window.plugin.wasabee._selectedOp,window.plugin.wasabee._selectedOp=a,function(e){Ee=e}(a),Ce(window.plugin.wasabee._selectedOp.ID),t!==e?window.map.fire("wasabee:op:select",{previous:t,current:e}):window.map.fire("wasabee:op:change"),window.map.fire("wasabee:crosslinks")}async function xe(e){await _e.delete(e),z.removeBlockers(e),window.map.fire("wasabee:op:delete",e)}function Ue(){try{const e=localStorage[window.plugin.wasabee.static.constants.OPS_LIST_HIDDEN_KEY];return JSON.parse(e)}catch{return[]}}async function Be(e=!0){let t=[];try{const e=localStorage[window.plugin.wasabee.static.constants.OPS_LIST_KEY];t=JSON.parse(e),t=t.filter((e=>localStorage[e]))}catch{}const a=await window.plugin.wasabee.idb.getAllKeys("operations");for(const e of a)t.includes(e)||t.push(e);if(!e){const e=Ue();return t.filter((t=>!e.includes(t)))}return t}async function Ke(e){let t=null;return t=e==window.plugin.wasabee._selectedOp.ID?window.plugin.wasabee._selectedOp:await _e.load(e),t=new _e({name:t.name+" "+(new Date).toUTCString(),creator:window.PLAYER.nickname,opportals:t.opportals,links:t.links,markers:t.markers,color:t.color,comment:t.comment,zones:t.zones,referencetime:t.referencetime}),await t.store(),t}async function Ge(e){if(e.GID){for(const t of await Be()){const a=await _e.load(t);(!a||a.isServerOp()&&a.creator!==e.GID)&&(await _e.delete(t),z.removeBlockers(t))}await Ie()}}function He(e){if(e&&e.options&&e.options.data&&e.options.guid){const t=e.options.data,a=e.options.guid;if(t.title)return new ee({id:a,name:t.title,lat:(t.latE6/1e6).toFixed(6),lng:(t.lngE6/1e6).toFixed(6)});if(t.latE6)return ee.fake((t.latE6/1e6).toFixed(6),(t.lngE6/1e6).toFixed(6),a)}return null}function ze(e){return window.portals[e.id]&&window.portals[e.id].options.data?window.portals[e.id].options.data.team:""}function Fe(e){return e.pureFaked?Se("FAKED",{portalId:e.id}):e.loading?Se("LOADING1",{portalGuid:e.id}):e.name}function We(e,t=!1){const a=e.latLng,o=`${e.lat},${e.lng}`,n=Fe(e),i=L.DomUtil.create("a","wasabee-portal");!0===t&&e.name.length>12?i.textContent=n.slice(0,8)+"...":i.textContent=n;const r=ze(e);return"E"==r&&i.classList.add("enl"),"R"==r&&i.classList.add("res"),"M"==r&&i.classList.add("mac"),"N"==r&&i.classList.add("unclaimed"),i.href=`/intel?ll=${o}&pll=${o}`,L.DomEvent.on(i,"click",(t=>(window.selectedPortal!=e.id&&35==e.id.length?window.renderPortalDetails(e.id):window.map.panTo(a),t.preventDefault(),!1))).on(i,"dblclick",(t=>(window.selectedPortal!=e.id&&35==e.id.length&&window.renderPortalDetails(e.id),window.map.getBounds().contains(a)?window.zoomToAndShowPortal(e.id,a):window.map.panTo(a),t.preventDefault(),!1))),i}function Ye(e){return He(window.portals[e])}function Ze(){return window.selectedPortal?Ye(window.selectedPortal):null}function qe(e){const t=window.map.getBounds(),a=[];for(const o in window.portals)if(t.contains(window.portals[o].getLatLng())){if(e.containsMarkerByID(window.portals[o].options.guid,X.constants.MARKER_TYPE_EXCLUDE))continue;const t=He(window.portals[o]);t&&a.push(t)}return a}function Ve(e){if(!e.portal.options.data.title)return;const t=Re(),a=He(e.portal);t.updatePortal(a),z.updatePortal(t,a).then((e=>{e&&window.map.fire("wasabee:crosslinks:update")}))}function je(e){if(!e.success)return;const t=new ee({id:e.guid,name:e.details.title,lat:(e.details.latE6/1e6).toFixed(6),lng:(e.details.lngE6/1e6).toFixed(6)}),a=Re();a.updatePortal(t),z.updatePortal(a,t).then((e=>{e&&window.map.fire("wasabee:crosslinks:update")}))}function Qe(e){Array.isArray(e)?window.plugin.wasabee.portalDetailQueue=window.plugin.wasabee.portalDetailQueue.concat(e):window.plugin.wasabee.portalDetailQueue.push(e);const t=localStorage[window.plugin.wasabee.static.constants.PORTAL_DETAIL_RATE_KEY]||1e3;window.plugin.wasabee.portalDetailIntervalID||(window.plugin.wasabee.portalDetailIntervalID=window.setInterval(Je,t),console.log("starting portal details request queue: "+window.plugin.wasabee.portalDetailIntervalID))}function Je(){const e=window.plugin.wasabee.portalDetailQueue.shift();if(void 0===e)return console.debug("closing portal details request queue: "+window.plugin.wasabee.portalDetailIntervalID),window.clearInterval(window.plugin.wasabee.portalDetailIntervalID),void(window.plugin.wasabee.portalDetailIntervalID=null);35==e.length&&window.portalDetail.request(e)}function Xe(e,t=!1){if("true"!==(localStorage[window.plugin.wasabee.static.constants.AUTO_LOAD_FAKED]||!1)&&!t)return;const a=[];for(const t of e.fakedPortals)a.push(t.id);a.length>0&&Qe(a)}async function $e(e,t=!1){if("true"!==(localStorage[window.plugin.wasabee.static.constants.AUTO_LOAD_FAKED]||!1)&&!t)return;const a=(await z.getPortals(e)).filter((e=>e.id===e.name)).map((e=>e.id));a.length>0&&Qe(a)}function et(e,t,a){if(ge(t.getLatLngs(),e.getLatLngs(a))){if(!a.markers||0==a.markers.length)return!0;for(const e of a.markers)if(!(e.type!=X.constants.MARKER_TYPE_DESTROY&&e.type!=X.constants.MARKER_TYPE_VIRUS&&e.type!=X.constants.MARKER_TYPE_DECAY||e.portalId!=t.options.data.dGuid&&e.portalId!=t.options.data.oGuid))return!1;return!0}return!1}function tt(e){const t=L.geodesicPolyline(e.getLatLngs(),{color:"#d22",opacity:.7,weight:5,interactive:!1,dashArray:[8,8],guid:e.options.guid});t.addTo(window.plugin.wasabee.crossLinkLayers),window.plugin.wasabee._crosslinkCache.set(e.options.guid,t)}function at(e,t){if(!window.plugin.wasabee._crosslinkCache.has(e.options.guid))for(const a of t.links)if(et(a,e,t)){tt(e);let a=t.getPortal(e.options.data.oGuid)||Ye(e.options.data.oGuid);a||(a=ee.fake((e.options.data.oLatE6/1e6).toFixed(6),(e.options.data.oLngE6/1e6).toFixed(6),e.options.data.oGuid));let o=t.getPortal(e.options.data.dGuid)||Ye(e.options.data.dGuid);o||(o=ee.fake((e.options.data.dLatE6/1e6).toFixed(6),(e.options.data.dLngE6/1e6).toFixed(6),e.options.data.dGuid)),z.addBlocker(t,a,o);break}}function ot(e,t){for(const a of t.links)if(e.ID!=a.ID&&ge(a.getLatLngs(t),e.getLatLngs(t)))return!0;return!1}function nt(){if(!1===window.isLayerGroupDisplayed("Wasabee Cross Links"))return;const e=Re();if(window.plugin.wasabee.crossLinkLayers.clearLayers(),window.plugin.wasabee._crosslinkCache.clear(),!e.links||0==e.links.length)return;const t=function*(){const e=Object.getOwnPropertyNames(window.links);for(const t of e)null!=window.links[t]&&(yield window.links[t])}();for(const a of t)at(a,e);for(const t of e.links)if(ot(t,e)){const a=L.geodesicPolyline(t.getLatLngs(e),window.plugin.wasabee.skin.selfBlockStyle);a.options.interactive=!1,a.addTo(window.plugin.wasabee.crossLinkLayers)}window.map.fire("wasabee:crosslinks:done")}function it(e){at(e.link,Re())}function rt(){window.removeHook("linkAdded",it)}function st(){!1!==window.isLayerGroupDisplayed("Wasabee Cross Links")&&(window.plugin.wasabee.crossLinkLayers.bringToFront(),nt(),window.addHook("linkAdded",it))}const lt=new MessageChannel,ct=lt.port1;function dt(e){"analytics"===e.id&&"true"!==localStorage[w.SEND_ANALYTICS_KEY]||"analytics"!==e.id&&"true"===localStorage[w.FIREBASE_DISABLE]||("wasabeeLogin"==e.id&&(e.server=ie(),e.jwt=_t()),e.app_name="Wasabee-IITC",e.app_version=window.plugin.wasabee.info.version,ct.postMessage(e))}async function ut(e,t=86400){const a=await H.get(e);if(a&&a.fetched>Date.now()-1e3*t)return new H(a);if(!$.isLoggedIn())return null;try{const t=await(o=e,It(`/api/v1/agent/${o}`));return new H(t)}catch(e){console.error(e)}var o;return null}async function pt(e,t){const a=$.localGet();if(null===a||null==a.fetched||a.fetched<$.maxCacheAge()||e)try{const e=await It("/api/v1/me");new $(e).store()}catch(a){if(e&&!t)throw a}return $.localGet()}async function mt(e,t=60){const a=await we.get(e);if(a){const e=new we(a);if(e.fetched>Date.now()-1e3*t)return e}if(!$.isLoggedIn())return null;try{const t=await(o=e,It(`/api/v1/team/${o}`));return new we(t)}catch(e){console.error(e)}var o;return null}async function ht(e,t=60){const a=[],o=[];for(const n of e){const e=await we.get(n);if(e){const o=new we(e);if(o.fetched>Date.now()-1e3*t){a.push(o);continue}}o.push(n)}if(!$.isLoggedIn())return[];if(o.length)try{const e=await function(e){return Mt("/api/v1/teams",JSON.stringify({teamids:e}),"application/json")}(o);for(const t of e)a.push(new we(t))}catch(e){console.error(e)}return a}const gt="wasabee-jwt";function ft(e){localStorage[gt]=e}function Et(){localStorage.removeItem(gt)}function _t(){return localStorage.getItem(gt)}async function wt(e){const t=await(a=e,Mt("/aptok",JSON.stringify({accessToken:a}),"application/json;charset=UTF-8"));var a;return t&&t.jwt&&ft(t.jwt),t?new $(t):pt(!0)}const Tt={};function bt(){Tt.client=google.accounts.oauth2.initTokenClient({client_id:window.plugin.wasabee.static.constants.OAUTH_CLIENT_ID,scope:"email profile openid",callback:e=>{const{resolve:t,reject:a}=Tt;if(delete Tt.resolve,delete Tt.reject,t&&a)return e.error?a(e):t(e.access_token)}})}function At(e=!1){return new Promise(((t,a)=>{Tt.resolve=t,Tt.reject=a,Tt.client.requestAccessToken({prompt:e?"consent":""})})).catch((t=>(dt({id:"exception",error:t.error}),"idpiframe_initialization_failed"===t.error?Promise.reject("You need enable cookies or allow [*.]google.com"):e||"user_logged_out"!=t.error&&"immediate_failed"!=t.error?void 0:At(!0))))}function Lt(e=!1){const t=crypto.randomUUID(),a=`https://accounts.google.com/o/oauth2/v2/auth?client_id=${window.plugin.wasabee.static.constants.OAUTH_CLIENT_ID}&redirect_uri=https%3A//intel.ingress.com&response_type=token&scope=profile&access_type=online&state=${t}`;return e?{state:t,url:a+"&prompt=select_account"}:{state:t,url:a}}function kt(){if(window.plugin&&window.plugin.wasabee){let e=localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY];return null==e&&(e=window.plugin.wasabee.static.constants.SERVER_BASE_DEFAULT,localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY]=e),e}return""}function St(e){(e=e.trim()).startsWith("http")||(e="https://"+e),e.endsWith("/")&&(e=e.slice(0,-1)),localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY]=e}function vt(e,t){return It(`/api/v1/me?lat=${e}&lon=${t}`)}function Ot(e,t,a){const o=new FormData;return o.append("name",e),o.append("faction",t),o.append("qt",a),Pt("/api/v1/me/intelid",o)}function Dt(e,t,a="ad hoc"){return Mt(`/api/v1/agent/${e}/target`,JSON.stringify({Name:t.name,Lat:t.lat,Lng:t.lng,ID:t.id,Type:a}),"application/json;charset=UTF-8")}async function Nt(e){let t="Sat, 29 Oct 1994 19:43:31 GMT";const a=await _e.load(e);null!=a&&a.fetched&&(t=a.fetched);try{const o=await Rt({url:`/api/v1/draw/${e}`,method:"GET",headers:a?a.lasteditid?{"If-None-Match":a.lasteditid}:{"If-Modified-Since":t}:null}),n=new _e(o);return n.localchanged=!1,n.server=kt(),n.fetchedOp=JSON.stringify(o),n.fetched=(new Date).toUTCString(),n}catch(t){if(!(t instanceof Ne))return console.error(t),Promise.reject(new Ne({code:-1,text:`Unexpected error: ${t}`}));switch(t.code){case 304:return a.server=kt(),a;case 403:case 410:await xe(e);default:return Promise.reject(t)}}}function Ct(e,t){return It(`/api/v1/draw/${e}/link/${t}`)}function yt(e,t){return It(`/api/v1/draw/${e}/marker/${t}`)}async function Rt(e){const t={method:e.method,mode:"cors",cache:"default",credentials:"include",redirect:"manual",referrerPolicy:"origin",headers:{}};if(e.body&&(t.body=e.body),e.headers&&(t.headers=e.headers),e.url.startsWith("/api")){const e=_t();e&&(t.headers.Authorization=`Bearer ${e}`)}try{const a=await fetch(kt()+e.url,t),o=await a.text();let n;if(!e.raw){if(!o&&!e.retried){if(a.ok)return console.warn(`server answer is empty on[${e.url}], retry once, just in case `),Rt({...e,retried:!0});if("opaqueredirect"===a.type&&0===a.status)return console.warn(`server answer is a redirect on[${e.url}], retry once, just in case `),Rt({...e,retried:!0})}try{n=JSON.parse(o)}catch{if(a.ok)return Promise.reject(new Ne({code:-1,text:"unexpected server answer"}))}}switch(a.status){case 200:return!e.raw&&n.updateID&&(window.plugin&&window.plugin.wasabee?window.plugin.wasabee._updateList:window.wasabeewebui._updateList).set(n.updateID,Date.now()),Promise.resolve(e.raw?o:n);case 401:$.purge();default:return Promise.reject(new Ne({code:a.status,text:a.statusText,error:n?n.error:null}))}}catch(e){return console.error(e),Promise.reject(new Ne({code:-1,text:"Network error"}))}}function It(e){return Rt({method:"GET",url:e})}function Mt(e,t,a){return Rt({url:e,method:"POST",body:t,headers:a?{"Content-Type":a}:null})}function Pt(e,t){return Rt({url:e,method:"PUT",body:t})}function xt(e,t){return Rt({url:e,method:"DELETE",body:t})}const Ut=L.Class.extend({initialize:function(e){this._map=e,this._pane=e._panes.tooltipPane,this._container=L.DomUtil.create("div","wasabee-tooltip",this._pane),L.DomUtil.addClass(this._container,"wasabee-tooltip-single"),window.map.on("mousemove",this._onMouseMove,this)},dispose:function(){window.map.off("mousemove",this._onMouseMove,this),this._pane.removeChild(this._container),this._container=null},updateContent:function(e,t){return t&&e instanceof Node?this._container.replaceChildren(e):this._container.textContent=e,this},_onMouseMove:function(e){e.layerPoint&&L.DomUtil.setPosition(this._container,e.layerPoint)},updatePosition:function(e){const t=this._map.latLngToLayerPoint(e);return L.DomUtil.setPosition(this._container,t),this},showAsError:function(){return L.DomUtil.addClass(this._container,"wasabee-error-tooltip"),this},removeError:function(){return L.DomUtil.removeClass(this._container,"wasabee-error-tooltip"),this}}),Bt=L.Handler.extend({options:{paneId:"wasabee",paneName:"Wasabee",default:null},initialize:function(e){L.setOptions(this,e),window.useAndroidPanes()&&android.addPane(this.options.paneId,this.options.paneName),window.addHook("paneChanged",(e=>{e===this.options.paneId?this.enable():this.disable()})),this._container=L.DomUtil.create("div","wasabee-pane hidden",document.body),window.map.on("wasabee:pane:set",(e=>{e.pane===this.options.paneId&&(this._dialog&&this._dialog.closeDialog(),this._dialog=e.dialog,this._container.textContent="",this._container.appendChild(this._dialog._container),window.show(e.pane))})),window.map.on("wasabee:pane:clear",(e=>{e.pane===this.options.paneId&&this._dialog===e.dialog&&delete this._dialog}))},addHooks:function(){this._container.classList.remove("hidden"),!this._dialog&&this.options.default&&this.options.default().enable()},removeHooks:function(){this._container.classList.add("hidden")}}),Kt=L.Handler.extend({statics:{TYPE:"Unextended Wasabee Dialog"},needWritePermission:!1,options:{usePane:!1,paneId:"wasabee"},initialize:function(e){L.setOptions(this,e),this._smallScreen=this._isMobile(),window.map.fire("wdialog",{dialogType:this.constructor.TYPE}),this.options.usePane=this.options.usePane&&window.isSmartphone()&&"true"===localStorage[window.plugin.wasabee.static.constants.USE_PANES]},addHooks:function(){window.map.on("wasabee:ui:skin",this.update,this),window.map.on("wasabee:ui:lang",this.update,this),window.map.on("wasabee:op:change wasabee:op:select",Kt.prototype.onOpChange,this)},removeHooks:function(){window.map.off("wasabee:ui:skin",this.update,this),window.map.off("wasabee:ui:lang",this.update,this),window.map.off("wasabee:op:change wasabee:op:select",Kt.prototype.onOpChange,this)},onOpChange:function(){if(this.needWritePermission){const e=window.plugin.wasabee._selectedOp;e&&e.canWrite()||this._dialog&&this.closeDialog()}},enable:function(){if(this.needWritePermission){const e=window.plugin.wasabee._selectedOp;if(!e||!e.canWrite())return}L.Handler.prototype.enable.call(this)},update:function(){},createDialog:function(e){if(this.options.title=e.title,e.dialogClass="wasabee-dialog wasabee-dialog-"+e.dialogClass,this._smallScreen&&(e.dialogClass+=" wasabee-small-screen"),this.options.usePane){if(this._container=L.DomUtil.create("div",e.dialogClass),e.id&&(this._container.id=e.id),this._header=L.DomUtil.create("div","header",this._container),e.title&&(this._header.textContent=e.title),this._content=L.DomUtil.create("div","content",this._container),e.html&&this._content.appendChild(e.html),this._buttons=L.DomUtil.create("div","buttonset",this._container),e.buttons){e.buttons instanceof Array||(e.buttons=Object.entries(e.buttons).map((([e,t])=>({text:e,click:t}))));for(const t of e.buttons){const e=L.DomUtil.create("button",null,this._buttons);e.textContent=t.text,L.DomEvent.on(e,"click",t.click)}}window.map.fire("wasabee:pane:set",{pane:this.options.paneId,dialog:this})}else{if(e.closeCallback||(e.closeCallback=()=>{this.disable(),delete this._dialog}),window.isSmartphone()&&!e.autofocus&&e.html instanceof HTMLElement){const t=L.DomUtil.create("input");t.autofocus=!0,t.type="hidden",e.html.appendChild(t)}this._dialog=window.dialog(e),e.buttons&&this._dialog.dialog("option","buttons",e.buttons)}},setTitle:function(e){this._dialog?this._dialog.dialog("option","title",e):this._header&&(this._header.textContent=e)},setContent:function(e){this._dialog?this._dialog.html(e):this._container&&(this._content.textContent="",this._content.appendChild(e))},closeDialog:function(){this._dialog?(this._dialog.dialog("close"),delete this._dialog):this._container&&(window.map.fire("wasabee:pane:clear",{pane:this.options.paneId,dialog:this}),this.disable(),delete this._container,window.show("map"))},_isMobile:function(){return!!window.plugin.userLocation}}),Gt=L.Control.extend({onAdd:function(){for(const e of this.options.buttons.values())e.setControl(this);const e=L.DomUtil.create("div","wasabee-buttons");return e.appendChild(this.options.container),window.map.on("wasabee:login wasabee:logout",this.update,this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),e},onRemove:function(){window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:login wasabee:logout",this.update,this)},update:function(){for(const e of this.options.buttons.values())e.update()},disableAllExcept:function(e){for(const[t,a]of this.options.buttons)t!=e&&a.disable()}}),Ht=L.Class.extend({statics:{TYPE:"unextendedWButton"},_enabled:!1,title:"Unset",needWritePermission:!1,initialize:function(e){console.log("WButton init"),this.type=Ht.TYPE,this.title="Unextended WButton",this._container=e,this.handler=this._toggleActions},update:function(){if(!this.button||!this.needWritePermission)return;const e=window.plugin.wasabee._selectedOp;e&&e.canWrite()?this.button.style.display="block":this.button.style.display="none"},_toggleActions:function(){this._enabled?this.disable():this.enable()},setControl:function(e){this.control=e},disable:function(){this._enabled&&(this._enabled=!1,this.actionsContainer&&(this.actionsContainer.style.display="none"))},enable:function(){this._enabled||(this.control&&this.control.disableAllExcept(this.type),this._enabled=!0,this.actionsContainer&&(this.actionsContainer.style.display="block"))},setSubActions:function(e){this.actionsContainer||(this.actionsContainer=L.DomUtil.create("ul","wasabee-actions",this._container)),this.actionsContainer.textContent="";for(const t of e){const e=L.DomUtil.create("li","wasabee-subactions",this.actionsContainer);this._createButton({...t,container:e})}},_createButton:function(e){const t=L.DomUtil.create("a",e.className||"",e.container);if(e.text&&(t.innerHTML=e.text),e.html&&t.appendChild(e.html),e.accesskey&&(t.accessKey=e.accesskey),e.buttonImage){const a=L.DomUtil.create("img","wasabee-actions-image",t);a.id=this.type,a.src=e.buttonImage}return e.title&&(t.title=e.title),L.DomEvent.disableClickPropagation(t),L.DomEvent.on(t,"click",e.callback,e.context),t}});var zt=a(818),Ft=a.n(zt);function Wt(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function Yt(e){for(var t=1;te.length)&&(t=e.length);for(var a=0,o=new Array(t);a0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function za(e){for(var t=[],a=(e||[]).length>>>0;a--;)t[a]=e[a];return t}function Fa(e){return e.classList?za(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function Wa(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Ya(e){return Object.keys(e||{}).reduce((function(t,a){return t+"".concat(a,": ").concat(e[a].trim(),";")}),"")}function Za(e){return e.size!==Ga.size||e.x!==Ga.x||e.y!==Ga.y||e.rotate!==Ga.rotate||e.flipX||e.flipY}function qa(){var e="fa",t=pa,a=Ua.familyPrefix,o=Ua.replacementClass,n=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';if(a!==e||o!==t){var i=new RegExp("\\.".concat(e,"\\-"),"g"),r=new RegExp("\\--".concat(e,"\\-"),"g"),s=new RegExp("\\.".concat(t),"g");n=n.replace(i,".".concat(a,"-")).replace(r,"--".concat(a,"-")).replace(s,".".concat(o))}return n}var Va=!1;function ja(){Ua.autoAddCss&&!Va&&(function(e){if(e&&da){var t=sa.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var a=sa.head.childNodes,o=null,n=a.length-1;n>-1;n--){var i=a[n],r=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(r)>-1&&(o=i)}sa.head.insertBefore(t,o)}}(qa()),Va=!0)}var Qa={mixout:function(){return{dom:{css:qa,insertCss:ja}}},hooks:function(){return{beforeDOMElementCreation:function(){ja()},beforeI2svg:function(){ja()}}}},Ja=ra||{};Ja.___FONT_AWESOME___||(Ja.___FONT_AWESOME___={}),Ja.___FONT_AWESOME___.styles||(Ja.___FONT_AWESOME___.styles={}),Ja.___FONT_AWESOME___.hooks||(Ja.___FONT_AWESOME___.hooks={}),Ja.___FONT_AWESOME___.shims||(Ja.___FONT_AWESOME___.shims=[]);var Xa=Ja.___FONT_AWESOME___,$a=[],eo=!1;function to(e){da&&(eo?setTimeout(e,0):$a.push(e))}function ao(e){var t=e.tag,a=e.attributes,o=void 0===a?{}:a,n=e.children,i=void 0===n?[]:n;return"string"==typeof e?Wa(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,a){return t+"".concat(a,'="').concat(Wa(e[a]),'" ')}),"").trim()}(o),">").concat(i.map(ao).join(""),"")}function oo(e,t,a){if(e&&e[t]&&e[t][a])return{prefix:t,iconName:a,icon:e[t][a]}}da&&((eo=(sa.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(sa.readyState))||sa.addEventListener("DOMContentLoaded",(function e(){sa.removeEventListener("DOMContentLoaded",e),eo=1,$a.map((function(e){return e()}))})));var no=function(e,t,a,o){var n,i,r,s=Object.keys(e),l=s.length,c=void 0!==o?function(e,t){return function(a,o,n,i){return e.call(t,a,o,n,i)}}(t,o):t;for(void 0===a?(n=1,r=e[s[0]]):(n=0,r=a);n=55296&&n<=56319&&a2&&void 0!==arguments[2]?arguments[2]:{},o=a.skipHooks,n=void 0!==o&&o,i=ro(t);"function"!=typeof Xa.hooks.addPack||n?Xa.styles[e]=Yt(Yt({},Xa.styles[e]||{}),i):Xa.hooks.addPack(e,ro(t)),"fas"===e&&so("fa",t)}var lo=Xa.styles,co=Xa.shims,uo=Object.values(Aa),po=null,mo={},ho={},go={},fo={},Eo={},_o=Object.keys(Ta);function wo(e,t){var a,o=t.split("-"),n=o[0],i=o.slice(1).join("-");return n!==e||""===i||(a=i,~Ma.indexOf(a))?null:i}var To,bo=function(){var e=function(e){return no(lo,(function(t,a,o){return t[o]=no(a,e,{}),t}),{})};mo=e((function(e,t,a){return t[3]&&(e[t[3]]=a),t[2]&&t[2].filter((function(e){return"number"==typeof e})).forEach((function(t){e[t.toString(16)]=a})),e})),ho=e((function(e,t,a){return e[a]=a,t[2]&&t[2].filter((function(e){return"string"==typeof e})).forEach((function(t){e[t]=a})),e})),Eo=e((function(e,t,a){var o=t[2];return e[a]=a,o.forEach((function(t){e[t]=a})),e}));var t="far"in lo||Ua.autoFetchSvg,a=no(co,(function(e,a){var o=a[0],n=a[1],i=a[2];return"far"!==n||t||(n="fas"),"string"==typeof o&&(e.names[o]={prefix:n,iconName:i}),"number"==typeof o&&(e.unicodes[o.toString(16)]={prefix:n,iconName:i}),e}),{names:{},unicodes:{}});go=a.names,fo=a.unicodes,po=vo(Ua.styleDefault)};function Ao(e,t){return(mo[e]||{})[t]}function Lo(e,t){return(Eo[e]||{})[t]}function ko(e){return go[e]||{prefix:null,iconName:null}}function So(){return po}function vo(e){var t=ba[e]||ba[Ta[e]],a=e in Xa.styles?e:null;return t||a||null}function Oo(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.skipLookups,o=void 0!==a&&a,n=null,i=e.reduce((function(e,t){var a=wo(Ua.familyPrefix,t);if(lo[t]?(t=uo.includes(t)?La[t]:t,n=t,e.prefix=t):_o.indexOf(t)>-1?(n=t,e.prefix=vo(t)):a?e.iconName=a:t!==Ua.replacementClass&&e.rest.push(t),!o&&e.prefix&&e.iconName){var i="fa"===n?ko(e.iconName):{},r=Lo(e.prefix,e.iconName);i.prefix&&(n=null),e.iconName=i.iconName||r||e.iconName,e.prefix=i.prefix||e.prefix,"far"!==e.prefix||lo.far||!lo.fas||Ua.autoFetchSvg||(e.prefix="fas")}return e}),{prefix:null,iconName:null,rest:[]});return"fa"!==i.prefix&&"fa"!==n||(i.prefix=So()||"fas"),i}To=function(e){po=vo(e.styleDefault)},Ba.push(To),bo();var Do=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,a;return t=e,a=[{key:"add",value:function(){for(var e=this,t=arguments.length,a=new Array(t),o=0;o0&&s.forEach((function(t){"string"==typeof t&&(e[n][t]=r)})),e[n][i]=r})),e}}],a&&qt(t.prototype,a),Object.defineProperty(t,"prototype",{writable:!1}),e}(),No=[],Co={},yo={},Ro=Object.keys(yo);function Io(e,t){for(var a=arguments.length,o=new Array(a>2?a-2:0),n=2;n1?t-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{};return da?(Mo("beforeI2svg",e),Po("pseudoElements2svg",e),Po("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot;!1===Ua.autoReplaceSvg&&(Ua.autoReplaceSvg=!0),Ua.observeMutations=!0,to((function(){Go({autoReplaceSvgRoot:t}),Mo("watch",e)}))}},Ko={noAuto:function(){Ua.autoReplaceSvg=!1,Ua.observeMutations=!1,Mo("noAuto")},config:Ua,dom:Bo,parse:{icon:function(e){if(null===e)return null;if("object"===Zt(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Lo(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],a=vo(e[0]);return{prefix:a,iconName:Lo(a,t)||t}}if("string"==typeof e&&(e.indexOf("".concat(Ua.familyPrefix,"-"))>-1||e.match(ka))){var o=Oo(e.split(" "),{skipLookups:!0});return{prefix:o.prefix||So(),iconName:Lo(o.prefix,o.iconName)||o.iconName}}if("string"==typeof e){var n=So();return{prefix:n,iconName:Lo(n,e)||e}}}},library:Uo,findIconDefinition:xo,toHtml:ao},Go=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot,a=void 0===t?sa:t;(Object.keys(Xa.styles).length>0||Ua.autoFetchSvg)&&da&&Ua.autoReplaceSvg&&Ko.dom.i2svg({node:a})};function Ho(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return ao(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(da){var t=sa.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function zo(e){var t=e.icons,a=t.main,o=t.mask,n=e.prefix,i=e.iconName,r=e.transform,s=e.symbol,l=e.title,c=e.maskId,d=e.titleId,u=e.extra,p=e.watchable,m=void 0!==p&&p,h=o.found?o:a,g=h.width,f=h.height,E="fak"===n,_=[Ua.replacementClass,i?"".concat(Ua.familyPrefix,"-").concat(i):""].filter((function(e){return-1===u.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(u.classes).join(" "),w={children:[],attributes:Yt(Yt({},u.attributes),{},{"data-prefix":n,"data-icon":i,class:_,role:u.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(g," ").concat(f)})},T=E&&!~u.classes.indexOf("fa-fw")?{width:"".concat(g/f*16*.0625,"em")}:{};m&&(w.attributes[ma]=""),l&&(w.children.push({tag:"title",attributes:{id:w.attributes["aria-labelledby"]||"title-".concat(d||Ha())},children:[l]}),delete w.attributes.title);var b=Yt(Yt({},w),{},{prefix:n,iconName:i,main:a,mask:o,maskId:c,transform:r,symbol:s,styles:Yt(Yt({},T),u.styles)}),A=o.found&&a.found?Po("generateAbstractMask",b)||{children:[],attributes:{}}:Po("generateAbstractIcon",b)||{children:[],attributes:{}},L=A.children,k=A.attributes;return b.children=L,b.attributes=k,s?function(e){var t=e.prefix,a=e.iconName,o=e.children,n=e.attributes,i=e.symbol,r=!0===i?"".concat(t,"-").concat(Ua.familyPrefix,"-").concat(a):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Yt(Yt({},n),{},{id:r}),children:o}]}]}(b):function(e){var t=e.children,a=e.main,o=e.mask,n=e.attributes,i=e.styles,r=e.transform;if(Za(r)&&a.found&&!o.found){var s={x:a.width/a.height/2,y:.5};n.style=Ya(Yt(Yt({},i),{},{"transform-origin":"".concat(s.x+r.x/16,"em ").concat(s.y+r.y/16,"em")}))}return[{tag:"svg",attributes:n,children:t}]}(b)}function Fo(e){var t=e.content,a=e.width,o=e.height,n=e.transform,i=e.title,r=e.extra,s=e.watchable,l=void 0!==s&&s,c=Yt(Yt(Yt({},r.attributes),i?{title:i}:{}),{},{class:r.classes.join(" ")});l&&(c[ma]="");var d=Yt({},r.styles);Za(n)&&(d.transform=function(e){var t=e.transform,a=e.width,o=void 0===a?16:a,n=e.height,i=void 0===n?16:n,r=e.startCentered,s=void 0!==r&&r,l="";return l+=s&&ua?"translate(".concat(t.x/Ka-o/2,"em, ").concat(t.y/Ka-i/2,"em) "):s?"translate(calc(-50% + ".concat(t.x/Ka,"em), calc(-50% + ").concat(t.y/Ka,"em)) "):"translate(".concat(t.x/Ka,"em, ").concat(t.y/Ka,"em) "),(l+="scale(".concat(t.size/Ka*(t.flipX?-1:1),", ").concat(t.size/Ka*(t.flipY?-1:1),") "))+"rotate(".concat(t.rotate,"deg) ")}({transform:n,startCentered:!0,width:a,height:o}),d["-webkit-transform"]=d.transform);var u=Ya(d);u.length>0&&(c.style=u);var p=[];return p.push({tag:"span",attributes:c,children:[t]}),i&&p.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),p}function Wo(e){var t=e.content,a=e.title,o=e.extra,n=Yt(Yt(Yt({},o.attributes),a?{title:a}:{}),{},{class:o.classes.join(" ")}),i=Ya(o.styles);i.length>0&&(n.style=i);var r=[];return r.push({tag:"span",attributes:n,children:[t]}),a&&r.push({tag:"span",attributes:{class:"sr-only"},children:[a]}),r}var Yo=Xa.styles;function Zo(e){var t=e[0],a=e[1],o=jt(e.slice(4),1)[0];return{found:!0,width:t,height:a,icon:Array.isArray(o)?{tag:"g",attributes:{class:"".concat(Ua.familyPrefix,"-").concat(ya)},children:[{tag:"path",attributes:{class:"".concat(Ua.familyPrefix,"-").concat(Ia),fill:"currentColor",d:o[0]}},{tag:"path",attributes:{class:"".concat(Ua.familyPrefix,"-").concat(Ra),fill:"currentColor",d:o[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:o}}}}var qo={found:!1,width:512,height:512};function Vo(e,t){var a=t;return"fa"===t&&null!==Ua.styleDefault&&(t=So()),new Promise((function(o,n){if(Po("missingIconAbstract"),"fa"===a){var i=ko(e)||{};e=i.iconName||e,t=i.prefix||t}if(e&&t&&Yo[t]&&Yo[t][e])return o(Zo(Yo[t][e]));!function(e,t){wa||Ua.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),o(Yt(Yt({},qo),{},{icon:Ua.showMissingIcons&&e&&Po("missingIconAbstract")||{}}))}))}var jo=function(){},Qo=Ua.measurePerformance&&ca&&ca.mark&&ca.measure?ca:{mark:jo,measure:jo},Jo='FA "6.1.1"',Xo=function(e){return Qo.mark("".concat(Jo," ").concat(e," begins")),function(){return function(e){Qo.mark("".concat(Jo," ").concat(e," ends")),Qo.measure("".concat(Jo," ").concat(e),"".concat(Jo," ").concat(e," begins"),"".concat(Jo," ").concat(e," ends"))}(e)}},$o=function(){};function en(e){return"string"==typeof(e.getAttribute?e.getAttribute(ma):null)}function tn(e){return sa.createElementNS("http://www.w3.org/2000/svg",e)}function an(e){return sa.createElement(e)}function on(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.ceFn,o=void 0===a?"svg"===e.tag?tn:an:a;if("string"==typeof e)return sa.createTextNode(e);var n=o(e.tag);Object.keys(e.attributes||[]).forEach((function(t){n.setAttribute(t,e.attributes[t])}));var i=e.children||[];return i.forEach((function(e){n.appendChild(on(e,{ceFn:o}))})),n}var nn={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(on(e),t)})),null===t.getAttribute(ma)&&Ua.keepOriginalSource){var a=sa.createComment(function(e){var t=" ".concat(e.outerHTML," ");return"".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(a,t)}else t.remove()},nest:function(e){var t=e[0],a=e[1];if(~Fa(t).indexOf(Ua.replacementClass))return nn.replace(e);var o=new RegExp("".concat(Ua.familyPrefix,"-.*"));if(delete a[0].attributes.id,a[0].attributes.class){var n=a[0].attributes.class.split(" ").reduce((function(e,t){return t===Ua.replacementClass||t.match(o)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});a[0].attributes.class=n.toSvg.join(" "),0===n.toNode.length?t.removeAttribute("class"):t.setAttribute("class",n.toNode.join(" "))}var i=a.map((function(e){return ao(e)})).join("\n");t.setAttribute(ma,""),t.innerHTML=i}};function rn(e){e()}function sn(e,t){var a="function"==typeof t?t:$o;if(0===e.length)a();else{var o=rn;"async"===Ua.mutateApproach&&(o=ra.requestAnimationFrame||rn),o((function(){var t=!0===Ua.autoReplaceSvg?nn.replace:nn[Ua.autoReplaceSvg]||nn.replace,o=Xo("mutate");e.map(t),o(),a()}))}}var ln=!1;function cn(){ln=!0}function dn(){ln=!1}var un=null;function pn(e){if(la&&Ua.observeMutations){var t=e.treeCallback,a=void 0===t?$o:t,o=e.nodeCallback,n=void 0===o?$o:o,i=e.pseudoElementsCallback,r=void 0===i?$o:i,s=e.observeMutationsRoot,l=void 0===s?sa:s;un=new la((function(e){if(!ln){var t=So();za(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!en(e.addedNodes[0])&&(Ua.searchPseudoElements&&r(e.target),a(e.target)),"attributes"===e.type&&e.target.parentNode&&Ua.searchPseudoElements&&r(e.target.parentNode),"attributes"===e.type&&en(e.target)&&~Ca.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute(ga):null,a=e.getAttribute?e.getAttribute(fa):null;return t&&a}(e.target)){var o=Oo(Fa(e.target)),i=o.prefix,s=o.iconName;e.target.setAttribute(ga,i||t),s&&e.target.setAttribute(fa,s)}else(l=e.target)&&l.classList&&l.classList.contains&&l.classList.contains(Ua.replacementClass)&&n(e.target);var l}))}})),da&&un.observe(l,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function mn(e){var t=e.getAttribute("style"),a=[];return t&&(a=t.split(";").reduce((function(e,t){var a=t.split(":"),o=a[0],n=a.slice(1);return o&&n.length>0&&(e[o]=n.join(":").trim()),e}),{})),a}function hn(e){var t,a,o=e.getAttribute("data-prefix"),n=e.getAttribute("data-icon"),i=void 0!==e.innerText?e.innerText.trim():"",r=Oo(Fa(e));return r.prefix||(r.prefix=So()),o&&n&&(r.prefix=o,r.iconName=n),r.iconName&&r.prefix||r.prefix&&i.length>0&&(r.iconName=(t=r.prefix,a=e.innerText,(ho[t]||{})[a]||Ao(r.prefix,io(e.innerText)))),r}function gn(e){var t=za(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),a=e.getAttribute("title"),o=e.getAttribute("data-fa-title-id");return Ua.autoA11y&&(a?t["aria-labelledby"]="".concat(Ua.replacementClass,"-title-").concat(o||Ha()):(t["aria-hidden"]="true",t.focusable="false")),t}function fn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},a=hn(e),o=a.iconName,n=a.prefix,i=a.rest,r=gn(e),s=Io("parseNodeAttributes",{},e),l=t.styleParser?mn(e):[];return Yt({iconName:o,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:n,transform:Ga,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:i,styles:l,attributes:r}},s)}var En=Xa.styles;function _n(e){var t="nest"===Ua.autoReplaceSvg?fn(e,{styleParser:!1}):fn(e);return~t.extra.classes.indexOf(Sa)?Po("generateLayersText",e,t):Po("generateSvgReplacementMutation",e,t)}function wn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!da)return Promise.resolve();var a=sa.documentElement.classList,o=function(e){return a.add("".concat(Ea,"-").concat(e))},n=function(e){return a.remove("".concat(Ea,"-").concat(e))},i=Ua.autoFetchSvg?Object.keys(Ta):Object.keys(En),r=[".".concat(Sa,":not([").concat(ma,"])")].concat(i.map((function(e){return".".concat(e,":not([").concat(ma,"])")}))).join(", ");if(0===r.length)return Promise.resolve();var s=[];try{s=za(e.querySelectorAll(r))}catch(e){}if(!(s.length>0))return Promise.resolve();o("pending"),n("complete");var l=Xo("onTree"),c=s.reduce((function(e,t){try{var a=_n(t);a&&e.push(a)}catch(e){wa||"MissingIcon"===e.name&&console.error(e)}return e}),[]);return new Promise((function(e,a){Promise.all(c).then((function(a){sn(a,(function(){o("active"),o("complete"),n("pending"),"function"==typeof t&&t(),l(),e()}))})).catch((function(e){l(),a(e)}))}))}function Tn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;_n(e).then((function(e){e&&sn([e],t)}))}var bn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.transform,o=void 0===a?Ga:a,n=t.symbol,i=void 0!==n&&n,r=t.mask,s=void 0===r?null:r,l=t.maskId,c=void 0===l?null:l,d=t.title,u=void 0===d?null:d,p=t.titleId,m=void 0===p?null:p,h=t.classes,g=void 0===h?[]:h,f=t.attributes,E=void 0===f?{}:f,_=t.styles,w=void 0===_?{}:_;if(e){var T=e.prefix,b=e.iconName,A=e.icon;return Ho(Yt({type:"icon"},e),(function(){return Mo("beforeDOMElementCreation",{iconDefinition:e,params:t}),Ua.autoA11y&&(u?E["aria-labelledby"]="".concat(Ua.replacementClass,"-title-").concat(m||Ha()):(E["aria-hidden"]="true",E.focusable="false")),zo({icons:{main:Zo(A),mask:s?Zo(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:T,iconName:b,transform:Yt(Yt({},Ga),o),symbol:i,title:u,maskId:c,titleId:m,extra:{attributes:E,styles:w,classes:g}})}))}},An={mixout:function(){return{icon:(e=bn,function(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(t||{}).icon?t:xo(t||{}),n=a.mask;return n&&(n=(n||{}).icon?n:xo(n||{})),e(o,Yt(Yt({},a),{},{mask:n}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=wn,e.nodeCallback=Tn,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,a=void 0===t?sa:t,o=e.callback;return wn(a,void 0===o?function(){}:o)},e.generateSvgReplacementMutation=function(e,t){var a=t.iconName,o=t.title,n=t.titleId,i=t.prefix,r=t.transform,s=t.symbol,l=t.mask,c=t.maskId,d=t.extra;return new Promise((function(t,u){Promise.all([Vo(a,i),l.iconName?Vo(l.iconName,l.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(l){var u=jt(l,2),p=u[0],m=u[1];t([e,zo({icons:{main:p,mask:m},prefix:i,iconName:a,transform:r,symbol:s,maskId:c,title:o,titleId:n,extra:d,watchable:!0})])})).catch(u)}))},e.generateAbstractIcon=function(e){var t,a=e.children,o=e.attributes,n=e.main,i=e.transform,r=Ya(e.styles);return r.length>0&&(o.style=r),Za(i)&&(t=Po("generateAbstractTransformGrouping",{main:n,transform:i,containerWidth:n.width,iconWidth:n.width})),a.push(t||n.icon),{children:a,attributes:o}}}},Ln={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.classes,o=void 0===a?[]:a;return Ho({type:"layer"},(function(){Mo("beforeDOMElementCreation",{assembler:e,params:t});var a=[];return e((function(e){Array.isArray(e)?e.map((function(e){a=a.concat(e.abstract)})):a=a.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(Ua.familyPrefix,"-layers")].concat(Qt(o)).join(" ")},children:a}]}))}}}},kn={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.title,o=void 0===a?null:a,n=t.classes,i=void 0===n?[]:n,r=t.attributes,s=void 0===r?{}:r,l=t.styles,c=void 0===l?{}:l;return Ho({type:"counter",content:e},(function(){return Mo("beforeDOMElementCreation",{content:e,params:t}),Wo({content:e.toString(),title:o,extra:{attributes:s,styles:c,classes:["".concat(Ua.familyPrefix,"-layers-counter")].concat(Qt(i))}})}))}}}},Sn={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.transform,o=void 0===a?Ga:a,n=t.title,i=void 0===n?null:n,r=t.classes,s=void 0===r?[]:r,l=t.attributes,c=void 0===l?{}:l,d=t.styles,u=void 0===d?{}:d;return Ho({type:"text",content:e},(function(){return Mo("beforeDOMElementCreation",{content:e,params:t}),Fo({content:e,transform:Yt(Yt({},Ga),o),title:i,extra:{attributes:c,styles:u,classes:["".concat(Ua.familyPrefix,"-layers-text")].concat(Qt(s))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var a=t.title,o=t.transform,n=t.extra,i=null,r=null;if(ua){var s=parseInt(getComputedStyle(e).fontSize,10),l=e.getBoundingClientRect();i=l.width/s,r=l.height/s}return Ua.autoA11y&&!a&&(n.attributes["aria-hidden"]="true"),Promise.resolve([e,Fo({content:e.innerHTML,width:i,height:r,transform:o,title:a,extra:n,watchable:!0})])}}},vn=new RegExp('"',"ug"),On=[1105920,1112319];function Dn(e,t){var a="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise((function(o,n){if(null!==e.getAttribute(a))return o();var i,r,s,l=za(e.children).filter((function(e){return e.getAttribute(ha)===t}))[0],c=ra.getComputedStyle(e,t),d=c.getPropertyValue("font-family").match(va),u=c.getPropertyValue("font-weight"),p=c.getPropertyValue("content");if(l&&!d)return e.removeChild(l),o();if(d&&"none"!==p&&""!==p){var m=c.getPropertyValue("content"),h=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(d[2])?ba[d[2].toLowerCase()]:Oa[u],g=function(e){var t,a,o,n,i=e.replace(vn,""),r=(o=(t=i).length,(n=t.charCodeAt(0))>=55296&&n<=56319&&o>1&&(a=t.charCodeAt(1))>=56320&&a<=57343?1024*(n-55296)+a-56320+65536:n),s=r>=On[0]&&r<=On[1],l=2===i.length&&i[0]===i[1];return{value:io(l?i[0]:i),isSecondary:s||l}}(m),f=g.value,E=g.isSecondary,_=d[0].startsWith("FontAwesome"),w=Ao(h,f),T=w;if(_){var b=(r=fo[i=f],s=Ao("fas",i),r||(s?{prefix:"fas",iconName:s}:null)||{prefix:null,iconName:null});b.iconName&&b.prefix&&(w=b.iconName,h=b.prefix)}if(!w||E||l&&l.getAttribute(ga)===h&&l.getAttribute(fa)===T)o();else{e.setAttribute(a,T),l&&e.removeChild(l);var A={iconName:null,title:null,titleId:null,prefix:null,transform:Ga,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},L=A.extra;L.attributes[ha]=t,Vo(w,h).then((function(n){var i=zo(Yt(Yt({},A),{},{icons:{main:n,mask:{prefix:null,iconName:null,rest:[]}},prefix:h,iconName:T,extra:L,watchable:!0})),r=sa.createElement("svg");"::before"===t?e.insertBefore(r,e.firstChild):e.appendChild(r),r.outerHTML=i.map((function(e){return ao(e)})).join("\n"),e.removeAttribute(a),o()})).catch(n)}}else o()}))}function Nn(e){return Promise.all([Dn(e,"::before"),Dn(e,"::after")])}function Cn(e){return!(e.parentNode===document.head||~_a.indexOf(e.tagName.toUpperCase())||e.getAttribute(ha)||e.parentNode&&"svg"===e.parentNode.tagName)}function yn(e){if(da)return new Promise((function(t,a){var o=za(e.querySelectorAll("*")).filter(Cn).map(Nn),n=Xo("searchPseudoElements");cn(),Promise.all(o).then((function(){n(),dn(),t()})).catch((function(){n(),dn(),a()}))}))}var Rn=!1,In=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var a=t.toLowerCase().split("-"),o=a[0],n=a.slice(1).join("-");if(o&&"h"===n)return e.flipX=!0,e;if(o&&"v"===n)return e.flipY=!0,e;if(n=parseFloat(n),isNaN(n))return e;switch(o){case"grow":e.size=e.size+n;break;case"shrink":e.size=e.size-n;break;case"left":e.x=e.x-n;break;case"right":e.x=e.x+n;break;case"up":e.y=e.y-n;break;case"down":e.y=e.y+n;break;case"rotate":e.rotate=e.rotate+n}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},Mn={mixout:function(){return{parse:{transform:function(e){return In(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var a=t.getAttribute("data-fa-transform");return a&&(e.transform=In(a)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,a=e.transform,o=e.containerWidth,n=e.iconWidth,i={transform:"translate(".concat(o/2," 256)")},r="translate(".concat(32*a.x,", ").concat(32*a.y,") "),s="scale(".concat(a.size/16*(a.flipX?-1:1),", ").concat(a.size/16*(a.flipY?-1:1),") "),l="rotate(".concat(a.rotate," 0 0)"),c={outer:i,inner:{transform:"".concat(r," ").concat(s," ").concat(l)},path:{transform:"translate(".concat(n/2*-1," -256)")}};return{tag:"g",attributes:Yt({},c.outer),children:[{tag:"g",attributes:Yt({},c.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:Yt(Yt({},t.icon.attributes),c.path)}]}]}}}},Pn={x:0,y:0,width:"100%",height:"100%"};function xn(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var Un,Bn={hooks:function(){return{parseNodeAttributes:function(e,t){var a=t.getAttribute("data-fa-mask"),o=a?Oo(a.split(" ").map((function(e){return e.trim()}))):{prefix:null,iconName:null,rest:[]};return o.prefix||(o.prefix=So()),e.mask=o,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,a=e.children,o=e.attributes,n=e.main,i=e.mask,r=e.maskId,s=e.transform,l=n.width,c=n.icon,d=i.width,u=i.icon,p=function(e){var t=e.transform,a=e.iconWidth,o={transform:"translate(".concat(e.containerWidth/2," 256)")},n="translate(".concat(32*t.x,", ").concat(32*t.y,") "),i="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),r="rotate(".concat(t.rotate," 0 0)");return{outer:o,inner:{transform:"".concat(n," ").concat(i," ").concat(r)},path:{transform:"translate(".concat(a/2*-1," -256)")}}}({transform:s,containerWidth:d,iconWidth:l}),m={tag:"rect",attributes:Yt(Yt({},Pn),{},{fill:"white"})},h=c.children?{children:c.children.map(xn)}:{},g={tag:"g",attributes:Yt({},p.inner),children:[xn(Yt({tag:c.tag,attributes:Yt(Yt({},c.attributes),p.path)},h))]},f={tag:"g",attributes:Yt({},p.outer),children:[g]},E="mask-".concat(r||Ha()),_="clip-".concat(r||Ha()),w={tag:"mask",attributes:Yt(Yt({},Pn),{},{id:E,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[m,f]},T={tag:"defs",children:[{tag:"clipPath",attributes:{id:_},children:(t=u,"g"===t.tag?t.children:[t])},w]};return a.push(T,{tag:"rect",attributes:Yt({fill:"currentColor","clip-path":"url(#".concat(_,")"),mask:"url(#".concat(E,")")},Pn)}),{children:a,attributes:o}}}},Kn={provides:function(e){var t=!1;ra.matchMedia&&(t=ra.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],a={fill:"currentColor"},o={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:Yt(Yt({},a),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var n=Yt(Yt({},o),{},{attributeName:"opacity"}),i={tag:"circle",attributes:Yt(Yt({},a),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||i.children.push({tag:"animate",attributes:Yt(Yt({},o),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Yt(Yt({},n),{},{values:"1;0;1;1;0;1;"})}),e.push(i),e.push({tag:"path",attributes:Yt(Yt({},a),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:Yt(Yt({},n),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:Yt(Yt({},a),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Yt(Yt({},n),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}};Un={mixoutsTo:Ko}.mixoutsTo,No=[Qa,An,Ln,kn,Sn,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=yn,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,a=void 0===t?sa:t;Ua.searchPseudoElements&&yn(a)}}},{mixout:function(){return{dom:{unwatch:function(){cn(),Rn=!0}}}},hooks:function(){return{bootstrap:function(){pn(Io("mutationObserverCallbacks",{}))},noAuto:function(){un&&un.disconnect()},watch:function(e){var t=e.observeMutationsRoot;Rn?dn():pn(Io("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},Mn,Bn,Kn,{hooks:function(){return{parseNodeAttributes:function(e,t){var a=t.getAttribute("data-fa-symbol"),o=null!==a&&(""===a||a);return e.symbol=o,e}}}}],Co={},Object.keys(yo).forEach((function(e){-1===Ro.indexOf(e)&&delete yo[e]})),No.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"==typeof t[e]&&(Un[e]=t[e]),"object"===Zt(t[e])&&Object.keys(t[e]).forEach((function(a){Un[e]||(Un[e]={}),Un[e][a]=t[e][a]}))})),e.hooks){var a=e.hooks();Object.keys(a).forEach((function(e){Co[e]||(Co[e]=[]),Co[e].push(a[e])}))}e.provides&&e.provides(yo)}));var Gn=Ko.icon,Hn=a(55),zn=a(619),Fn=a(986),Wn=a(375),Yn=a(610),Zn=a(371),qn=a(755),Vn=a(117),jn=a(102),Qn=a(789),Jn=a(98),Xn=a(49),$n=a(467);function ei(e,t="#000000"){try{return Ft().to.hex(Ft().get.rgb(function(e){switch(e){case"groupa":return"orange";case"groupb":return"yellow";case"groupc":return"lime";case"groupd":return"purple";case"groupe":return"teal";case"groupf":return"fuchsia";case"main":return window.plugin.wasabee.skin.defaultOperationColor;default:return e}}(e)))}catch{return t}}function ti(e){let[t,a,o]=[0,0,0];for(const n of e){const e=Ft().get.rgb(n);t+=e[0],a+=e[1],o+=e[2]}return e.length&&(t=Math.floor(t/e.length),a=Math.floor(a/e.length),o=Math.floor(o/e.length)),Ft().to.hex(t,a,o)}const ai={check:Hn.LE,trash:zn.$,server:Fn.xf,"arrows-rotate":Wn.T8,"left-right":Yn.Bq,pen:Zn.Iw,eraser:qn.xf,ban:Vn.gP,palette:jn.q2,asterisk:Qn.$X,desktop:Jn.tc,"carret-right":Xn.I4,"location-dot":$n.op};function oi(e,t){if(e in ai){const a=Gn(ai[e]).node[0];t.appendChild(a)}}const ni=Kt.extend({statics:{TYPE:"agent"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:async function(){const e=L.DomUtil.create("div",null);try{const t=await ut(this.options.gid);L.DomUtil.create("h2","wasabee-agent-label",e).textContent=t.getName();const a=L.DomUtil.create("ul","",e),o=[["Server name: ",t.name],["Ingress name: ",t.communityname],["V name: ",t.vname],["V verified: ",t.Vverified],["Rocks name: ",t.rocksname],["Rocks Verified: ",t.rocks]];for(const[e,t]of o){const o=L.DomUtil.create("li","",a);L.DomUtil.create("label",null,o).textContent=e,!0===t?oi("check",o):L.DomUtil.create("span",null,o).textContent=t}L.DomUtil.create("img",null,e).src=t.pic}catch(t){console.error(t),e.innerHTML=t.toString()}const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("AGENT_STATS"),html:e,width:"auto",dialogClass:"agent",buttons:t})},_displaySmallDialog:function(){this._displayDialog()}});function ii(e){const t=L.DomUtil.create("a","wasabee-agent-label");(e.Vverified||e.rocks)&&L.DomUtil.addClass(t,"enl"),e.blacklisted&&L.DomUtil.addClass(t,"res"),L.DomEvent.on(t,"click",(t=>{L.DomEvent.stop(t),new ni({gid:e.id}).enable()}));let a="";return e.communityname&&(a+="C"),e.Vverified?a+="V":e.vname===e.name&&(a+="v"),e.rocks?a+="R":e.rocksname===e.name&&(a+="r"),e.intelname&&((e.rocksname||e.vname)&&(e.rocks||e.Vverified)?e.intelname===e.name?a+="I":e.intelname.toLowerCase()===e.name.toLowerCase()&&(a+="i"):a+="I"),t.textContent=a?`[${a}] `+e.getName():e.getName(),t}function ri(e){if(!e.date)return"";const t=Date.parse(e.date+"Z");if(Number.isNaN(t))return`(${e.date} UTC)`;if(0==t)return"";const a=Math.floor((Date.now()-t)/1e3);if(a<0)return"";let o=Math.floor(a/31536e3/2592e3/86400);return o>1?Se("AGES"):(o=Math.floor(a/3600),o>1?Se("HOURS",{hours:o}):(o=Math.floor(a/60),o>1?Se("MINUTES",{minutes:o}):(o=Math.floor(a),Se("SECONDS",{seconds:o}))))}const si=Kt.extend({statics:{TYPE:"confirmDialog"},options:{title:Se("NO_TITLE"),label:Se("NO_LABEL")},_skippable:function(){const e=localStorage[window.plugin.wasabee.static.constants.SKIP_CONFIRM];if("always"===e)return!0;if("entity"===e)switch(this.options.type){case"anchor":case"link":case"marker":case"zone":case"agent":return!0}return!1},addHooks:function(){Kt.prototype.addHooks.call(this),this._skippable()?(console.log("skipping dialog display"),this.options.callback&&this.options.callback()):this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this.options.callback&&this.options.callback(),this.closeDialog()},e[Se("CANCEL")]=()=>{this.options.cancelCallback&&this.options.cancelCallback(),this.closeDialog()},this.createDialog({title:this.options.title,html:this._buildContent(),width:"auto",dialogClass:"confirm",buttons:e})},_buildContent:function(){const e=L.DomUtil.create("div","title");return"string"==typeof this.options.label?e.textContent=this.options.label:e.appendChild(this.options.label),e}});function li(e,t=7){return t<6?function(){const e=document.createElementNS("http://www.w3.org/2000/svg","svg");return e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.setAttribute("viewBox","200 70 630 520"),e.setAttribute("height","30"),e.setAttribute("width","30"),e.setAttribute("style","fill-rule: evenodd; clip-rule: evenodd; stroke-miterlimit: 10;"),e.innerHTML='',e}():t>=6&&t<9?function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.setAttribute("viewBox","0 0 52 68"),t.innerHTML=`\n \n \n `,t}(e):t>=9&&t<15?function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.setAttribute("viewBox","0 0 52 68"),t.innerHTML=`\n \n \n `,t}(e):function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.setAttribute("viewBox","0 0 52 68"),t.innerHTML=`\n \n \n `,t}(e)}function ci(e=7){return e<6?[30,30]:e>=6&&e<9?[36,47]:e>=9&&e<15?[40,52]:[46,60]}function di(e=7){return e<6?[15,30]:e>=6&&e<9?[18,47]:e>=9&&e<15?[20,52]:[23,60]}const ui=L.Marker.extend({initialize:function(e){const t=window.map.getZoom();L.Marker.prototype.initialize.call(this,e.latLng,{title:e.getName(),icon:L.divIcon({className:"wasabee-agent-icon",iconSize:ci(t),iconAnchor:di(t),popupAnchor:L.point(0,-70),html:li(e,t)}),id:e.id,agent:e,zoom:t}),this.bindPopup((e=>e._getPopup()),{className:"wasabee-popup",closeButton:!1}),this.off("click",this._openPopup),window.registerMarkerForOMS(this),this.on("spiderfiedclick",this._openPopup)},update:function(){const e=window.map.getZoom();this.options.zoom!=e?(this.options.zoom=e,this.setIcon(L.divIcon({className:"wasabee-agent-icon",iconSize:ci(e),iconAnchor:di(e),popupAnchor:L.point(0,-70),html:li(this.options.agent,e)}))):L.Marker.prototype.update.call(this)},_getPopup:function(){const e=this.options.agent,t=L.DomUtil.create("div","wasabee-agent-popup"),a=L.DomUtil.create("div","desc",t);a.id=e.id,a.textContent=e.getName();const o=L.DomUtil.create("div","desc",t);o.id=e.id,o.textContent=ri(e),ut(this.options.id).then(ii).then((t=>{a.textContent="",a.appendChild(t),o.textContent=ri(e)}));const n=L.DomUtil.create("button",null,t);n.textContent=Se("SEND TARGET"),L.DomEvent.on(n,"click",(t=>{L.DomEvent.stop(t);const a=Ze();a?new si({title:Se("SEND TARGET"),label:Se("SEND TARGET CONFIRM",{portalName:Fe(a),agent:e.getName()}),type:"agent",callback:async()=>{try{await Dt(e.id,a),ve(Se("TARGET SENT"))}catch(e){console.error(e)}}}).enable():Oe(Se("SELECT PORTAL"))}));const i=Re(),r=L.DomUtil.create("ul","assignments",t);for(const t of i.markers){if(t.assignedTo!=e.id)continue;const a=L.DomUtil.create("li","assignment",r),o=i.getPortal(t.portalId);a.textContent=`${t.order}: ${Se(t.type)} `,a.appendChild(We(o))}return t}});class pi{constructor(){this._items=[],this._fields=[],this._sortBy=0,this._sortAsc=!0,this._table=L.DomUtil.create("table","wasabee-table"),this._head=L.DomUtil.create("thead",null,this._table),this._body=L.DomUtil.create("tbody",null,this._table),this._foot=L.DomUtil.create("tfoot",null,this._table),this._smallScreen=!!window.plugin.userLocation,this._sortByStoreKey="",this._sortAscStoreKey="",this._done=!0}get sortBy(){return this._sortBy}set sortBy(e){this._sortBy=Number(e),this.renderHead(),this.sort()}get sortAsc(){return this._sortAsc}set sortAsc(e){!0!==e&&(e=!1),this._sortAsc=e,this.renderHead(),this.sort()}set sortByStoreKey(e){this._sortByStoreKey=e,null==localStorage[this._sortByStoreKey]&&(localStorage[this._sortByStoreKey]=0),this.sortBy=localStorage[this._sortByStoreKey]}set sortAscStoreKey(e){this._sortAscStoreKey=e,null==localStorage[this._sortAscStoreKey]&&(localStorage[this._sortAscStoreKey]="true"),this.sortAsc="true"==localStorage[this._sortAscStoreKey]}get table(){return this._table}get items(){return this._items.map((e=>e.obj))}set items(e){this._body.textContent="";let t=0;const a=[],o=e.map((async e=>{const o=L.DomUtil.create("tr"),n={obj:e,row:o,index:t,values:[],sortValues:[]};t++;for(const t of this._fields){let a=t.value(e);null!=a&&a instanceof Promise&&(a=await a),n.values.push(a);let i=a;t.sortValue&&(i=t.sortValue(a,e),null!=i&&i instanceof Promise&&(i=await i)),n.sortValues.push(i);const r=o.insertCell(-1);t.className&&r.classList.add(t.className),t.format?t.format(r,a,e):r.textContent=a,t.smallScreenHide&&this._smallScreen&&(r.style.display="none")}return a.push(n),n}));a.length===o.length?(this._items=a,this.sort(),this._done=!0):this._done=Promise.all(o).then((e=>(this._items=e,this.sort(),!0)),(e=>{console.log("rejected",e),this._done=!1}))}get fields(){return this._fields}set fields(e){this._fields=e,this.renderHead(),this.renderFoot()}get done(){return this._done}renderHead(){this._head.textContent="";const e=this._head.insertRow(-1);for(const[t,a]of this._fields.entries()){const o=L.DomUtil.create("th",a.className,e);o.textContent=a.name,a.smallScreenHide&&this._smallScreen&&(o.style.display="none"),null!==a.sort&&(L.DomUtil.addClass(o,"sortable"),t==this._sortBy&&L.DomUtil.addClass(o,this._sortAsc?"asc":"desc"),L.DomEvent.on(o,"click",(a=>{L.DomEvent.stop(a);for(const t of e.children)L.DomUtil.removeClass(t,"asc"),L.DomUtil.removeClass(t,"desc");t==this._sortBy&&(this._sortAsc=!this._sortAsc),L.DomUtil.addClass(o,this._sortAsc?"asc":"desc"),this._sortBy=t,null!=this._sortByStoreKey&&(localStorage[this._sortByStoreKey]=this._sortBy),null!=this._sortAscStoreKey&&(localStorage[this._sortAscStoreKey]=this._sortAsc.toString()),this.sort()}),!1))}}renderFoot(){if(this._foot.textContent="",this._fields.every((e=>!e.foot)))return;const e=this._foot.insertRow(-1);for(const t of this._fields){const a=L.DomUtil.create("td",t.className,e);t.foot&&t.foot(a)}}sort(){const e=this._fields[this._sortBy];this._items.sort(((t,a)=>{const o=t.sortValues[this._sortBy],n=a.sortValues[this._sortBy];if(void 0===o&&null==n)return 0;if(null==o)return-1;if(null==n)return 1;let i=0;return"function"==typeof e.sort?i=e.sort(o,n,t.obj,a.obj):(o>n&&(i=1),n>o&&(i=-1)),0==i&&(i=t.index-a.index),this._sortAsc?i:-i}));for(const[e,t]of this._items.entries())t.index=e,this._body.appendChild(t.row)}}const mi=window.plugin.wasabee;function hi(){mi.skin={},mi.skin.defaultOperationColor=mi.static.defaultOperationColor,mi.skin.layerTypes=new Map(mi.static.layerTypes),mi.skin.linkStyle=mi.static.linkStyle,mi.skin.selfBlockStyle=mi.static.selfBlockStyle,mi.skin.backgroundLinkStyle=mi.static.backgroundLinkStyle,mi.skin.anchorTemplate=mi.static.anchorTemplate,mi.skin.strings=Object.assign({},mi.static.strings);for(const e of Object.getOwnPropertyNames(mi.static.CSS))gi(e,mi.static.CSS[e]);_i(),Ei()}function gi(e,t){mi._css||(mi._css=[]),mi._css.includes(e)&&(document.getElementById("wasabee-css-"+e).remove(),mi._css.splice(mi._css.indexOf(e)));const a=L.DomUtil.create("style",null,document.head);a.textContent=t,a.id="wasabee-css-"+e,mi._css.push(e)}function fi(e){window.plugin.wasabeeSkins||(window.plugin.wasabeeSkins={}),0==e.length&&delete localStorage[mi.static.constants.SKIN_KEY],delete mi.skin,function(){for(const e of mi._css)document.getElementById("wasabee-css-"+e).remove();mi._css=[]}(),hi();const t=[];for(const a of e){if(!window.plugin.wasabeeSkins[a]||!window.plugin.wasabeeSkins[a].static)continue;t.push(a);const e=window.plugin.wasabeeSkins[a].static;if(e.strings)for(const t of Object.getOwnPropertyNames(e.strings))t==a&&(localStorage[mi.static.constants.LANGUAGE_KEY]=a),mi.skin.strings[t]=e.strings[t];for(const t of Object.getOwnPropertyNames(e.CSS))gi(t,e.CSS[t]);if(e.defaultOperationColor&&(mi.skin.defaultOperationColor=e.defaultOperationColor),e.layerTypes)for(const[t,a]of e.layerTypes)mi.skin.layerTypes.set(t,a);e.linkStyle&&(mi.skin.linkStyle=e.linkStyle),e.selfBlockStyle&&(mi.skin.selfBlockStyle=e.selfBlockStyle),void 0!==e.anchorTemplate&&(mi.skin.anchorTemplate=e.anchorTemplate)}return _i(),Ei(),localStorage[window.plugin.wasabee.static.constants.SKIN_KEY]=JSON.stringify(t),window.map.fire("wasabee:ui:skin"),!0}function Ei(){const e=document.getElementById("wasabee-anchor-svg");e&&e.remove();const t=mi.skin.anchorTemplate;if(t){const e=L.DomUtil.create("div");e.innerHTML=t;const a=e.firstChild;a.id="wasabee-anchor-svg",document.body.appendChild(a)}}function _i(){const e=document.getElementById("wasabee-colors-datalist");e&&e.remove();const t=L.DomUtil.create("datalist",null,document.body);t.id="wasabee-colors-datalist";for(const e of mi.skin.layerTypes.values())L.DomUtil.create("option",null,t).value=e.color}function wi(e){const t=document.getElementById("wasabee-colors-datalist");if(!t)return;for(const a of t.children)if(a.value==e)return void t.insertBefore(a,t.firstChild);const a=L.DomUtil.create("option");a.value=e,t.insertBefore(a,t.firstChild)}function Ti(e,t,a=!1){const o=L.DomUtil.create("div",null);o.appendChild(We(t.getPortal(e.fromPortalId),a));const n=L.DomUtil.create("span","wasabee-link-seperator",o);n.style.color=ei(e.getColor(t)),oi("carret-right",n);const i=L.DomUtil.create("input","hidden-color-picker",n);return i.type="color",i.value=ei(e.getColor(t)),i.setAttribute("list","wasabee-colors-datalist"),i.disabled=!t.canWrite(),L.DomEvent.on(n,"click",(()=>{i.click()})),L.DomEvent.on(i,"change",(a=>{const o=a.target.value;e.setColor(o,t),wi(o)})),o.appendChild(We(t.getPortal(e.toPortalId),a)),o}const bi=Kt.extend({statics:{TYPE:"assignDialog"},needWritePermission:!0,options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this.localAssign(this._currentAssign),this.closeDialog()};const t=this._buildContent();this.createDialog({title:this._name,html:t,width:"auto",dialogClass:"assign",buttons:e,id:b.dialogNames.assign,autofocus:!0})},_buildContent:function(){const e=L.DomUtil.create("div","container"),t=this.options.target,a=Re();this._currentAssign=null,this._targetID=t.ID;const o=L.DomUtil.create("div","desc",e),n=L.DomUtil.create("div","wasabee-agent-menu",e);if(t instanceof q){const e=a.getPortal(t.fromPortalId);this._type="Link",this._name=Se("ASSIGN LINK PROMPT",{portalName:Fe(e)}),o.appendChild(Ti(t,a)),L.DomUtil.create("label",null,n).textContent=Se("LINK ASSIGNMENT"),this._currentAssign=t.assignedTo}if(t instanceof X){const e=a.getPortal(t.portalId);this._type="Marker",this._name=Se("ASSIGN MARKER PROMPT",{portalName:Fe(e)}),o.appendChild(We(e)),L.DomUtil.create("label",null,n).textContent=Se("MARKER ASSIGNMENT"),this._currentAssign=t.assignedTo}if(t instanceof ee){const e=t;this._type="Anchor",this._name=Se("ASSIGN OUTBOUND PROMPT",{portalName:Fe(e)}),o.appendChild(We(e)),L.DomUtil.create("label",null,n).textContent=Se("ANCHOR ASSIGNMENT");for(const t of a.getLinkListFromPortal(e))if(t.fromPortalId===e.id&&t.assignedTo){this._currentAssign=t.assignedTo;break}}const i=L.DomUtil.create("select",null,n),r=L.DomUtil.create("option",null,i);return r.value="",r.textContent=Se("UNASSIGNED"),L.DomEvent.on(i,"change",(e=>{this._currentAssign=e.target.value,this.localAssign(e.target.value)})),this._populateAgentSelect(i,this._currentAssign),e},_populateAgentSelect:async function(e,t){const a=new Array,o=await pt(),n=await ht(Re().teamlist.map((e=>e.teamid)).filter((e=>o.teamJoined(e))),300);for(const o of n)for(const n of o.agents)if(!a.includes(n.id)){a.push(n.id);const o=L.DomUtil.create("option","",e);o.value=n.id,o.textContent=n.getName(),n.id==t&&(o.selected=!0)}},localAssign:function(e){const t=Re();if("Marker"==this._type&&t.assignMarker(this._targetID,e),"Link"==this._type&&t.assignLink(this._targetID,e),"Anchor"==this._type){const a=t.getLinkListFromPortal(this.options.target);for(const o of a)o.fromPortalId==this.options.target.id&&t.assignLink(o.ID,e)}}}),Ai=bi,Li=Kt.extend({statics:{TYPE:"stateDialog"},needWritePermission:!0,options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this.closeDialog()},this._buildContent(),this.createDialog({title:this._name,html:this._html,width:"auto",dialogClass:"state",buttons:e,id:b.dialogNames.state,autofocus:!0})},_buildContent:function(){this._targetID=this.options.target.ID,this._html=L.DomUtil.create("div",null);const e=L.DomUtil.create("div","desc",this._html),t=this._getStateMenu(this.options.target),a=Re();if(this.options.opID!=a.ID&&(console.log("operation changed between create/setup?!"),this.options.opID=a.ID),this.options.target instanceof q){this._type="Link",this._name=Se("LINK STATE PROMPT"),e.appendChild(Ti(this.options.target,a));const o=L.DomUtil.create("label",null);o.textContent=Se("LINK STATE"),t.prepend(o)}if(this.options.target instanceof X){const o=a.getPortal(this.options.target.portalId);this._type="Marker",this._name=Se("MARKER STATE PROMPT"),e.appendChild(We(o));const n=L.DomUtil.create("label",null);n.textContent=Se("MARKER STATE"),t.prepend(n)}this._html.appendChild(t)},_getStateMenu:function(e){const t=L.DomUtil.create("div","wasabee-state-menu"),a=L.DomUtil.create("select",null,t),o=["pending","acknowledged","completed"];for(const t of o){const o=a.appendChild(L.DomUtil.create("option",null));o.value=t,o.textContent=Se(t),e.state==t&&(o.selected=!0)}return a.addEventListener("change",(e=>{this.setState(e)})),t},setState:function(e){const t=Re();this.options.opID==t.ID?("Marker"==this._type&&t.setMarkerState(this._targetID,e.srcElement.value),"Link"==this._type&&t.setLinkState(this._targetID,e.srcElement.value)):console.log("operation changed -- bailing")}}),ki=Kt.extend({statics:{TYPE:"setCommentDialog"},needWritePermission:!0,options:{},initialize:function(e){Kt.prototype.initialize.call(this,e),this.options.target instanceof q&&(this.commentType="link",this.dialogTitle=Se("SET_LCOMMENT"),this.portal=this.options.operation.getPortal(this.options.target.fmPortalId)),this.options.target instanceof X&&(this.commentType="marker",this.portal=this.options.operation.getPortal(this.options.target.portalId),this.dialogTitle=Se("SET_MCOMMENT",{portalName:Fe(this.portal)})),this.options.target instanceof ee&&(this.commentType="portal",this.dialogTitle=Se("SET_PCOMMENT",{portalName:Fe(this.options.target)}),this.portal=this.options.target),this.commentType||(console.log("comment dialog requested for unknown type"),console.log(this.options.target))},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this.closeDialog()},this.createDialog({title:this.dialogTitle,html:this._buildHtml(),width:"auto",dialogClass:"setcomment",buttons:e,id:b.dialogNames.setComment,autofocus:!0})},_buildHtml:function(){const e=L.DomUtil.create("form","container");L.DomEvent.on(e,"submit",this.closeDialog,this);const t=L.DomUtil.create("div","desc",e),a=L.DomUtil.create("input",null,e);if(a.placeholder=Se("COMMENT"),"link"==this.commentType&&(t.textContent=Se("SET_LINK_COMMENT"),t.appendChild(Ti(this.options.target,this.options.operation)),this.options.target.comment&&(a.value=this.options.target.comment),a.addEventListener("change",(()=>{this.options.operation.setLinkComment(this.options.target,a.value)}),!1)),"marker"==this.commentType&&(t.textContent=Se("SET_MARKER_COMMENT"),t.appendChild(We(this.portal)),this.options.target.comment&&(a.value=this.options.target.comment),a.addEventListener("change",(()=>{this.options.operation.setMarkerComment(this.options.target,a.value)}),!1)),"portal"==this.commentType){t.textContent=Se("SET_PORT_COMMENT"),t.appendChild(We(this.portal)),this.portal.comment&&(a.value=this.portal.comment),a.addEventListener("change",(()=>{this.options.operation.setPortalComment(this.options.target,a.value)}),!1);const o=L.DomUtil.create("input",null,e);o.placeholder=Se("dialog.setcomment.portal_hardness"),this.portal.hardness&&(o.value=this.portal.hardness),o.addEventListener("change",(()=>{this.options.operation.setPortalHardness(this.options.target,o.value)}),!1)}return e}}),Si=Kt.extend({statics:{TYPE:"markerButton"},needWritePermission:!0,options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=Re(),t=L.DomUtil.create("div","content"),a=e.getPortal(this.options.marker.portalId);L.DomUtil.create("div","portal",t).appendChild(We(a)),this._type=L.DomUtil.create("select",null,t);for(const e of X.markerTypes){const t=L.DomUtil.create("option",null,this._type);t.value=e,t.textContent=Se(e)}this._type.value=this.options.marker.type;const o={};o[Se("OK")]=()=>{X.markerTypes.has(this._type.value)&&(e.startBatchMode(),e.removeMarker(this.options.marker),e.addMarker(this._type.value,a,{zone:this.options.marker.zone,comment:this.options.marker.comment,assign:this.options.marker.assignedTo}),X.isDestructMarkerType(this._type.value)&&z.removeBlocker(e,a.id),e.endBatchMode()),this.closeDialog()},o[Se("CANCEL")]=()=>{this.closeDialog()},this.createDialog({title:Se("SET_MARKER_TYPE_TITLE"),html:t,width:"auto",dialogClass:"markerchange",buttons:o,id:b.dialogNames.markerButton,autofocus:!0})}});function vi(){const e=Re();e.startBatchMode();for(const t of e.markers){const a=e.getPortal(t.portalId).latLng,o=e.determineZone(a);e.setZone(t,o)}e.endBatchMode()}function Oi(){const e=Re();e.startBatchMode();for(const t of e.links){const a=e.getPortal(t.fromPortalId).latLng,o=e.determineZone(a);e.setZone(t,o)}e.endBatchMode()}let Di=null;function Ni(e,t){if("and"===t.op)return t.list.every((t=>Ni(e,t)));if("or"===t.op)return t.list.some((t=>Ni(e,t)));if("not"===t.op)return!Ni(e,t.list[0]);if("kind"===t.op)return"link"===t.value?e instanceof q:"marker"===t.value&&e instanceof X;if("in"===t.op&&t.key){const a=t.value instanceof Array?t.value:[t.value];return t.key in e&&a.includes(e[t.key])}return"match"===t.op&&t.key?t.key in e&&"string"==typeof t.value&&"string"==typeof e[t.key]&&e[t.key].toLowerCase().includes(t.value.toLocaleLowerCase()):"=="===t.op&&t.key?t.key in e&&e[t.key]===t.value:"<="===t.op&&t.key?t.key in e&&e[t.key]<=t.value:!(">="!==t.op||!t.key)&&t.key in e&&e[t.key]>=t.value}function Ci(e){return"and"===e.op||"or"===e.op?e.list instanceof Array&&e.list.every((e=>Ci(e))):"not"===e.op?e.list instanceof Array&&1==e.list.length&&Ci(e.list[0]):"kind"===e.op?"link"===e.value||"marker"===e.value:"in"===e.op?e.key&&e.value instanceof Array:"match"===e.op?e.key&&"string"==typeof e.value:"=="===e.op?!!e.key:("<="===e.op||">="===e.op)&&e.key&&"number"==typeof e.value}function yi(e){try{return Ci(e)}catch{return!1}}function Ri(e){return!Di||Ni(e,Di)}const Ii=Kt.extend({statics:{TYPE:"operationChecklist"},SORTBY_KEY:"wasabee-checklist-sortby",SORTASC_KEY:"wasabee-checklist-sortasc",options:{usePane:!0},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),window.map.on("wasabee:filter",this.update,this),window.addHook("portalAdded",Ve),window.addHook("portalDetailsLoaded",je),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:filter",this.update,this),window.removeHook("portalAdded",Ve),window.removeHook("portalDetailsLoaded",je)},_displayDialog:async function(){const e=Re();Xe(e),this.sortable=this.getListDialogContent(e,e.links.concat(e.markers),this.SORTBY_KEY,this.SORTASC_KEY);const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("LOAD PORTALS")]=()=>{Xe(Re(),!0)},t[Se("dialog.checklist.count_fields")]=()=>{this.countFields(Re(),!0)},e.canWrite()&&(t[Se("SET_MARKERS_ZONES")]=()=>{vi()},t[Se("SET_LINKS_ZONES")]=()=>{Oi()}),await this.sortable.done,this.createDialog({title:Se("OP_CHECKLIST",{opName:e.name}),html:this.sortable.table,width:"auto",dialogClass:"ui-resizable wasabee-dialog wasabee-dialog-checklist",buttons:t,id:b.dialogNames.operationChecklist})},update:async function(){if(!this.sortable)return;const e=Re();this.setTitle(Se("OP_CHECKLIST",{opName:e.name})),this.sortable=this.getListDialogContent(e,e.links.concat(e.markers),this.SORTBY_KEY,this.SORTASC_KEY),await this.sortable.done,this.setContent(this.sortable.table)},getFields:function(e){const t=e.canWrite(),a=[{name:this._smallScreen?"#":Se("ORDER"),className:"order",value:e=>e.order,format:(a,o,n)=>{const i=L.DomUtil.create("input");i.value=o,i.disabled=!t,i.type="number",i.step=1,L.DomEvent.on(i,"change",(t=>{L.DomEvent.stop(t),i.value=parseInt(i.value,10),n instanceof q?e.setLinkOrder(n.ID,+i.value):e.setMarkerOrder(n.ID,+i.value)})),a.appendChild(i)}},{name:Se("PORTAL"),value:t=>e.getPortal(t.portalId).name,sort:(e,t)=>e.localeCompare(t),format:(t,a,o)=>{o instanceof q?(t.appendChild(Ti(o,e)),t.colSpan=2):t.appendChild(We(e.getPortal(o.portalId)))}},{name:Se("TYPE"),value:t=>t instanceof q?e.getPortal(t.toPortalId).name:Se(t.type),sort:(e,t)=>e.localeCompare(t),format:(e,a,o)=>{const n=L.DomUtil.create("span",null,e);o.type&&L.DomUtil.addClass(n,o.type),n.textContent=a,o instanceof q?e.style.display="none":o instanceof X&&t&&L.DomEvent.on(e,"click",(e=>{L.DomEvent.stop(e),new Si({marker:o}).enable()}))}},{name:Se("ZONE"),value:e=>e.zone,sort:(e,t)=>e-t,format:(a,o,n)=>{const i=L.DomUtil.create("select",null,a);for(const t of e.zones){const e=L.DomUtil.create("option",null,i);e.textContent=t.name,e.value=t.id,t.id==n.zone&&(e.selected=!0)}i.disabled=!t,L.DomEvent.on(i,"change",(t=>{L.DomEvent.stop(t),e.setZone(n,i.value)}))},smallScreenHide:!0},{name:Se("COMMENT"),value:e=>e.comment,sort:(e,t)=>e.localeCompare(t),format:(a,o,n)=>{o||(o=". . ."),L.DomUtil.create("a",null,a).textContent=o,t&&L.DomEvent.on(a,"click",(t=>{L.DomEvent.stop(t),new ki({target:n,operation:e}).enable()}))},smallScreenHide:!0},{name:Se("ASS_TO"),value:async e=>{if(null!=e.assignedTo&&""!=e.assignedTo){const t=await ut(e.assignedTo);return null!=t?t.getName():"GID: ["+e.assignedTo+"]"}return". . ."},sort:(e,t)=>e.localeCompare(t),format:(t,a,o)=>{L.DomUtil.create("a",null,t).textContent=a,e.canWriteServer()&&L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),new Ai({target:o}).enable()}))},smallScreenHide:!0},{name:Se("STATE"),value:e=>e.state,sort:(e,t)=>e.localeCompare(t),format:(a,o,n)=>{const i=L.DomUtil.create("a",null,a);i.href="#",i.textContent=Se(o),t&&L.DomEvent.on(a,"click",(t=>{L.DomEvent.stop(t),new Li({target:n,opID:e.ID}).enable()}))},smallScreenHide:!0}];return t&&a.push({name:this._smallScreen?Se("dialog.common.commands_short"):Se("dialog.common.commands"),className:"actions",value:e=>typeof e,format:(t,a,o)=>{if(o instanceof q){const a=L.DomUtil.create("a",null,t);a.href="#",a.title=Se("REVERSE"),oi("left-right",a),L.DomEvent.on(a,"click",(t=>{L.DomEvent.stop(t),e.reverseLink(o.fromPortalId,o.toPortalId)}));const n=L.DomUtil.create("a",null,t);n.href="#",n.title=Se("dialog.common.delete"),oi("trash",n),L.DomEvent.on(n,"click",(t=>{L.DomEvent.stop(t),e.removeLink(o.fromPortalId,o.toPortalId)}))}else{const a=L.DomUtil.create("a",null,t);a.href="#",a.title=Se("dialog.common.delete"),oi("trash",a),L.DomEvent.on(a,"click",(t=>{L.DomEvent.stop(t),e.removeMarker(o)}))}}}),a},getListDialogContent:function(e,t,a,o){const n=new pi;return n.fields=this.getFields(e),n.sortByStoreKey=a,n.sortAscStoreKey=o,n.items=t.filter(Ri),n},countFields:function(e,t){const{fieldCount:a,emptyCount:o,emptyFieldLinks:n,linksFromInner:i,coveredPortals:r}=e.getOrderInfo();if(t){const t=L.DomUtil.create("div","field-count");if(n.length){L.DomUtil.create("div",null,t).textContent=Se("dialog.checklist.count_fields.with_empty",{fieldCount:a,emptyCount:o,linkCount:n.length});const i=L.DomUtil.create("ul",null,t);for(const[t,a]of n){const o=L.DomUtil.create("li","empty-field-link",i);o.textContent=a,o.appendChild(Ti(t,e))}}else L.DomUtil.create("div",null,t).textContent=Se("dialog.checklist.count_fields.no_empty",{fieldCount:a});if(i.length){L.DomUtil.create("div",null,t).textContent=Se("dialog.checklist.count_fields.link_from_inside",{count:i.length});const a=L.DomUtil.create("ul",null,t);for(const t of i){const o=r.get(t.fromPortalId),n=L.DomUtil.create("li","inner-link",a);n.append(`${t.order}: `),n.appendChild(Ti(t,e)),n.append(Se("dialog.checklist.count_fields.link_from_inside.covered_at_order",{order:o.order})),n.appendChild(Ti(o,e))}}n.length||i.length?Oe(t,!0):ve(t,!0)}}}),Mi=Ii.extend({statics:{TYPE:"linkListDialog"},SORTBY_KEY:"wasabee-linklist-sortby",SORTASC_KEY:"wasabee-linklist-sortasc",options:{usePane:!0},getFields:function(e){const t=Ii.prototype.getFields.call(this,e);t[2].name="";const a=[{name:Se("dialog.link_list.length"),value:t=>t.length(e),format:(e,t)=>{e.classList.add("length"),e.textContent=t>1e3?(t/1e3).toFixed(1)+"km":t.toFixed(1)+"m"},smallScreenHide:!0},{name:Se("dialog.link_list.level"),title:Se("MIN_SRC_PORT_LVL"),value:t=>t.length(e),format:(t,a,o)=>{t.appendChild(function(e,t){const a=e.length(t);let o=Se("UNKNOWN");const n=L.DomUtil.create("span",null);if(a>6881280)o=Se("IMPOSSIBLE");else if(a>1966080)o=Se("VRLA"),n.title=Se("VRLA DESC"),n.classList.add("help");else if(a>655360)o=Se("LA"),n.title=Se("LA DESC"),n.classList.add("help");else{const e=Math.max(1,Math.ceil(8*Math.pow(a/160,.25))/8),t=8*(e-Math.floor(e));o="L"+e,0!=t&&(1&t||(o+=" "),1&t||2&t||(o+=" "),o=o+" = L"+Math.floor(e)+"0⅛¼⅜½⅝¾⅞".charAt(t))}return n.textContent=o,n}(o,e))},smallScreenHide:!0}];return t.slice(0,3).concat(a,t.slice(3))},_displayDialog:async function(){const e=Re();Xe(e);const t=e.getLinkListFromPortal(this.options.portal),a=t.filter((e=>e.fromPortalId==this.options.portal.id)).length,o=t.length-a;this.sortable=this.getListDialogContent(e,t,this.SORTBY_KEY,this.SORTASC_KEY);const n={};n[Se("CLOSE")]=()=>{this.closeDialog()},n[Se("dialog.link_list.all_from")]=()=>{this._setAllLinksDirection(!0)},n[Se("dialog.link_list.all_to")]=()=>{this._setAllLinksDirection(!1)},await this.sortable.done,this.createDialog({title:Se("LINKS2",{portalName:Fe(this.options.portal),outgoing:a,incoming:o}),html:this.sortable.table,width:"auto",dialogClass:"checklist",buttons:n,id:b.dialogNames.linkList})},update:async function(){if(!this.sortable)return;const e=Re(),t=e.getLinkListFromPortal(this.options.portal),a=t.filter((e=>e.fromPortalId==this.options.portal.id)).length,o=t.length-a;this.sortable=this.getListDialogContent(e,t,this.SORTBY_KEY,this.SORTASC_KEY),await this.sortable.done,this.setContent(this.sortable.table),this.setTitle(Se("LINKS2",{portalName:Fe(this.options.portal),outgoing:a,incoming:o}))},_setAllLinksDirection(e){const t=Re();t.startBatchMode();const a=t.getLinkListFromPortal(this.options.portal);for(const o of a)e&&o.toPortalId===this.options.portal.id&&t.reverseLink(o),e||o.fromPortalId!==this.options.portal.id||t.reverseLink(o);t.endBatchMode()}}),Pi=Mi,xi=Kt.extend({statics:{TYPE:"sendTargetDialog"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this._sendTarget()},this._html=L.DomUtil.create("div",null),this._setup(),this.createDialog({title:Se("SEND TARGET AGENT"),html:this._html,width:"auto",dialogClass:"sendtarget",buttons:e,id:b.dialogNames.assign,autofocus:!0})},_setup:async function(){const e=L.DomUtil.create("div","desc",this._html),t=await this._getAgentMenu(this.options.target.assignedTo);this._targettype="ad hoc target";const a=Re();if(this.options.target instanceof X){this._portal=a.getPortal(this.options.target.portalId),this._targettype=this.options.target.type,e.appendChild(We(this._portal));const o=L.DomUtil.create("label",null);o.textContent=Se("SEND TARGET AGENT"),t.prepend(o)}if(this.options.target instanceof ee){this._portal=this.options.target,this._targettype="anchor",e.appendChild(We(this._portal));const a=L.DomUtil.create("label",null);a.textContent=Se("SEND TARGET AGENT"),t.prepend(a)}this._html.appendChild(t)},_buildContent:function(){const e=L.DomUtil.create("div");return"string"==typeof this._label?e.textContent=this._label:e.appendChild(this._label),e},_getAgentMenu:async function(e){const t=L.DomUtil.create("div","wasabee-agent-menu"),a=L.DomUtil.create("select",null,t);let o=a.appendChild(L.DomUtil.create("option",null));o.value="",o.textContent=Se("UNASSIGNED");const n=new Array,i=Re();a.addEventListener("change",(()=>{this._value=a.value}));const r=await pt(),s=await ht(i.teamlist.map((e=>e.teamid)).filter((e=>r.teamJoined(e))),300);for(const t of s)for(const o of t.agents)if(!n.has(o.id)){n.add(o.id);const t=L.DomUtil.create("option");t.value=o.id,t.textContent=o.getName(),o.id==e&&(t.selected=!0),a.appendChild(t)}return t},_sendTarget:function(){this._value&&this._portal?Dt(this._value,this._portal,this._targettype).then((()=>{ve(Se("TARGET SENT")),this.closeDialog()})).catch((e=>De(e))):this.closeDialog()}}),Ui=xi,Bi=L.Marker.extend({type:"portal",initialize:function(e){const t=Re().getPortal(e.portalId);e.title=t.name,L.Marker.prototype.initialize.call(this,t.latLng,e),this.bindPopup((e=>e._popupContent()),{className:"wasabee-popup",closeButton:!1}),this.off("click",this._openPopup),window.registerMarkerForOMS(this),this.on("spiderfiedclick",this._openPopup),this.on("spiderfiedclick",this._onClick)},_onClick:function(){const e=Re().getPortal(this.options.portalId);e&&window.map.fire("wasabee:portal:click",{portal:e})},_popupContent:function(){return L.DomUtil.create("div",`wasabee-${this.type}-popup`)},_popupPortalComments:function(e,t,a){const o=L.DomUtil.create("div","wasabee-portal-comment",e),n=L.DomUtil.create("a",null,o);if(n.textContent=t.comment||Se("SET_PORTAL_COMMENT"),a&&(n.href="#",L.DomEvent.on(n,"click",this._setPortalComment,this)),t.hardness){const o=L.DomUtil.create("div","wasabee-portal-hardness",e),n=L.DomUtil.create("a",null,o);n.textContent=t.hardness,a&&(n.href="#",L.DomEvent.on(n,"click",this._setPortalComment,this))}},_setPortalComment:function(e){L.DomEvent.stop(e);const t=Re(),a=t.getPortal(this.options.portalId);new ki({target:a,operation:t}).enable(),this.closePopup()},_assignButton:function(e,t,a){const o=L.DomUtil.create("button",null,e);o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new Ai({target:a}).enable(),this.closePopup()}))},_deleteButton:function(e,t){const a=L.DomUtil.create("button",null,e);a.textContent=t,L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),this._deleteAction&&this._deleteAction(),this.closePopup()}))},_sendTargetButton:function(e,t,a){const o=L.DomUtil.create("button",null,e);o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new Ui({target:a}).enable(),this.closePopup()}))},_mapButton:function(e,t){const a=L.DomUtil.create("button",null,e);a.textContent=t,L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),this.closePopup();const t=this.getLatLng();void 0!==window.android&&window.android&&window.android.intentPosLink?window.android.intentPosLink(+t.lat,+t.lng,window.map.getZoom(),this.options.title,!0):window.open("https://www.google.com/maps/search/?api=1&query="+t.lat+","+t.lng)}))}}),Ki=Bi.extend({type:"anchor",initialize:function(e,t,a="main"){"main"===a&&(a=t.color);const o=L.divIcon({className:"wasabee-anchor-icon",shadowUrl:null,iconAnchor:[12,41],iconSize:[25,41],popupAnchor:[0,-35],html:L.Util.template('',{color:"main"===a?window.plugin.wasabee.skin.defaultOperationColor:a})});Bi.prototype.initialize.call(this,{portalId:e,id:e,icon:o,color:a})},_popupContent:function(){const e=Re(),t=e.canWrite(),a=e.getPortal(this.options.portalId),o=Bi.prototype._popupContent.call(this),n=L.DomUtil.create("div","desc",o);n.appendChild(We(a)),this._popupPortalComments(n,a,t);const i=L.DomUtil.create("div","info-block",o),r=L.DomUtil.create("div","key-required",i),s=e.KeysOnHandForPortal(a.id);let l=0;const c={};for(const t of e.links){if(!Ri(t))continue;const e=t.assignedTo||"[unassigned]";t.toPortalId==this.options.portalId&&(t.completed||(c[e]=(c[e]||0)+1,l++))}if(r.textContent=Se("popup.anchor.keys",{onHand:s,required:l}),s=l)for(const e in c)if(!d[e]||d[e]{L.DomEvent.stop(e),new Pi({portal:t}).enable(),this.closePopup()}))},_swapButton:function(e){const t=Re(),a=t.getPortal(this.options.portalId),o=L.DomUtil.create("button","swap",e);o.textContent=Se("SWAP"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),function(e,t){const a=Ze();if(!a)return void De(Se("SELECT PORTAL"));if(t.id===a.id)return void De(Se("SELF SWAP"));const o=L.DomUtil.create("div",null);o.textContent=Se("SWAP PROMPT"),o.appendChild(We(t)),L.DomUtil.create("span",null,o).textContent=Se("SWAP WITH"),o.appendChild(We(a)),L.DomUtil.create("span",null,o).textContent="?",new si({title:Se("SWAP TITLE"),label:o,type:"anchor",callback:()=>{e.swapPortal(t,a)}}).enable()}(t,a),this.closePopup()}))},_dupButton:function(e){const t=Re(),a=t.getPortal(this.options.portalId),o=L.DomUtil.create("button","duplicate",e);o.textContent=Se("popup.anchor.duplicate"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),function(e,t){const a=Ze();a?t.id!==a.id&&e.duplicateAnchor(t,a):De(Se("SELECT PORTAL"))}(t,a),this.closePopup()}))},_deleteAction:function(){const e=Re(),t=e.getPortal(this.options.portalId);!function(e,t){const a=L.DomUtil.create("div",null);a.textContent=Se("DELETE ANCHOR PROMPT"),a.appendChild(We(t)),new si({title:Se("DELETE ANCHOR TITLE"),label:a,type:"anchor",callback:()=>{e.removeAnchor(t.id)}}).enable()}(e,t)}}),Gi=L.GeodesicPolyline.extend({initialize:function(e,t){const a=e.getLatLngs(t);let o=e.getColor(t);"main"==o&&(o=window.plugin.wasabee.skin.defaultOperationColor),o=ei(o);const n=L.extend({color:o,opID:t.ID,linkID:e.ID},window.plugin.wasabee.skin.linkStyle);e.assignedTo&&(n.dashArray=n.assignedDashArray),L.GeodesicPolyline.prototype.initialize.call(this,a,n),this._wlink=e,this.bindPopup((e=>e._getPopup()),{className:"wasabee-popup",closeButton:!1})},_getPopup:function(){const e=Re(),t=this._wlink,a=L.DomUtil.create("div","wasabee-link-popup");L.DomUtil.create("div",null,a).appendChild(Ti(t,e)),t.comment&&(L.DomUtil.create("div","enl",a).textContent=t.comment);const o=L.DomUtil.create("div","info-block",a);L.DomUtil.create("div","link-order",o).textContent="#"+t.order;const n=t.length(e);L.DomUtil.create("div","link-length",o).textContent=n>1e3?(n/1e3).toFixed(1)+"km":n.toFixed(1)+"m";const i=L.DomUtil.create("div","buttonset",a);if(e.canWrite()){const a=L.DomUtil.create("button",null,i);a.textContent=Se("DELETE_LINK"),L.DomEvent.on(a,"click",(a=>{L.DomEvent.stop(a),e.removeLink(t.fromPortalId,t.toPortalId)}));const o=L.DomUtil.create("button",null,i);o.textContent=Se("REVERSE"),L.DomEvent.on(o,"click",(a=>{L.DomEvent.stop(a),e.reverseLink(t.fromPortalId,t.toPortalId)}))}if(e.canWriteServer()){const e=L.DomUtil.create("button",null,i);e.textContent=Se("ASSIGN"),L.DomEvent.on(e,"click",(e=>{L.DomEvent.stop(e),new Ai({target:t}).enable()}))}return a}}),Hi=Bi.extend({type:"marker",initialize:function(e){Bi.prototype.initialize.call(this,{portalId:e.portalId,id:e.ID,state:e.state,icon:L.divIcon({className:`wasabee-marker-icon ${e.type} wasabee-status-${e.state}`,shadowUrl:null,iconSize:L.point(24,40),iconAnchor:L.point(12,40),popupAnchor:L.point(-1,-48)})})},setState:function(e){e!=this.options.state&&(L.DomUtil.removeClass(this._icon,`wasabee-status-${this.options.state}`),L.DomUtil.addClass(this._icon,`wasabee-status-${e}`),this.options.state=e)},_popupContent:function(){const e=Re(),t=e.getMarker(this.options.id),a=e.getPortal(t.portalId);if(null==a)return console.log("null portal getting marker popup"),L.DomUtil.create("div","wasabee-marker-popup").textContent="invalid portal";const o=e.canWrite(),n=Bi.prototype._popupContent.call(this),i=L.DomUtil.create("div","desc",n),r=L.DomUtil.create("span",`wasabee-marker-popup-kind ${t.type}`,i);r.textContent=Se(t.type),i.appendChild(We(a)),o&&(r.href="#",L.DomEvent.on(r,"click",this._setMarkerType,this)),this._popupMarkerComment(i,t,o),this._popupPortalComments(i,a,o),this._popupAssignState(n,t);const s=L.DomUtil.create("div","wasabee-marker-buttonset",n);return o&&this._deleteButton(s,Se("DELETE_ANCHOR")),e.canWriteServer()&&this._assignButton(s,Se("ASSIGN"),t),o&&this._stateButton(s,t),o&&this._swapButton(s,t),e.isOnCurrentServer()&&this._sendTargetButton(s,Se("SEND TARGET"),t),this._mapButton(s,Se("ANCHOR_GMAP")),n},_popupMarkerComment:function(e,t,a){const o=L.DomUtil.create("div","wasabee-marker-popup-comment",e);o.textContent=t.comment||Se("SET_COMMENT"),a&&L.DomEvent.on(o,"click",this._setComment,this)},_popupAssignState:async function(e,t){const a=L.DomUtil.create("div","wasabee-popup-assignment",e);if("completed"!=t.state&&t.assignedTo)try{const e=await ut(t.assignedTo);a.textContent=Se("ASS_TO"),e?a.appendChild(ii(e)):a.textContent+=" "+t.assignedTo}catch(e){console.error(e)}},_stateButton:function(e,t){const a=Re(),o=L.DomUtil.create("button",null,e);o.textContent=Se("popup.marker.state_button"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new Li({target:t,opID:a.ID}).enable(),this.closePopup()}))},_swapButton:function(e,t){const a=Re(),o=L.DomUtil.create("button",null,e);o.textContent=Se("SWAP"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),function(e,t){const a=Ze();if(!a)return void De(Se("SELECT PORTAL"));if(t.portalId===a.id)return void De(Se("SELF SWAP"));const o=e.getPortal(t.portalId),n=L.DomUtil.create("div",null);n.textContent=Se("swap.marker.prompt"),n.appendChild(We(o)),L.DomUtil.create("span",null,n).textContent=Se("SWAP WITH"),n.appendChild(We(a)),L.DomUtil.create("span",null,n).textContent="?",new si({title:Se("swap.marker.title"),label:n,type:"anchor",callback:()=>{e.startBatchMode(),e.removeMarker(t),e.addMarker(t.type,a,{zone:t.zone,comment:t.comment,assign:t.assignedTo}),X.isDestructMarkerType(t.type)&&z.removeBlocker(e,o.id),e.endBatchMode()}}).enable()}(a,t),this.closePopup()}))},_deleteAction:function(){const e=Re(),t=e.getPortal(this.options.portalId),a=e.getMarker(this.options.id);!function(e,t,a){const o=L.DomUtil.create("div",null);o.textContent=Se("DELETE MARKER PROMPT"),o.appendChild(We(a)),new si({title:Se("DELETE MARKER TITLE"),label:o,type:"marker",callback:()=>{e.removeMarker(t),window.map.fire("wasabee:crosslinks")}}).enable()}(e,a,t)},_setComment:function(e){L.DomEvent.stop(e);const t=Re(),a=t.getMarker(this.options.id);new ki({target:a,operation:t}).enable(),this.closePopup()},_setMarkerType:function(e){L.DomEvent.stop(e);const t=Re().getMarker(this.options.id);new Si({marker:t}).enable(),this.closePopup()}}),zi={stroke:!1,opacity:.7,fill:!0},Fi=L.FeatureGroup.extend({initialize:function(e){e.points.sort(((e,t)=>e.position-t.position));const t=[];if(1==e.points.length)t.push(L.marker(e.points[0],{icon:new L.DivIcon.ColoredSvg(e.color),title:e.name}));else if(2==e.points.length)t.push(L.polyline(e.points,{color:e.color}));else if(e.points.length>2){const a=L.polygon(e.points,{color:e.color,shapeOptions:zi});a.bindTooltip(e.name,{className:"ui-tooltip wasabee-zone-tooltip",sticky:!0}),t.push(a)}L.FeatureGroup.prototype.initialize.call(this,t)},onAdd(e){L.FeatureGroup.prototype.onAdd.call(this,e),this.bringToBack()}}),Wi=window.plugin.wasabee;function Yi(){const e=Re();!function(e){if(!1===window.isLayerGroupDisplayed("Wasabee Draw Portals"))return;if(!e.anchors||0==e.anchors.length)return void Wi.portalLayerGroup.clearLayers();const t=new Set,a=new Map;for(const o of e.links){if(!Ri(o))continue;t.add(o.fromPortalId),t.add(o.toPortalId);const n=o.fromPortalId,i=a.get(n)||[],r=ei("main"===o.color?"main"===e.color?Wi.skin.defaultOperationColor:e.color:o.color);i.push(r),a.set(n,i)}const o=new Map;for(const e of Wi.portalLayerGroup.getLayers()){const t=a.get(e.options.portalId),n=t?ti(t):"main";e.options.color!=n?Wi.portalLayerGroup.removeLayer(e._leaflet_id):o.set(e.options.id,e._leaflet_id)}for(const n of t)if(o.has(n))o.delete(n);else{const t=a.get(n),o=t?ti(t):"main";new Ki(n,e,o).addTo(Wi.portalLayerGroup)}for(const e of o.values())Wi.portalLayerGroup.removeLayer(e)}(e),function(e){if(!1===window.isLayerGroupDisplayed("Wasabee Draw Markers"))return;if(!e.markers||0==e.markers.length)return void Wi.markerLayerGroup.clearLayers();const t=new Map;for(const e of Wi.markerLayerGroup.getLayers())t.set(e.options.id,e._leaflet_id);for(const a of e.markers)Ri(a)&&(t.has(a.ID)?(Wi.markerLayerGroup.getLayer(t.get(a.ID)).setState(a.state),t.delete(a.ID)):new Hi(a).addTo(Wi.markerLayerGroup));for(const e of t.values())Wi.markerLayerGroup.removeLayer(e)}(e),function(e){if(!1!==window.isLayerGroupDisplayed("Wasabee Draw Links")&&(Wi.linkLayerGroup.clearLayers(),e.links&&0!=e.links.length))for(const t of e.links)Ri(t)&&new Gi(t,e).addTo(Wi.linkLayerGroup)}(e),function(e){if(Wi.zoneLayerGroup.clearLayers(),e.zones&&0!=e.zones.length){for(const t of e.zones)new Fi(t).addTo(Wi.zoneLayerGroup);Wi.zoneLayerGroup.bringToBack()}}(e)}async function Zi(e){if(!1===window.isLayerGroupDisplayed("Wasabee Background Ops"))return;Wi.backgroundOpsGroup.clearLayers();const t=Re().ID;void 0===e&&(e=await Be());for(const a of e){if(a===t)continue;const e=await _e.load(a);e.background&&qi(e)}}function qi(e,t,a){if(e&&e.links&&0!=e.links.length){t||(t=Wi.backgroundOpsGroup),a||(a=Wi.skin.backgroundLinkStyle);for(const o of e.links){const n=o.getLatLngs(e);n&&new L.GeodesicPolyline(n,a).addTo(t)}}}async function Vi(){if(!1===window.isLayerGroupDisplayed("Wasabee Agents"))return;if(!$.isLoggedIn())return;const e=ji();let t=[];const a=await pt();await ht(a.Teams.map((e=>e.ID)),15);for(const o of a.Teams){const a=await Qi(o.ID,e,t);t=t.concat(a)}for(const a of t)e.delete(a);for(const[t,a]of e)console.debug("removing stale agent",t),Wi.agentLayerGroup.removeLayer(a)}function ji(){const e=new Map;for(const t of Wi.agentLayerGroup.getLayers())e.set(t.options.id,Wi.agentLayerGroup.getLayerId(t));return e}async function Qi(e,t,a){const o=[];if(!1===window.isLayerGroupDisplayed("Wasabee Agents"))return o;void 0===a&&(a=[]),void 0===t&&(t=ji());try{const n=await mt(e,15);if(null==n)return o;for(const e of n.agents)!a.includes(e.id)&&Ji(e,t)&&o.push(e.id)}catch(e){console.error(e)}return o}function Ji(e,t=ji()){if(!e.id||!e.lat&&!e.lng)return!1;if(t.has(e.id)){const a=t.get(e.id),o=Wi.agentLayerGroup.getLayer(a),n=o.getLatLng();e.lat==n.lat&&e.lng==n.lng||o.setLatLng(e.latLng)}else{const a=new ui(e);a.addTo(Wi.agentLayerGroup),t.set(e.id,Wi.agentLayerGroup.getLayerId(a))}return!0}function Xi(){if("true"===localStorage[w.POPULATE_OPPORTALS]){const e=Re(),t=[];for(const a of e.opportals)a.id in window.portals||t.push([a.id,-1,["p","N",Math.trunc(1e6*+a.lat),Math.trunc(1e6*+a.lng)]]);window.mapDataRequest.render.processGameEntities(t,"core")}window.removeHook("mapDataEntityInject",Xi)}function $i(){if("true"===localStorage[w.POPULATE_OPPORTALS]){const e=Re();for(const t of e.opportals)window.mapDataRequest.render.seenPortalsGuid[t.id]=!0}}class er{constructor(){this.anchor1=null,this.anchor2=null}getName(){return Se("toolbar.quick_draw.mode.multilayer")}onPortalClick(e,t,a){this.anchor1?this.anchor2?this.anchor1.id!==t.id&&this.anchor2.id!==t.id&&(e.startBatchMode(),e.addLink(t,this.anchor1,{order:e.nextOrder,color:a.color}),e.addLink(t,this.anchor2,{order:e.nextOrder,color:a.color}),e.endBatchMode()):this.anchor1.id!==t.id&&(e.addLink(t,this.anchor1,{description:Se("QDBASE"),order:e.nextOrder,color:a.color}),this.anchor2=t,localStorage[w.ANCHOR_TWO_KEY]=JSON.stringify(this.anchor2)):(this.anchor1=t,localStorage[w.ANCHOR_ONE_KEY]=JSON.stringify(this.anchor1))}getGuides(e){return this.anchor1?this.anchor2?[[this.anchor1.latLng,e],[this.anchor2.latLng,e]]:[[this.anchor1.latLng,e]]:[]}getTooltip(){return this.anchor1?this.anchor2?Se("QDCONT"):Se("QDNEXT"):Se("QDSTART")}}class tr{constructor(){this.prev=null}getName(){return Se("toolbar.quick_draw.mode.singlelink")}onPortalClick(e,t,a){this.prev&&this.prev.id!==t.id&&e.addLink(t,this.prev,{order:e.nextOrder,color:a.color}),this.prev=t}getGuides(e){return this.prev?[[this.prev.latLng,e]]:[]}getTooltip(){return this.prev?Se("toolbar.quick_draw.tooltip.single_mode.next"):Se("toolbar.quick_draw.tooltip.single_mode.first")}}class ar{constructor(){this.anchor=null}getName(){return Se("toolbar.quick_draw.mode.starburst")}onPortalClick(e,t,a){this.anchor?this.anchor.id!==t.id&&e.addLink(t,this.anchor,{order:e.nextOrder,color:a.color}):this.anchor=t}getGuides(e){return this.anchor?[[this.anchor.latLng,e]]:[]}getTooltip(){return this.anchor?Se("toolbar.quick_draw.tooltip.star_mode.portal"):Se("toolbar.quick_draw.tooltip.star_mode.anchor")}}class or{constructor(e){this.anchor=null,this.op=e}getName(){return Se("toolbar.quick_draw.mode.burst")}getCandidates(e,t){const a=[];if(2==e.anchors.length)a.push(e.getPortal(e.anchors[0])),a.push(e.getPortal(e.anchors[1]));else for(const o of e.anchors){const n=e.getPortal(o);e.links.every((a=>!ge([t,n.latLng],a.getLatLngs(e))))&&a.push(n)}return a}onPortalClick(e,t,a){if(0==e.anchors.length)this.anchor?(e.addLink(t,this.anchor,{order:e.nextOrder,color:a.color}),this.anchor=null):this.anchor=t;else{const o=this.getCandidates(e,t.latLng).map((e=>[window.map.distance(t.latLng,e.latLng),e]));o.sort(((e,t)=>t[0]-e[0])),e.startBatchMode();for(const[,n]of o)e.addLink(t,n,{order:e.nextOrder,color:a.color});e.endBatchMode()}}getGuides(e){return 0==this.op.anchors.length&&this.anchor?[[e,this.anchor.latLng]]:this.getCandidates(this.op,e).map((t=>[e,t.latLng]))}getTooltip(){return Se("toolbar.quick_draw.tooltip.burst.portal")}}class nr extends Ht{constructor(e){super(e),this.needWritePermission=!0,this.title=Se("QD TITLE"),this.handler=new ir({button:this}),this._container=e,this.type=nr.TYPE,this.button=this._createButton({title:this.title,container:e,className:"wasabee-toolbar-quickdraw",callback:this.handler.enable,context:this.handler}),this.picker=L.DomUtil.create("input","hidden-color-picker"),this.picker.type="color",this.picker.value="#000000",this.picker.setAttribute("list","wasabee-colors-datalist"),L.DomEvent.on(this.picker,"change",(e=>{this.handler._nextDrawnLinksColor=e.target.value})),this.setSubActions(this.getSubActions()),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("QD TITLE"),this.setSubActions(this.getSubActions()),this.handler.updateTooltip()})),this.update()}getSubActions(){const e={title:Se("QD BUTTON CHANGE COLOR"),text:Se("QD CHANGE COLOR"),html:this.picker,callback:()=>{this.picker.click()},context:null};return[{title:Se("QD BUTTON TOGGLE MODE"),text:Se("toolbar.quick_draw.toggle.text",{mode:this.handler.getMode().getName()}),callback:()=>{this.handler._toggleMode()},context:null},e,{title:Se("QD BUTTON END"),text:Se("QD END"),callback:this.handler.disable,context:this.handler}]}enable(){Ht.prototype.enable.call(this),this.button.classList.add("active")}disable(){Ht.prototype.disable.call(this),this.handler.enabled()&&this.handler.disable.call(this.handler),this.button.classList.remove("active")}}nr.TYPE="QuickdrawButton";class ir extends L.Handler{constructor(e){super(window.map),L.setOptions(this,e),this._modes=[er,tr,ar,or]}enable(){return this.enabled()?(this.disable(),this):(super.enable(),this.options.button.enable(),dt({id:"analytics",action:"quickdrawStart"}),this)}disable(){return this.enabled()?(super.disable(),this.options.button.disable(),dt({id:"analytics",action:"quickdrawEnd"}),this):this}addHooks(){L.DomUtil.disableTextSelection(),this._tooltip=new Ut(this._map),this._guideLayerGroup=new L.LayerGroup,window.addLayerGroup("Wasabee Quickdraw Guide",this._guideLayerGroup,window.isSmartphone()),this._operation=Re(),this._nextDrawnLinksColor=this._operation.color,this._opID=this._operation.ID,this._currentMode=new this._modes[0](this._operation),this._tooltip.updateContent(this._currentMode.getTooltip()),window.map.on("wasabee:portal:click",this._portalClicked,this),window.map.on("wasabee:op:select",this._opchange,this),window.map.on("keyup",this._keyUpListener,this),window.map.on("mousemove",this._onMouseMove,this)}removeHooks(){window.removeLayerGroup(this._guideLayerGroup),L.DomUtil.enableTextSelection(),this._tooltip.dispose(),this._tooltip=null,window.map.off("wasabee:portal:click",this._portalClicked,this),window.map.off("wasabee:op:select",this._opchange,this),window.map.off("keyup",this._keyUpListener,this),window.map.off("mousemove",this._onMouseMove,this)}getMode(){return this._currentMode||(this._currentMode=new this._modes[0](this._operation)),this._currentMode}updateTooltip(){this.enabled()&&this._tooltip.updateContent(this._currentMode.getTooltip())}_opchange(){this.enabled()&&Re().ID!=this._opID&&(console.log("operation changed mid-quickdraw - disabling"),this.disable())}_keyUpListener(e){if(this.enabled())switch(e.originalEvent.key){case"Escape":case"Esc":this.disable();break;case"/":case"g":dt({id:"analytics",action:"quickdrawGuides"}),this._guideLayerToggle();break;case"t":case"m":dt({id:"analytics",action:"quickdrawMode"}),this._toggleMode();break;case"X":dt({id:"analytics",action:"quickdrawClearAll"}),this._operation.clearAllLinks(),window.map.fire("wasabee:crosslinks")}}_onMouseMove(e){e.latlng&&this._guideUpdate(e)}_guideUpdate(e){this._guideLayerGroup.clearLayers();for(const t of this._currentMode.getGuides(e.latlng))L.polyline(t,w.QUICKDRAW_GUIDE_STYLE).addTo(this._guideLayerGroup);const t=[];for(const e of this._guideLayerGroup.getLayers()){const a=e.getLatLngs()[0].distanceTo(e.getLatLngs()[1]);t.push(a>1e3?(.001*a).toFixed(2)+" km":a.toFixed(0)+" m")}if(0===t.length)return;const a=document.createDocumentFragment();a.append(t.join(" / "),L.DomUtil.create("br"),this._currentMode.getTooltip()),this._tooltip.updateContent(a,!0)}_guideLayerToggle(){window.map.hasLayer(this._guideLayerGroup)?this._guideLayerGroup.remove():(this._guideLayerGroup.addTo(window.map),window.mapDataRequest.render.bringPortalsToFront())}_portalClicked(e){const t=e.portal;t instanceof ee?(this._currentMode.onPortalClick(this._operation,t,{color:this._nextDrawnLinksColor}),this._tooltip.updateContent(this._currentMode.getTooltip())):this._tooltip.updateContent(Se("toolbar.quick_draw.tooltip.portal_fail"))}_toggleMode(){this._modes.push(this._modes.shift()),this._currentMode=new this._modes[0](this._operation),this._guideLayerGroup.clearLayers(),this._tooltip.updateContent(this._currentMode.getTooltip()),this.options.button.setSubActions(this.options.button.getSubActions())}}const rr=nr,sr=Kt.extend({statics:{TYPE:"promptDialog"},options:{title:Se("NO_TITLE"),label:Se("NO_LABEL"),placeholder:"",current:"",suggestions:[],nonEmpty:!1},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this)},_submit:function(){this.options.nonEmpty&&!this.inputField.value||(this.options.callback&&this.options.callback(),this.closeDialog())},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this._submit()},e[Se("CANCEL")]=()=>{this.options.cancelCallback&&this.options.cancelCallback(),this.closeDialog()},this.createDialog({title:this.options.title,html:this._buildContent(),width:"auto",dialogClass:"prompt",buttons:e,autofocus:!0})},_buildContent:function(){const e=L.DomUtil.create("form","container");if("string"==typeof this.options.label?L.DomUtil.create("label",null,e).textContent=this.options.label:e.appendChild(this.options.label),this.inputField=L.DomUtil.create("input",null,e),this.inputField.id="inputField",this.inputField.placeholder=this.options.placeholder,this.inputField.value=this.options.current,this.inputField.required=this.options.nonEmpty,this.options.suggestions){const t=L.DomUtil.create("datalist",null,e);t.id="wasabee-prompt-suggestions";for(const e of this.options.suggestions){const a=L.DomUtil.create("option",null,t);"string"==typeof e?a.value=e:(a.textContent=e.text,a.value=e.value)}this.inputField.setAttribute("list","wasabee-prompt-suggestions")}return L.DomEvent.on(e,"submit",this._submit,this),e}}),lr=Kt.extend({statics:{TYPE:"teamMembershipList"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:team:update",this.update,this),window.map.on("wasabee:logout",this.closeDialog,this),this._displayDialog().catch((e=>{console.error(e),De(e)}))},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:team:update",this.update,this),window.map.off("wasabee:logout",this.closeDialog,this)},_displayDialog:async function(){this._table=this._setupTable();const e=await mt(this.options.teamID,10);this._table.items=e.agents;const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:e.name,html:this._table.table,width:"auto",dialogClass:"teamlist",buttons:t})},update:async function(){const e=await mt(this.options.teamID,10);this._table.items=e.agents,this.setTitle(e.name)},_setupTable:function(){const e=new pi;return e.fields=[{name:Se("AGENT"),value:e=>e.getName(),sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>e.appendChild(ii(a))},{name:Se("COMMENT"),value:e=>e.comment,sort:(e,t)=>e.localeCompare(t)},{name:Se("dialog.team_members.location"),value:e=>e.shareLocation,sort:(e,t)=>e.localeCompare(t),format:(e,t)=>{t&&(e.textContent="✅")}},{name:Se("dialog.team_members.wd_keys"),value:e=>e.shareWDKeys,sort:(e,t)=>e.localeCompare(t),format:(e,t)=>{t&&(e.textContent="✅")}}],e.sortBy=0,e}}),cr=lr,dr=Kt.extend({statics:{TYPE:"manageTeamDialog"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:team:update",this.update,this),window.map.on("wasabee:logout",this.closeDialog,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:team:update",this.update,this),window.map.off("wasabee:logout",this.closeDialog,this)},_setupTable:async function(){const e=new pi;return e.fields=[{name:Se("AGENT"),value:e=>e.getName(),sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>e.appendChild(ii(a))},{name:Se("TEAM STATE"),value:e=>e.shareLocation,sort:(e,t)=>e&&!t},{name:Se("COMMENT"),value:e=>e.comment,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e);const o=new sr({title:Se("dialog.agent_comment.title",{agentName:a.name}),label:Se("dialog.agent_comment.text"),callback:async()=>{try{await function(e,t,a){const o=new FormData;return o.append("squad",a),Mt(`/api/v1/team/${t}/${e}/comment`,o)}(a.id,this.options.team.ID,o.inputField.value),await mt(this.options.team.ID,0),window.map.fire("wasabee:team:update")}catch(e){console.error(e),De(e)}},current:t,placeholder:"boots"});o.enable()}))}},{name:Se("REMOVE"),value:e=>e.id,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=L.DomUtil.create("button",null,e);o.textContent=Se("REMOVE"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new si({title:Se("dialog.remove_agent.title",{agentName:a.name}),label:Se("dialog.remove_agent.text",{agentName:a.name,teamName:this.options.team.Name}),type:"agent",callback:async()=>{try{await(e=t,a=this.options.team.ID,xt(`/api/v1/team/${a}/${e}`)),await mt(this.options.team.ID,0)}catch(e){console.error(e)}var e,a;window.map.fire("wasabee:team:update")}}).enable()}))}}],e.sortBy=0,await this._refreshTeam(e),e},_refreshTeam:async function(e){try{const t=(await mt(this.options.team.ID,5)).agents;t&&t.length>0&&(e.items=t)}catch(e){console.error(e)}},update:async function(){const e=await this._dialogContent();this.setContent(e),this.setTitle(Se("MANAGE_TEAM",{teamName:this.options.team.Name}))},_dialogContent:async function(){const e=L.DomUtil.create("div","container"),t=L.DomUtil.create("div","list",e),a=await this._setupTable();t.appendChild(a.table),await a.done;const o=await mt(this.options.team.ID);this.options.team.Name=o.name,L.DomUtil.create("label",null,e).textContent=Se("ADD_AGENT");const n=L.DomUtil.create("input",null,e);n.placeholder=Se("INGNAME_GID");const i=L.DomUtil.create("button",null,e);i.textContent=Se("ADD"),L.DomEvent.on(i,"click",(async e=>{L.DomEvent.stop(e);try{await(t=n.value,a=this.options.team.ID,Mt(`/api/v1/team/${a}/${t}`,new FormData)),await mt(this.options.team.ID,0),ve(Se("ADD_SUCC_INSTR")),window.map.fire("wasabee:team:update")}catch(e){console.error(e),De(e)}var t,a})),L.DomUtil.create("label",null,e).textContent=Se("RENAME_TEAM");const r=L.DomUtil.create("input",null,e);r.placeholder=Se("BAT_TOAD"),r.value=o.name;const s=L.DomUtil.create("button",null,e);s.textContent=Se("RENAME"),L.DomEvent.on(s,"click",(async e=>{L.DomEvent.stop(e);try{await function(e,t){const a=new FormData;return a.append("teamname",t),Pt(`/api/v1/team/${e}/rename`,a)}(o.id,r.value),await mt(this.options.team.ID,0),window.map.fire("wasabee:team:update")}catch(e){console.error(e),De(e)}})),L.DomUtil.create("label",null,e).textContent=Se("ROCKS_COM");const l=L.DomUtil.create("input",null,e);l.placeholder="xxyyzz.com",o.rc&&(l.value=o.rc),L.DomUtil.create("label",null,e).textContent=Se("API_KEY");const c=L.DomUtil.create("input",null,e);c.placeholder="...",o.rk&&(c.value=o.rk);const d=L.DomUtil.create("button",null,e);if(d.textContent=Se("SET"),L.DomEvent.on(d,"click",(async e=>{L.DomEvent.stop(e);try{await(t=o.id,a=l.value,n=c.value,It(`/api/v1/team/${t}/rockscfg?rockscomm=${a}&rockskey=${n}`)),ve("updated rocks info"),this.update()}catch(e){console.error(e),De(e)}var t,a,n})),L.DomUtil.create("label",null,e).textContent=Se("dialog.team_manage.join_link"),o.jlt){const t=L.DomUtil.create("input",null,e),a=kt();t.value=L.Util.template(w.JOIN_TEAM_TEMPLATE,{server:a,teamid:o.id,token:o.jlt}),t.readOnly=!0,L.DomEvent.on(t,"click",(e=>e.target.select()));const n=L.DomUtil.create("button",null,e);n.textContent=Se("dialog.team_manage.join_link.revoke"),L.DomEvent.on(n,"click",(async e=>{var t;L.DomEvent.stop(e),await(t=o.id,It(`/api/v1/team/${t}/delJoinKey`)),this.update()}))}else{L.DomUtil.create("span",null,e).textContent=Se("NOT_SET");const t=L.DomUtil.create("button",null,e);t.textContent=Se("dialog.team_manage.join_link.create"),L.DomEvent.on(t,"click",(async e=>{var t;L.DomEvent.stop(e),await(t=o.id,It(`/api/v1/team/${t}/genJoinKey`)),this.update()}))}L.DomUtil.create("label",null,e).textContent=Se("REMOVE_TEAM");const u=L.DomUtil.create("button",null,e);return u.textContent=Se("REMOVE"),L.DomEvent.on(u,"click",(e=>{L.DomEvent.stop(e),new si({title:Se("REMOVE_TEAM_CONFIRM_TITLE",{teamName:o.name}),label:Se("REMOVE_TEAM_CONFIRM_LABEL",{teamName:o.name}),callback:async()=>{try{await(e=o.id,xt(`/api/v1/team/${e}`)),this.closeDialog(),await pt(!0)}catch(e){console.error(e),De(e)}var e;window.map.fire("wasabee:teams")}}).enable()})),e},_displayDialog:async function(){const e=await this._dialogContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("MANAGE_TEAM",{teamName:this.options.team.Name}),width:"auto",html:e,dialogClass:"manageteam",buttons:t,id:b.dialogNames.manageTeam})}}),ur=dr,pr=Kt.extend({statics:{TYPE:"wasabeeButton"},addHooks:async function(){Kt.prototype.addHooks.call(this),this._me=await pt(!0,!0),window.map.on("wasabee:teams",this.update,this),window.map.on("wasabee:logout",this.closeDialog,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:teams",this.update,this),window.map.off("wasabee:logout",this.closeDialog,this)},update:function(){this._enabled&&(this._me=$.localGet(),this.setContent(this._buildContent()))},_buildContent:function(){const e=new pi;e.fields=[{name:Se("TEAM_NAME"),value:e=>e.Name,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=L.DomUtil.create("a","enl",e);o.href="#",o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new cr({teamID:a.ID}).enable()}))}},{name:Se("TEAM STATE"),value:e=>e.State,format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.textContent=Se(t?"dialog.common.on":"dialog.common.off"),t&&L.DomUtil.addClass(o,"enl"),o.onclick=async()=>{await this.toggleTeam(a.ID,t),this.update()}}},{name:Se("dialog.team_list.share_wd_keys"),value:e=>e.ShareWD,format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.textContent=Se(t?"dialog.common.on":"dialog.common.off"),t&&L.DomUtil.addClass(o,"enl"),o.onclick=async()=>{await this.toggleShareWD(a.ID,t),this.update(),window.map.fire("wasabee:defensivekeys")}}},{name:Se("dialog.team_list.load_wd_keys"),value:e=>e.LoadWD,format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.textContent=Se(t?"dialog.common.on":"dialog.common.off"),t&&L.DomUtil.addClass(o,"enl"),o.onclick=async()=>{await this.toggleLoadWD(a.ID,t),this.update(),window.map.fire("wasabee:defensivekeys")}}},{name:"",value:()=>"",sort:null,format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);if(o.textContent="",this._me.id!=a.Owner)o.textContent=Se("LEAVE"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new si({title:Se("dialog.leave_team.title",{teamName:a.Name}),label:Se("dialog.leave_team.text",{teamName:a.Name}),type:"team",callback:async()=>{try{await(e=a.ID,xt(`/api/v1/me/${e}`)),this._me=await pt(!0),window.map.fire("wasabee:teams"),window.map.fire("wasabee:defensivekeys")}catch(e){console.error(e)}var e}}).enable()}));else{const t=L.DomUtil.create("a","enl",e);t.textContent=Se("MANAGE"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),new ur({team:a}).enable()}))}}}],e.sortBy=0;const t=L.DomUtil.create("div","container");return t.appendChild(e.table),e.items=this._me.Teams,t},_displayDialog:function(){if(!this._me)return void this.disable();const e={};e[Se("CLOSE")]=()=>{this.closeDialog()},e[Se("NEW_TEAM")]=()=>{const e=new sr({title:Se("CREATE_NEW_TEAM"),label:Se("NTNAME"),callback:async()=>{const t=e.inputField.value;if(t){try{await(a=t,It(`/api/v1/team/new?name=${a}`)),ve(Se("TEAM_CREATED",{teamName:t})),this._me=await pt(!0)}catch(e){console.error(e),De(e)}var a;window.map.fire("wasabee:teams")}else De(Se("NAME_REQ"))},current:Se("NEW_TEAM_NAME"),placeholder:Se("AMAZ_TEAM_NAME")});e.enable()},this.createDialog({title:Se("CUR_USER_INFO"),html:this._buildContent(),width:"auto",dialogClass:"wasabee",buttons:e,id:b.dialogNames.wasabeeButton})},toggleTeam:async function(e,t){const a=t?"Off":"On";try{await function(e,t){return It(`/api/v1/me/${e}?state=${t}`)}(e,a),this._me=await pt(!0)}catch(e){console.error(e),De(e)}return a},toggleShareWD:async function(e,t){const a=t?"Off":"On";try{await function(e,t){return It(`/api/v1/me/${e}/wdshare?state=${t}`)}(e,a),await pt(!0)}catch(e){console.error(e),De(e)}return a},toggleLoadWD:async function(e,t){const a=t?"Off":"On";try{await function(e,t){return It(`/api/v1/me/${e}/wdload?state=${t}`)}(e,a),await pt(!0)}catch(e){console.error(e),De(e)}return a}}),mr=pr;function hr(e,t,a){const o={};let n=!1;for(const i of a)JSON.stringify(e[i])!==JSON.stringify(t[i])&&(o[i]=t[i],n=!0);return n?o:null}function gr(e,t){return{id:e.ID,type:"edition",props:hr(e,t,["fromPortalId","toPortalId","color","zone","order","assignedTo","comment","state","deltaminutes"])}}function fr(e,t){return{id:e.ID,type:"edition",props:hr(e,t,["type","zone","order","assignedTo","comment","state","deltaminutes"])}}function Er(e,t){return{id:e.id,type:"edition",props:hr(e,t,["comment","hardness"])}}function _r(e,t){return{id:e.id,type:"edition",props:hr(e,t,["name","color","points"])}}function wr(e,t,a,o){const n=e.slice(),i=t.slice();n.sort(((e,t)=>e[a]t[a]?1:0)),i.sort(((e,t)=>e[a]t[a]?1:0));const r=[];let s=0,l=0;for(;st[a])r.push({id:t[a],type:"addition",value:t}),l+=1;else{const a=o(e,t);a.props&&r.push(a),s+=1,l+=1}}for(;se.idt.id?1:0)),t.sort(((e,t)=>e.idt.id?1:0));const n=[],i=[];let r=0,s=0;for(;rc.id)n.push(c),s+=1;else{if("addition"===l.type||"addition"===c.type)if(a){const e=br(l.props,c.props);e&&n.push({id:c.id,type:"edition",props:e})}else i.push({id:c.id,type:"addition/addition"});else if("deletion"===l.type&&"deletion"===c.type);else if("edition"===l.type&&"edition"===c.type){const e=br(l.props,c.props);if(e){let t=!0;for(const a in e)if(a in l.props){t=!1;break}for(const e in l.props)if(!t||o.includes(e)){t=!1;break}for(const e in c.props)if(!t||o.includes(e)){t=!1;break}t?n.push({id:c.id,type:"edition",props:e}):i.push({id:c.id,type:"edition/edition",master:l,follower:c})}}else a?"edition"===c.type&&n.push(c):i.push({id:c.id,type:l.type+"/"+c.type,master:l,follower:c});r+=1,s+=1}}for(;s"addition"===e.type)),n=t.filter((e=>"addition"===e.type));for(const e of n)for(const t of o)if(a(e.value,t.value)){e.id=t.id;break}}(o.links,n.links,((e,t)=>e.fromPortalId===t.fromPortalId&&e.toPortalId===t.toPortalId||e.fromPortalId===t.toPortalId&&e.toPortalId===t.fromPortalId));const i={props:br(o.props,n.props),portals:Ar(o.portals,n.portals,!0),links:Ar(o.links,n.links,!1,["fromPortalId","toPortalId"]),markers:Ar(o.markers,n.markers,!1),zones:Ar(o.zones,n.zones,!0)};return Sr(t,i),i}function kr(e,t){for(const a in t)e[a]=t[a]}function Sr(e,t){for(const a of t.portals.conflict)a.value=e.getPortal(a.id);for(const a of t.zones.conflict)a.value=e.getZone(a.id);for(const a of t.markers.conflict)a.value=e.getMarker(a.id);for(const a of t.links.conflict)a.value=e.getLinkById(a.id)}function vr(e,t,a){kr(e,a.props);for(const a of t.opportals)e._addPortal(new ee(a));for(const a of t.zones)e.getZone(a.id)||e.zones.push(new te(a));for(const t of a.portals.result)if("addition"===t.type)e._addPortal(t.value);else if("edition"===t.type){const a=e.getPortal(t.id);a&&kr(a,t.props)}for(const t of a.zones.result)if("addition"===t.type)e.getZone(t.id)||e.zones.push(new te(t.value));else if("edition"===t.type){const a=e.getZone(t.id);a&&kr(a,t.props)}for(const t of a.markers.result)if("deletion"===t.type)e.markers=e.markers.filter((e=>e.ID!==t.id));else if("addition"===t.type)e.markers.push(new X(t.value));else{const a=e.getMarker(t.id);a&&kr(a,t.props)}for(const t of a.links.result)if("deletion"===t.type)e.links=e.links.filter((e=>e.ID!==t.id));else if("addition"===t.type)e.links.push(new q(t.value));else{const a=e.getLinkById(t.id);a&&kr(a,t.props)}for(const t of a.portals.conflict)t.value&&e._updatePortal(t.value);for(const t of a.zones.conflict)t.value&&(e.zones=e.zones.filter((e=>e.id!==t.id)),e.zones.push(t.value));for(const t of a.markers.conflict)e.markers=e.markers.filter((e=>e.ID!==t.id)),t.value&&e.markers.push(t.value);for(const t of a.links.conflict)e.links=e.links.filter((e=>e.ID!==t.id)),t.value&&e.links.push(t.value);e.links=e.links.filter((t=>e.getLinkByPortalIDs(t.fromPortalId,t.toPortalId)===t)),e.cleanAnchorList(),e.cleanPortalList()}const Or=Kt.extend({statics:{TYPE:"conflictDialog"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._layer=new L.LayerGroup,this._layer.addTo(window.map),this._displayDialog()},removeHooks:function(){Kt.prototype.addHooks.call(this),this._layer.remove()},rebase:async function(e){vr(this._opRebase,this.options.opOwn,e),await this._opRebase.store(),Re().ID==this._opRebase.ID&&await Pe(this._opRebase.ID),this.options.updateCallback&&this.options.updateCallback(this._opRebase),this.closeDialog()},useServer:async function(){await this.options.opRemote.store(),Re().ID==this.options.opRemote.ID&&await Pe(this.options.opRemote.ID),this.closeDialog()},useLocal:function(){this.options.updateCallback&&this.options.updateCallback(this.options.opOwn),this.closeDialog()},_displayDialog:function(){this._opRebase=new _e(this.options.opRemote),this._origin=this.options.opOwn.getFetchedOp()?new _e(this.options.opOwn.getFetchedOp()):new _e({ID:this.options.opOwn.ID,name:this.options.opOwn.name,comment:this.options.opOwn.comment,color:this.options.opOwn.color,referencetime:this.options.opOwn.referencetime});const e=Lr(this._origin,this._opRebase,this.options.opOwn);console.debug(e);const t=[];for(const a of e.portals.conflict)"edition/edition"===a.type&&t.push({kind:"portal",conflict:a,masterValue:this._opRebase.getPortal(a.id),followerValue:this.options.opOwn.getPortal(a.id)});for(const a of e.zones.conflict)"edition/edition"===a.type&&t.push({kind:"zone",conflict:a,masterValue:this._opRebase.getZone(a.id),followerValue:this.options.opOwn.getZone(a.id)});for(const a of e.markers.conflict)"addition/addition"!==a.type&&t.push({kind:"marker",conflict:a,masterValue:this._opRebase.getMarker(a.id),followerValue:this.options.opOwn.getMarker(a.id)});for(const a of e.links.conflict)"addition/addition"!==a.type&&t.push({kind:"link",conflict:a,masterValue:this._opRebase.getLinkById(a.id),followerValue:this.options.opOwn.getLinkById(a.id)});if(0===t.length)return void this.rebase(e);const a=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",a).textContent=Se("MERGE_MESSAGE"),L.DomUtil.create("h3","",a).textContent=Se("dialog.conflict.conflicts");const o=L.DomUtil.create("table","conflicts",a),n=L.DomUtil.create("tr","",o);L.DomUtil.create("th","master",n).textContent=Se("dialog.conflict.server");const i=L.DomUtil.create("input","",L.DomUtil.create("th","master",n));i.type="radio",i.name=this.options.opOwn.ID;const r=L.DomUtil.create("input","",L.DomUtil.create("th","follower",n));r.type="radio",r.name=this.options.opOwn.ID,L.DomUtil.create("th","follower",n).textContent=Se("dialog.conflict.local"),L.DomEvent.on(i,"change",(()=>{if(i.checked){o.querySelectorAll("td.master input").forEach((e=>e.checked=!0));for(const e of t)e.conflict.value=e.masterValue}})),L.DomEvent.on(r,"change",(()=>{if(r.checked){o.querySelectorAll("td.follower input").forEach((e=>e.checked=!0));for(const e of t)e.conflict.value=e.followerValue}}));for(const e of t){const t=L.DomUtil.create("tr","",o);this.formatConflict(e,e.conflict.master,this._opRebase,L.DomUtil.create("td","master",t));const a=L.DomUtil.create("input","",L.DomUtil.create("td","master",t));a.type="radio",a.name=e.conflict.id,a.value="master",a.checked=!0;const n=L.DomUtil.create("input","",L.DomUtil.create("td","follower",t));n.type="radio",n.name=e.conflict.id,n.value="master",this.formatConflict(e,e.conflict.follower,this.options.opOwn,L.DomUtil.create("td","follower",t)),L.DomEvent.on(a,"change",(()=>{a.checked&&(e.conflict.value=e.masterValue,r.checked=!1)})),L.DomEvent.on(n,"change",(()=>{n.checked&&(e.conflict.value=e.followerValue,i.checked=!1)}))}const s=[];s.push({text:Se("MERGE_REBASE"),click:()=>this.rebase(e)}),s.push({text:Se("MERGE_REPLACE"),click:()=>this.useServer()}),s.push({text:Se("MERGE_LOCAL"),click:()=>this.useLocal()}),(this.options.updateCallback||this.options.cancelText)&&s.push({text:this.options.cancelText||Se("CANCEL"),click:()=>this.closeDialog()}),this.createDialog({title:this.options.title||Se("MERGE_TITLE"),html:a,width:"auto",dialogClass:"conflict",buttons:s})},formatConflict(e,t,a,o){try{if("link"===e.kind){const e=this._origin.getLinkById(t.id),n=Ti(e,this._origin);if(o.appendChild(n),"deletion"===t.type)n.classList.add("strike");else{const n=L.DomUtil.create("ul","",o);for(const o in t.props)this.formatProp(o,e,t.props,a,n)}}else if("marker"===e.kind){const e=this._origin.getMarker(t.id),n=function(e,t){const a=t.getPortal(e.portalId);if(null==a)return console.log("null portal getting marker popup"),L.DomUtil.create("div","").textContent="invalid portal";const o=L.DomUtil.create("span");return L.DomUtil.create("span",`${e.type}`,o).textContent=Se(e.type),o.appendChild(We(a)),o}(e,this._origin);if(o.appendChild(n),"deletion"===t.type)n.classList.add("strike");else{const n=L.DomUtil.create("ul","",o);for(const o in t.props)this.formatProp(o,e,t.props,a,n)}}else if("portal"===e.kind){const e=this._origin.getPortal(t.id),n=We(e);o.appendChild(n);const i=L.DomUtil.create("ul","",o);for(const o in t.props)this.formatProp(o,e,t.props,a,i)}else if("zone"===e.kind){const e=this._origin.getZone(t.id),n=L.DomUtil.create("span");n.textContent=Se("dialog.conflict.zone",{name:e.name}),o.appendChild(n);const i=L.DomUtil.create("ul","",o);for(const o in t.props)this.formatProp(o,e,t.props,a,i)}}catch(e){console.error(e),o.append(JSON.stringify(t.props))}},formatProp(e,t,a,o,n){const i=L.DomUtil.create("li","",n),r=L.DomUtil.create("span","diff-label",i);r.textContent=e+":";const s=L.DomUtil.create("span","strike",i);s.textContent=t[e];const l=L.DomUtil.create("span","",i);l.textContent=a[e],"hardness"===e?r.textContent=Se("dialog.conflict.prop.hardness"):"comment"===e?r.textContent=Se("dialog.conflict.prop.comment"):"assignedTo"===e?r.textContent=Se("dialog.conflict.prop.assignedTo"):"state"===e?(r.textContent=Se("dialog.conflict.prop.state"),s.textContent=Se(Y(t[e])),l.textContent=Se(Y(a[e]))):"color"===e?r.textContent=Se("dialog.conflict.prop.color"):"order"===e?r.textContent=Se("dialog.conflict.prop.order"):"zone"===e?r.textContent=Se("dialog.conflict.prop.zone"):"points"===e?(r.textContent=Se("dialog.conflict.prop.zone_points"),s.textContent="",l.textContent=""):"fromPortalId"===e?r.textContent=Se("dialog.conflict.prop.fromPortal"):"toPortalId"===e?r.textContent=Se("dialog.conflict.prop.toPortal"):"deltaminutes"===e&&(r.textContent=Se("dialog.conflict.prop.deltaminutes")),"assignedTo"!==e&&"completedID"!==e||(t[e]&&ut(t[e]).then((e=>s.textContent=e.getName())),a[e]&&ut(a[e]).then((e=>l.textContent=e.getName()))),"fromPortalId"!==e&&"toPortalId"!==e||(s.textContent="",s.appendChild(We(this._origin.getPortal(t[e]))),l.textContent="",l.appendChild(We(o.getPortal(a[e]))))}});function Dr(e){new si({title:Se("dialog.clear_links.title",{opName:e.name}),label:Se("dialog.clear_links.text",{opName:e.name}),type:"operation",callback:()=>{e.clearAllLinks(),window.map.fire("wasabee:crosslinks")}}).enable()}function Nr(e){if(!e)return;const t=e.mbr;t&&t.isValid()&&window.map.fitBounds(t)}async function Cr(e,t){const a=Re();if(!e)return await t.store(),!1;const o=e.ID!=a.ID?e:a;return o.lasteditid===t.lasteditid?o.server!==t.server&&(o.server=t.server,await o.store(),o.ID===a.ID):o.checkChanges()?(o.teamlist=t.teamlist,o.mergeZones(t),o.remoteChanged=!0,await o.store(),a===o&&new Or({opOwn:a,opRemote:t}).enable(),!1):(await t.store(),t.ID===a.ID)}async function yr(){const e=Re(),t=ie();try{let a=null;const o=await pt(!0),n=new Set(o.Ops.map((e=>e.ID))),i=await Be(),r=[];for(const e of i){const a=await _e.load(e);a&&a.server===t&&!n.has(a.ID)&&r.push(a)}for(const t of r){if(t.isOwnedOp()){const o=await Ke(t.ID);o.name=t.name,await o.store(),t.ID===e.ID&&(a=o.ID)}await _e.delete(t.ID)}r.length>0&&console.log("remove",r.map((e=>e.ID)));const s=[];for(const e of n)s.push(Nt(e));const l=(await Promise.allSettled(s)).filter((e=>"fulfilled"===e.status)).map((e=>e.value));for(const t of l){const o=await _e.load(t.ID);await Cr(o,t)&&(a=e.ID)}if(a)await Pe(a);else{const t=await Ie();t!==e&&Nr(t)}return window.map.fire("wasabee:teams"),window.map.fire("wasabee:fullsync"),!0}catch(e){console.error(e),e instanceof Ne&&De(e),$.isLoggedIn()&&Oe(Se("NOT_LOADED"))}return window.map.fire("wasabee:fullsync"),!1}const Rr=Kt.extend({statics:{TYPE:"exportDialog"},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=Re(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("DRAW TOOLS FORMAT")]=()=>{this._drawToolsFormat(e)},t[Se("ANCHORS_AS_BOOKMARKS")]=()=>{this._bookmarkFormat(e)},this.createDialog({title:Se("EXPORT")+e.name,html:this._buildContent(e),width:"auto",dialogClass:"export",buttons:t,id:b.dialogNames.exportDialog})},_buildContent:function(e){const t=L.DomUtil.create("div",null),a=L.DomUtil.create("textarea",null,t);return a.id="wasabee-dialog-export-textarea",e.cleanAll(),a.value=e.toExport(),t},_drawToolsFormat:function(e){const t=document.getElementById("wasabee-dialog-export-textarea"),a=new Array;for(const t of e.links){const o={type:"polyline"};o.color=ei(t.getColor(e)),o.latLngs=t.getLatLngs(e),a.push(o)}t.value=JSON.stringify(a)},_bookmarkFormat:function(e){const t=document.getElementById("wasabee-dialog-export-textarea"),a=new Object;a.maps={},a.maps.idOthers={},a.maps.idOthers.label="Others",a.maps.idOthers.state=1,a.maps.idOthers.bkmrk={},a.portals={},a.portals.idOthers={},a.portals.idOthers.label="Others",a.portals.idOthers.state=1,a.portals.idOthers.bkmrk={};for(const t of e.anchors){const o="id"+t.substring(0,16),n=e._idToOpportals.get(t);a.portals.idOthers.bkmrk[o]={},a.portals.idOthers.bkmrk[o].guid=t,a.portals.idOthers.bkmrk[o].latlng=`${+n.lat},${+n.lng}`,a.portals.idOthers.bkmrk[o].label=n.name}t.value=JSON.stringify(a)}}),Ir=Rr,Mr=L.Handler.extend({initialize:function(e=window.map,t){this.zoneID=0,L.Handler.prototype.initialize.call(this,e),this._parent=t.parent,this.type="ZonedrawHandler"},enable:function(){this._enabled||0==this.zoneID?this.disable():L.Handler.prototype.enable.call(this)},addHooks:function(){L.DomUtil.disableTextSelection(),this._tooltip=new Ut(window.map),this._opID=Re().ID,this._tooltip.updateContent(this._getTooltipText()),window.map.on("click",this._click,this),window.map.on("wasabee:op:select",this._opchange,this),window.map.on("keyup",this._keyUpListener,this)},removeHooks:function(){L.DomUtil.enableTextSelection(),this._tooltip.dispose(),this._tooltip=null,window.map.off("click",this._click,this),window.map.off("wasabee:op:select",this._opchange,this),window.map.off("keyup",this._keyUpListener,this)},_opchange:function(){this._enabled&&Re().ID!=this._opID&&(console.log("operation changed mid-zonedraw - disabling"),this.disable())},_keyUpListener:function(e){this._enabled&&27===e.originalEvent.keyCode&&(this.disable(),this._parent.update())},_click:function(e){Re().addZonePoint(this.zoneID,e.latlng)},_getTooltipText:function(){return Se("ZONE_DRAW")}}),Pr=Kt.extend({statics:{TYPE:"zoneSetColorDialog"},needWritePermission:!0,options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){this.createDialog({title:Se("dialog.zone_color.title"),html:this._buildContent(),width:"auto",dialogClass:"zone-color"})},_buildContent:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("dialog.zone_color.text",{zoneName:this.options.zone.name});const t=L.DomUtil.create("input","picker",e);return t.type="color",t.setAttribute("list","wasabee-colors-datalist"),L.DomEvent.on(t,"change",(async e=>{L.DomEvent.stop(e);const a=Re();for(const e of a.links)e.zone==this.options.zone.id&&(e.color=t.value);await a.store(),wi(t.value),window.map.fire("wasabee:op:change")})),e}});function xr(e,t){const a=Re(),o="write"===a.getPermission();(t=t||L.DomUtil.create("div")).textContent="";const n=L.DomUtil.create("tbody","",L.DomUtil.create("table","wasabee-table",t)),i=L.DomUtil.create("tr",null,n);L.DomUtil.create("th",null,i).textContent=Se("dialog.zones.id"),L.DomUtil.create("th",null,i).textContent=Se("dialog.common.name"),L.DomUtil.create("th",null,i).textContent=Se("dialog.zones.color"),L.DomUtil.create("th",null,i).textContent=Se("dialog.common.commands");for(const i of a.zones){const r=L.DomUtil.create("tr",null,n);L.DomUtil.create("td",null,r).textContent=""+i.id;const s=L.DomUtil.create("td",null,r),l=L.DomUtil.create("input",null,s);l.type="text",l.value=i.name;const c=L.DomUtil.create("td",null,r),d=L.DomUtil.create("input","picker",c);d.type="color",d.value=ei(i.color),d.setAttribute("list","wasabee-colors-datalist"),d.disabled=!o,L.DomEvent.on(d,"change",(e=>{L.DomEvent.stop(e),i.color=d.value,a.update(),wi(d.value)})),L.DomEvent.on(l,"change",(e=>{L.DomEvent.stop(e),Re().renameZone(i.id,l.value)}));const u=L.DomUtil.create("td","actions",r);if(i.points.length>0){const e=L.latLngBounds(i.points),t=L.DomUtil.create("a",null,u);t.href="#",t.title=Se("dialog.zones.jump_to"),oi("location-dot",t),L.DomEvent.on(t,"click",(t=>{L.DomEvent.stop(t),window.map.fitBounds(e)}))}if(o){const a=L.DomUtil.create("a",null,u);if(a.href="#",a.title=Se("dialog.zones.color_links"),oi("palette",a),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),new Pr({zone:i}).enable()})),1!=i.id){const e=L.DomUtil.create("a",null,u);e.href="#",e.title=Se("dialog.common.delete"),oi("trash",e),L.DomEvent.on(e,"click",(e=>{L.DomEvent.stop(e),new si({title:Se("dialog.zones.delete.title",{zoneName:i.name}),label:Se("dialog.zones.delete.text",{zoneName:i.name}),type:"operation",callback:async()=>{Re().removeZone(i.id)}}).enable()}))}if(e&&e.zoneID===i.id&&e.enabled()){const a=L.DomUtil.create("a",null,u);a.href="#",a.title=Se("dialog.zones.stop_drawing"),oi("ban",a),L.DomEvent.on(a,"click",(a=>{L.DomEvent.stop(a),e.disable(),xr(e,t)}))}else if(0==i.points.length){const a=L.DomUtil.create("a",null,u);a.title=Se("dialog.zones.draw_zone_shape"),oi("pen",a),a.href="#",L.DomEvent.on(a,"click",(a=>{L.DomEvent.stop(a),e.zoneID=i.id,e.enable(),xr(e,t)}))}else{const e=L.DomUtil.create("a",null,u);e.title=Se("dialog.zones.delete_zone_shape"),oi("eraser",e),e.href="#",L.DomEvent.on(e,"click",(e=>{L.DomEvent.stop(e),Re().removeZonePoints(i.id)}))}}}return t}class Ur extends Kt{addHooks(){super.addHooks(),this._zoneHandler=new Mr(window.map,{parent:this}),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),this._activeTab=0,this._displayDialog()}removeHooks(){super.removeHooks(),this._zoneHandler.disable(),window.map.off("wasabee:op:select wasabee:op:change",this.update,this)}_displayDialog(){const e=this.makeContent(),t={};t[Se("OK")]=()=>{this.closeDialog()},this.createDialog({title:Se("OP_SETTINGS_TITLE"),html:e,height:"auto",width:"auto",dialogClass:"op-settings",buttons:t,id:b.dialogNames.opSettings})}update(){if(this.enabled()){this.setTitle(Se("OP_SETTINGS_TITLE"));const e=this.makeContent();this.setContent(e)}}buildZoneTab(){const e=L.DomUtil.create("a");e.textContent=Se("dialog.op_settings.zones");const t=L.DomUtil.create("div");t.appendChild(xr(this._zoneHandler));const a=L.DomUtil.create("div","buttonset",t),o={};o[Se("ADD_ZONE")]=()=>{Re().canWrite()&&Re().addZone()},o[Se("SET_MARKERS_ZONES")]=()=>{Re().canWrite()&&vi()},o[Se("SET_LINKS_ZONES")]=()=>{Re().canWrite()&&Oi()};for(const e in o){const t=L.DomUtil.create("button",null,a);t.textContent=e,L.DomEvent.on(t,"click",o[e])}return[e,t]}buildPermTab(){const e=Re(),t=L.DomUtil.create("a");t.textContent=Se("OP_PERMS");const a=L.DomUtil.create("div");return a.appendChild(function(e,t){const a=t&&e.isOwnedOp()&&e.isOnCurrentServer(),o=a?L.DomUtil.create("select"):null,n=a?L.DomUtil.create("select"):null,i=a?L.DomUtil.create("select"):null;if(a){for(const e of t.Teams){const t=L.DomUtil.create("option",null,o);t.value=e.ID,t.textContent=e.Name}const a=L.DomUtil.create("option",null,n);a.value="read",a.textContent=Se("READ");const r=L.DomUtil.create("option",null,n);r.value="write",r.textContent=Se("WRITE");const s=L.DomUtil.create("option",null,n);s.value="assignedonly",s.textContent=Se("ASSIGNED_ONLY");const l=L.DomUtil.create("option",null,i);l.value="0",l.textContent=Se("dialog.common.zone_all");for(const t of e.zones){const e=L.DomUtil.create("option",null,i);e.value=""+t.id,e.textContent=t.name}}const r=new pi,s=[{name:Se("TEAM"),value:async a=>{if(t&&e.isOnCurrentServer()&&t.teamJoined(a.teamid)){const e=await mt(a.teamid);if(e)return e.name;if(t)for(const e of t.Teams)if(e.ID==a.teamid)return e.Name}return"["+a.teamid+"]"},sort:(e,t)=>e.localeCompare(t),foot:e=>{a&&e.append(o)}},{name:Se("ROLE"),value:e=>e.role,sort:(e,t)=>e.localeCompare(t),foot:e=>{a&&e.append(n)}},{name:Se("ZONE"),value:t=>0===t.zone?Se("dialog.common.zone_all"):e.zoneName(t.zone),sort:(e,t)=>e.localeCompare(t),foot:e=>{a&&e.append(i)}}];if(a)s.push({name:Se("dialog.common.commands"),value:()=>Se("REMOVE"),format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.href="#",o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),async function(e){if(!$.isLoggedIn())return void De(Se("NOT LOGGED IN SHORT"));const t=Re();if(t.isOwnedOp())try{await function(e,t,a,o){const n=new FormData;return n.append("team",t),n.append("role",a),n.append("zone",`${o}`),xt(`/api/v1/draw/${e}/perms`,n)}(t.ID,e.teamid,e.role,e.zone);const a=[];for(const o of t.teamlist)o.teamid==e.teamid&&o.role==e.role&&o.zone==e.zone||a.push(o);t.teamlist=a,await t.store(),window.map.fire("wasabee:op:change")}catch(e){console.error(e),De(e)}}(a)}))},foot:e=>{const t=L.DomUtil.create("a",null,e);t.href="#",t.textContent=Se("ADD"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),async function(e,t,a){if(!$.isLoggedIn())return void De(Se("NOT LOGGED IN SHORT"));const o=Re();if(o.isOwnedOp()){for(const n of o.teamlist)if(n.teamid==e&&n.role==t&&n.zone==a)return void console.debug("not adding duplicate permission");try{await function(e,t,a,o){const n=new FormData;return n.append("team",t),n.append("role",a),n.append("zone",`${o}`),Mt(`/api/v1/draw/${e}/perms`,n)}(o.ID,e,t,a),o.teamlist.push({teamid:e,role:t,zone:a}),await o.store(),window.map.fire("wasabee:op:change")}catch(e){console.error(e),De(e)}}}(o.value,n.value,+i.value)}))}});else for(const e of s)delete e.foot;return r.fields=s,r.sortBy=0,r.items=e.teamlist,r.table}(e,$.cacheGet())),[t,a]}buildAdvancedTab(){const e=Re(),t=L.DomUtil.create("a");t.textContent=Se("dialog.op_settings.advanced");const a=L.DomUtil.create("div","advanced");if(e.canWrite()){L.DomUtil.create("div","desc",a).textContent=Se("dialog.op_settings.import.desc"),L.DomUtil.create("label",null,a).textContent=Se("dialog.op_settings.import.select_op");const t=L.DomUtil.create("select",null,a);Be().then((async a=>{const o=(await Promise.all(a.map(_e.load))).map((e=>[e.ID,e.name]));o.sort(((e,t)=>e[1].localeCompare(t[1])));for(const[a,n]of o){if(a===e.ID)continue;const o=L.DomUtil.create("option",null,t);o.value=a,o.textContent=n}})),L.DomUtil.create("label",null,a).textContent=Se("dialog.op_settings.import.select_color");const o=L.DomUtil.create("input","picker",a);o.type="color",o.value=ei(e.color),o.setAttribute("list","wasabee-colors-datalist");const n=L.DomUtil.create("label","checkbox",a),i=L.DomUtil.create("input","",n);i.type="checkbox",L.DomUtil.create("span","",n).textContent=Se("dialog.op_settings.import.collision_default");const r=L.DomUtil.create("button","import",a);r.textContent=Se("dialog.op_settings.import.button"),L.DomEvent.on(r,"click",(async()=>{const a=await _e.load(t.value);if(delete a.fetchedOp,o.value!==ei(e.color))for(const e of a.links)"main"!==e.color&&e.color!==a.color||(e.color=o.value);const n=Re();a.ID=n.ID;const r=n.zones.map((e=>e.id)).reduce(((e,t)=>e>t?e:t),1);for(const e of a.zones)e.id+=r;for(const e of a.links)e.zone+=r;for(const e of a.markers)e.zone+=r;const s=Lr(new _e({ID:n.ID,name:n.name,comment:n.comment,color:n.color,referencetime:n.referencetime}),n,a);console.debug(s),s.props={},i.checked&&Sr(a,s),vr(n,a,s),await n.store(),window.map.fire("wasabee:op:change")}))}return[t,a]}buildMainTab(){const e=Re(),t=e.canWrite(),a=L.DomUtil.create("a");a.textContent=Se("dialog.op_settings.setting");const o=L.DomUtil.create("div"),n=L.DomUtil.create("div","topset",o);if(t){L.DomUtil.create("label",null,n).textContent=Se("OPER_COLOR");const t=L.DomUtil.create("input","picker",n);t.type="color",t.value=ei(e.color),t.setAttribute("list","wasabee-colors-datalist"),L.DomEvent.on(t,"change",(async e=>{L.DomEvent.stop(e);const a=Re();a.color=t.value,a.localchanged=!0,await a.store(),wi(t.value),window.map.fire("wasabee:op:change")}))}if(t){const t=L.DomUtil.create("textarea",null,n);t.placeholder="Op Comment",t.value=e.comment,L.DomEvent.on(t,"change",(async e=>{L.DomEvent.stop(e);const a=Re();a.comment=t.value,a.localchanged=!0,await a.store(),window.map.fire("wasabee:op:change")}))}else L.DomUtil.create("p","comment",n).textContent=e.comment;if(t){L.DomUtil.create("label",null,n).textContent=Se("REFERENCE_TIME");const t=L.DomUtil.create("input",null,n);t.size=30,t.placeholder="Sun, 21 Oct 2018 12:16:24 GMT",t.value=e.referencetime,L.DomEvent.on(t,"change",(async e=>{L.DomEvent.stop(e);const a=Re();try{const e=new Date(t.value);if("Invalid Date"===e.toString()||isNaN(+e))throw e;a.referencetime=e.toUTCString(),t.value=a.referencetime,a.localchanged=!0,await a.store(),window.map.fire("wasabee:op:change")}catch(e){console.log(e),De("Invalid date format")}}))}else L.DomUtil.create("p","comment",n).textContent=Se("REFERENCE_TIME")+" "+e.referencetime;const i=L.DomUtil.create("div","buttonset",o);if(t){const e=L.DomUtil.create("div",null,i),t=L.DomUtil.create("button",null,e);t.textContent=Se("CLEAR_EVERYTHING"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e);const t=Re();var a;new si({title:Se("dialog.clear_all.title",{opName:(a=t).name}),label:Se("dialog.clear_all.text",{opName:a.name}),type:"operation",callback:()=>{a.clearAllItems(),window.map.fire("wasabee:crosslinks")}}).enable()}))}const r=L.DomUtil.create("div",null,i),s=L.DomUtil.create("button",null,r);e.isServerOp()?$.isLoggedIn()&&e.isOwnedOp()&&e.isOnCurrentServer()?s.textContent=Se("DELETE_OP",{opName:e.name})+Se("LOCFRMSER"):s.textContent=Se("REM_LOC_CP",{opName:e.name}):s.textContent=Se("DELETE_OP",{opName:e.name}),L.DomEvent.on(s,"click",(e=>{L.DomEvent.stop(e);const t=Re();new si({title:Se("CON_DEL",{opName:t.name}),label:Se("YESNO_DEL",{opName:t.name}),type:"operation",callback:async()=>{if($.isLoggedIn()&&t.isOwnedOp()&&t.isOnCurrentServer())try{await(e=t.ID,xt(`/api/v1/draw/${e}`)),console.log("delete from server successful")}catch(e){console.error(e),De(e)}var e;await xe(t.ID),Nr(await Ie())}}).enable()}));const l=L.DomUtil.create("div",null,i),c=L.DomUtil.create("button",null,l);c.textContent=Se("DUPE_OP"),L.DomEvent.on(c,"click",(async e=>{L.DomEvent.stop(e);const t=Re(),a=await Ke(t.ID);await Pe(a.ID)}));const d=L.DomUtil.create("div",null,i),u=L.DomUtil.create("button",null,d);return u.textContent=Se("EXPORT OP"),L.DomEvent.on(u,"click",(e=>{L.DomEvent.stop(e),(new Ir).enable()})),[a,o]}makeContent(){const e=Re(),t=e.canWrite(),a=L.DomUtil.create("div"),o=L.DomUtil.create("div","topset",a);if(L.DomUtil.create("label",null,o).textContent=Se("OPER_NAME"),t){const t=L.DomUtil.create("input",null,o);t.value=e.name,L.DomEvent.on(t,"change",(async e=>{if(L.DomEvent.stop(e),t.value&&""!=t.value){const e=Re();e.name=t.value,e.localchanged=!0,await e.store(),window.map.fire("wasabee:op:change")}else De(Se("USE_VALID_NAME"))}))}else L.DomUtil.create("div",null,o).textContent=e.name;const n=[];n.push(this.buildMainTab()),n.push(this.buildZoneTab()),e.isServerOp()&&n.push(this.buildPermTab()),n.push(this.buildAdvancedTab());const i=L.DomUtil.create("div","ui-tabs tabs",a),r=L.DomUtil.create("ul","ui-tabs-nav nav",i);for(let e=0;e{for(const e of n)e[0].parentElement.classList.remove("ui-tabs-active"),e[1].style.display="none";t.parentElement.classList.add("ui-tabs-active"),a.style.display=null,this._activeTab=e}))}return this._activeTab>=n.length&&(this._activeTab=0),n[this._activeTab][0].parentElement.classList.add("ui-tabs-active"),n[this._activeTab][1].style.display=null,a}}Ur.TYPE="opSettingDialog";const Br=Ur,Kr=Kt.extend({statics:{TYPE:"opsDialog"},SORTBY_KEY:"wasabee-opslist-sortby",SORTASC_KEY:"wasabee-opslist-sortasc",options:{usePane:!0},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),window.map.on("wasabee:fullsync",this.update,this),window.map.on("wasabee:logout",this.update,this),window.map.on("wasabee:op:delete",this.update,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:fullsync",this.update,this),window.map.off("wasabee:logout",this.update,this),window.map.off("wasabee:op:delete",this.update,this)},_displayDialog:async function(){this.initSortable(),await this.updateSortable();const e={};e[Se("dialog.ops_list.unhide_ops")]=()=>{localStorage[window.plugin.wasabee.static.constants.OPS_LIST_HIDDEN_KEY]="[]",this.update()},e[Se("dialog.ops_list.toggle_hide")]=()=>{const e="false"!==localStorage[window.plugin.wasabee.static.constants.OPS_SHOW_HIDDEN_OPS];localStorage[window.plugin.wasabee.static.constants.OPS_SHOW_HIDDEN_OPS]=!e,this.update()},e[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("OPERATIONS"),html:this.sortable.table,height:"auto",width:"auto",dialogClass:"ops",buttons:e,id:b.dialogNames.opsList})},update:async function(){this._enabled&&await this.updateSortable()},initSortable:function(){const e=new pi;e.fields=[{name:"S",value:e=>e.server,format:(e,t,a)=>{e.textContent=a.server}},{name:Se("dialog.common.name"),value:e=>e.name,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=L.DomUtil.create("a","",e);o.href="#",o.textContent=a.name,a.local||(o.title=Se("dialog.ops_list.last_fetched",{date:a.fetched})+"\n",a.localchanged&&(o.title+=Se("dialog.ops_list.local_change")+"\n"),a.remotechanged&&(o.title+=Se("dialog.ops_list.remote_change")+"\n")),a.id==Re().ID&&o.classList.add("enl"),L.DomEvent.on(o,"click",(async e=>{L.DomEvent.stop(e),await Pe(a.id),Nr(Re())}))}},{name:"",value:e=>1*e.local+2*e.localchanged+4*e.remotechanged,format:(e,t,a)=>{a.local||(a.localchanged&&!a.remotechanged?(oi("desktop",e),e.title=Se("dialog.ops_list.local_change")):a.remotechanged&&(oi("server",e),e.title=Se("dialog.ops_list.remote_change")))}},{name:Se("dialog.common.owner"),value:e=>e.owner,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{e.classList.add("opowner"),a.currentserver?e.appendChild(a.ownerDisplay):e.append(a.owner)}},{name:"P",value:e=>e.perm,format:(e,t,a)=>{let o=Se("ASSIGNED_ONLY_SHORT");if("read"==a.perm?o=Se("READ_SHORT"):"write"==a.perm&&(o=Se("WRITE_SHORT")),a.id==Re().ID){const t=L.DomUtil.create("a","",e);t.textContent=o,L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),(new Br).enable()}))}else L.DomUtil.create("span","",e).textContent=o}},{name:"Bg",value:()=>null,sort:null,format:(e,t,a)=>{const o=L.DomUtil.create("input",null,e);o.type="checkbox",o.checked=a.background,o.title=a.background?Se("dialog.ops_list.background_disable"):Se("dialog.ops_list.background_enable"),L.DomEvent.on(o,"change",(e=>{L.DomEvent.stop(e);const t=e.target;t.title=t.checked?Se("dialog.ops_list.background_disable"):Se("dialog.ops_list.background_enable"),async function(e,t){const a=Re(),o=a.ID===e?a:await _e.load(e);o.background!=t&&(o.background=t,await o.store(),window.map.fire("wasabee:op:background",{opID:e,background:t}))}(a.id,t.checked)}))}},{name:Se("dialog.common.commands_short"),value:()=>null,sort:null,className:"actions",format:(e,t,a)=>{const o=L.DomUtil.create("a","",e);if(o.href="#",oi("trash",o),o.title=Se("REM_LOC_CP",{opName:a.name}),L.DomEvent.on(o,"click",(e=>{var t,o;L.DomEvent.stop(e),t=a.name,o=a.id,new si({title:Se("REM_LOC_CP",{opName:t}),label:Se("YESNO_DEL",{opName:t}),type:"operation",callback:async()=>{await xe(o),Nr(await Ie())}}).enable()})),a.currentserver){const t=L.DomUtil.create("a","",e);t.href="#",oi("arrows-rotate",t),t.title=Se("dialog.ops_list.download",{opName:a.name}),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),async function(e){const t=await _e.load(e),a=await Nt(e);a.lasteditid!=t.lasteditid&&(t.localchanged?new Or({opOwn:t,opRemote:a}).enable():await a.store())}(a.id)}))}}},{name:"V",value:()=>null,sort:null,className:"visibility",format:(e,t,a)=>{const o=L.DomUtil.create("input",null,e);o.type="checkbox",o.checked=!a.hidden,L.DomEvent.on(o,"change",(e=>{L.DomEvent.stop(e),o.checked?function(e){const t=Ue();t.includes(e)&&(localStorage[window.plugin.wasabee.static.constants.OPS_LIST_HIDDEN_KEY]=JSON.stringify(t.filter((t=>t!=e))),window.map.fire("wasabee:op:showhide",{opID:e,show:!0}))}(a.id):function(e){const t=Ue();t.includes(e)||(t.push(e),localStorage[window.plugin.wasabee.static.constants.OPS_LIST_HIDDEN_KEY]=JSON.stringify(t),window.map.fire("wasabee:op:showhide",{opID:e,show:!1}))}(a.id)}))}}],e.sortByStoreKey=this.SORTBY_KEY,e.sortAscStoreKey=this.SORTASC_KEY,this.sortable=e},updateSortable:async function(){if(!this.sortable)return;const e="false"!==localStorage[window.plugin.wasabee.static.constants.OPS_SHOW_HIDDEN_OPS],t=$.cacheGet(),a=await Be(e),o=this.sortable.items.map((e=>e.id)),n=o.filter((e=>a.includes(e))).concat(a.filter((e=>!o.includes(e)))),i=Ue(),r=[];for(const e of n){const a=await _e.load(e);if(!a)continue;const o={id:e,name:a.name,localchanged:a.localchanged,remotechanged:a.remoteChanged,fetched:a.fetched,local:null===a.fetched,perm:a.getPermission(),hidden:i.includes(e),currentserver:t&&a.isOnCurrentServer(),server:"",background:a.background};if(o.currentserver){const e=await ut(a.creator);o.owner=e.getName(),o.ownerDisplay=ii(e)}else o.owner=window.PLAYER.nickname;for(const e of window.plugin.wasabee.static.publicServers)e.url===a.server&&(o.server=e.short);r.push(o)}this.sortable.items=r,await this.sortable.done,e?this.sortable.table.classList.remove("hideOps"):this.sortable.table.classList.add("hideOps")}});function Gr(){$.isLoggedIn()&&"true"===localStorage[window.plugin.wasabee.static.constants.SEND_LOCATION_KEY]&&navigator.geolocation.getCurrentPosition((async e=>{try{await vt(e.coords.latitude,e.coords.longitude),console.debug(Se("LOCATION SUB"))}catch(e){console.error(e)}}),(e=>{console.error(e)}))}async function Hr(e){let t=await z.getAll(e);e.startBatchMode();for(const a of t)e._addPortal(new ee({id:a.from,name:a.fromPortal.name,lat:a.fromPortal.lat,lng:a.fromPortal.lng})),e._addPortal(new ee({id:a.to,name:a.toPortal.name,lat:a.toPortal.lat,lng:a.toPortal.lng}));for(;t.length;){const a={};for(const e of t)a[e.from]||(a[e.from]=0),a[e.from]++,a[e.to]||(a[e.to]=0),a[e.to]++;for(const t of e.markers)t.type===X.constants.MARKER_TYPE_EXCLUDE&&delete a[t.portalId];const o=Object.entries(a).reduce(((e,t)=>e[1]e.from!==o&&e.to!==o)),await z.removeBlocker(e,o)}e.cleanAll(),e.endBatchMode()}const zr=Kt.extend({statics:{TYPE:"authDialog"},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),"true"===localStorage[window.plugin.wasabee.static.constants.SEND_LOCATION_KEY]&&Gr()},_successLogin:function(e){e.store(),window.map.fire("wasabee:login"),this.closeDialog(),yr().then((e=>{e&&ve(ke("SYNC DONE"))})),e.querytoken&&Ot(window.PLAYER.nickname,window.PLAYER.team,e.querytoken)},_displayDialog:function(){const e=L.DomUtil.create("div","content");this._server=L.DomUtil.create("input","",e),this._server.readOnly=!0,this._server.value=kt();const t=L.DomUtil.create("div","useragent",e);this._android=!1,this._ios=!1,-1!=navigator.userAgent.search("Iceweasel/")&&(this._android=!0),-1!=navigator.userAgent.search("Linux; Android")&&(this._android=!0),-1==navigator.userAgent.search("iPhone")&&-1==navigator.userAgent.search("iPad")||(this._ios=!0,this._android=!1,-1==navigator.userAgent.search("Safari/")&&(t.textContent=ke("IOS NEED FAKE UA")));const a=L.DomUtil.create("button","gapi",e);if(a.textContent=ke("LOG IN"),L.DomEvent.on(a,"click",(e=>{if(L.DomEvent.stop(e),this._android){const{state:e,url:t}=Lt(!1);localStorage["wasabee-auth-state"]=e,window.open(t)}else a.disabled=!0,a.textContent="... loading ...",this.gapiAuth()})),!this._ios){const t=L.DomUtil.create("button","gapi",e);t.textContent=ke("AUTH_SELECT_ACCOUNT"),L.DomEvent.on(t,"click",(e=>{if(L.DomEvent.stop(e),this._android){const{state:e,url:t}=Lt(!0);localStorage["wasabee-auth-state"]=e,window.open(t)}else t.disabled=!0,t.textContent="... loading ...",this.gsapiAuthChoose()}))}const o=L.DomUtil.create("button","server",e);o.textContent=ke("CHANGE SERVER"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e);const t=new sr({title:ke("CHANGE SERVER"),label:ke("CHANGE SERVER PROMPT"),suggestions:window.plugin.wasabee.static.publicServers.map((e=>({text:`${e.name} (${e.url})`,value:e.url}))),callback:()=>{t.inputField.value&&(St(t.inputField.value),this._server.value=kt(),$.purge()),window.map.fire("wasabee:defensivekeys")},placeholder:kt()});t.enable()}));const n=L.DomUtil.create("button","server",e);n.textContent=ke("dialog.auth.ott.button"),L.DomEvent.on(n,"click",(e=>{L.DomEvent.stop(e);const t=L.DomUtil.create("span");t.innerHTML=ke("dialog.auth.ott.text",{url:`${w.WEBUI_DEFAULT}/#/settings`});const a=new sr({title:ke("dialog.auth.ott.title"),label:t,callback:async()=>{if(a.inputField.value)try{const e=await async function(e){const t=await function(e){const t=new FormData;return t.append("token",e),Mt("/oneTimeToken",t)}(e);return t&&t.jwt&&ft(t.jwt),t?new $(t):pt(!0)}(a.inputField.value);this._successLogin(e),dt({id:"wasabeeLogin",method:"One Time Token"})}catch(e){console.error(e),De(e)}window.map.fire("wasabee:defensivekeys")},placeholder:"smurf-tears-4twn"});a.enable()}));const i={};i[ke("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:ke("AUTH REQUIRED"),html:e,width:"auto",dialogClass:"auth",buttons:i,id:b.dialogNames.mustauth})},gapiAuth:async function(){try{const e=await At(!1),t=await wt(e);dt({id:"wasabeeLogin",method:"gapiAuth"}),this._successLogin(t)}catch(e){this.disable(),this.enable(),e instanceof Ne?De(ke("AUTH TOKEN REJECTED",{error:e.toString()})):(De(e),dt({id:"exception",error:e}))}},gsapiAuthChoose:async function(){try{const e=await At(!0),t=await wt(e);dt({id:"wasabeeLogin",method:"gsapiAuthChoose"}),this._successLogin(t)}catch(e){this.disable(),this.enable(),e instanceof Ne?De(ke("AUTH TOKEN REJECTED",{error:e.toString()})):(De(e),dt({id:"exception",error:e}))}}}),Fr=Kt.extend({statics:{TYPE:"importDialog"},addHooks:function(){this._autoload=!1,"true"===localStorage[window.plugin.wasabee.static.constants.AUTO_LOAD_FAKED]&&(this._autoload=!0),Kt.prototype.addHooks.call(this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this)},_displayDialog:function(){const e=L.DomUtil.create("div",null);e.style.width="420px";const t=L.DomUtil.create("span",null,e),a=L.DomUtil.create("label",null,t);a.textContent=Se("NAME"),this._namefield=L.DomUtil.create("input",null,a),this._namefield.value=Se("IMPORT_OP")+(new Date).toGMTString(),this._namefield.placeholder="noodles",L.DomUtil.create("span",null,t).textContent=Se("ONLY_DT_IMP"),this._textarea=L.DomUtil.create("textarea",null,e),this._textarea.placeholder=Se("PASTE_INSTRUCT");const o={};o[Se("OK")]=()=>{this.importTextareaAsOp(),window.map.fire("wasabee:crosslinks"),this.closeDialog()},o[Se("GET DT")]=()=>{this.drawToolsFormat()},o[Se("dialog.import.url")]=()=>{this.fillFromURL()},this.createDialog({title:Se("IMP_WAS_OP"),html:e,width:"auto",dialogClass:"import",buttons:o,id:b.dialogNames.importDialog})},drawToolsFormat(){const e=window.plugin.drawTools?localStorage[window.plugin.drawTools.KEY_STORAGE]:void 0;e?this._textarea.value=e:this._textarea.placeholder=Se("NO_DT_ITEMS")},fillFromURL(){const e=new sr({title:Se("dialog.import.url"),label:"URL",callback:async()=>{try{const t=new URL(e.inputField.value.trim()),a=await fetch(t,{mode:"cors"});this._textarea.value=await a.text()}catch(e){return void De("Unable to fetch data from the given url.")}}});e.enable()},async importTextareaAsOp(){let e=this._textarea.value;if(e.match(new RegExp("^(https?://)?(www|intel)\\.ingress\\.com/(intel)?.*")))De(Se("NO_STOCK_INTEL"));else{if(e.match(new RegExp(".*(polyline|polygon).*"))){console.log("trying to import IITC Drawtools format... wish me luck");const t=this.parseDrawTools(e);return this._namefield.value?t.name=this._namefield.value:t.name=Se("IMPORT_OP_TITLE",{date:(new Date).toGMTString()}),await t.store(),await Pe(t.ID),(new Ii).enable(),void Nr(t)}try{const t=JSON.parse(e),a=new _e(t);await _e.load(a.ID)?(De(Se("IMP_NOPE",{error:"op already exists, either delete it or duplicate"})),await Pe(a.ID)):(await a.store(),await Pe(a.ID),ve(Se("IMPORT_OP_SUCCESS",{opName:a.name})))}catch(e){console.error("WasabeeTools: failed to import data",e),De(Se("IMP_NOPE",{error:"data invalid"}))}}},parseDrawTools(e){const t=new _e({creator:PLAYER.nickname,name:"draw tools imported"});t.startBatchMode();let a=null;try{a=JSON.parse(e)}catch(e){return console.error("Failed parseDrawTools",e),De(e),null}let o=!1;for(const e of a)if("polyline"==e.type||"polygon"==e.type)if(o){if(o!==e.color){o=!1;break}}else o=e.color;const n=this.buildWindowPortalMap();let i=0,r=0;for(const e of a){if("polyline"!=e.type&&"polygon"!=e.type)continue;let a=!1,s=!1;for(const l of e.latLngs){const c={lat:l.lat.toFixed(6),lng:l.lng.toFixed(6)};let d=t.getPortalByLatLng(c.lat,c.lng);if(d||(d=this.searchWindowPortals(c,n),d&&(t.addPortal(d),r++)),!d){const e=ee.fake(c.lat,c.lng);t.addPortal(e),d=e,i++}d&&a&&t.addLink(a,d,{color:o?"main":e.color}),a=d,s||(s=d)}"polygon"==e.type&&s&&a&&s!=a&&t.addLink(a,s,{color:o?"main":e.color})}return ve(Se("dialog.import.success_message",{count:r,faked:i})),t._batchmode=!1,t},buildWindowPortalMap(){const e=new Map;for(const t in window.portals){const a=window.portals[t].getLatLng(),o=a.lat.toFixed(6)+"/"+a.lng.toFixed(6);e.set(o,t)}return e},searchWindowPortals(e,t){const a=e.lat+"/"+e.lng;if(t.has(a)){const o=t.get(a);return ee.fake(e.lat,e.lng,o)}return!1}}),Wr=Fr,Yr=sr.extend({statics:{TYPE:"newopButton"},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this._submit()},e[Se("IMPORT_OP")]=()=>{this.closeDialog(),new Wr(null).enable()},e[Se("CANCEL")]=()=>{this.options.cancelCallback&&this.options.cancelCallback(),this.closeDialog()},L.setOptions(this,{title:Se("NEW_OP"),label:Se("SET_NEW_OP"),callback:async()=>{if(this.inputField.value){const e=new _e({creator:PLAYER.nickname,name:this.inputField.value});await e.store(),await Pe(e.ID)}else De(Se("OP_NAME_UNSET"))},placeholder:Se("MUST_NOT_BE_EMPTY"),nonEmpty:!0}),this.createDialog({title:this.options.title,html:this._buildContent(),width:"auto",dialogClass:"prompt",buttons:e,id:b.dialogNames.newopButton,autofocus:!0})}});function Zr(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function qr(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function Xr(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var $r=Xr(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),es=Xr(/Edge/i),ts=Xr(/firefox/i),as=Xr(/safari/i)&&!Xr(/chrome/i)&&!Xr(/android/i),os=Xr(/iP(ad|od|hone)/i),ns=Xr(/chrome/i)&&Xr(/android/i),is={capture:!1,passive:!1};function rs(e,t,a){e.addEventListener(t,a,!$r&&is)}function ss(e,t,a){e.removeEventListener(t,a,!$r&&is)}function ls(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function cs(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function ds(e,t,a,o){if(e){a=a||document;do{if(null!=t&&(">"===t[0]?e.parentNode===a&&ls(e,t):ls(e,t))||o&&e===a)return e;if(e===a)break}while(e=cs(e))}return null}var us,ps=/\s+/g;function ms(e,t,a){if(e&&t)if(e.classList)e.classList[a?"add":"remove"](t);else{var o=(" "+e.className+" ").replace(ps," ").replace(" "+t+" "," ");e.className=(o+(a?" "+t:"")).replace(ps," ")}}function hs(e,t,a){var o=e&&e.style;if(o){if(void 0===a)return document.defaultView&&document.defaultView.getComputedStyle?a=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(a=e.currentStyle),void 0===t?a:a[t];t in o||-1!==t.indexOf("webkit")||(t="-webkit-"+t),o[t]=a+("string"==typeof a?"":"px")}}function gs(e,t){var a="";if("string"==typeof e)a=e;else do{var o=hs(e,"transform");o&&"none"!==o&&(a=o+" "+a)}while(!t&&(e=e.parentNode));var n=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return n&&new n(a)}function fs(e,t,a){if(e){var o=e.getElementsByTagName(t),n=0,i=o.length;if(a)for(;n=i:n<=i))return o;if(o===Es())break;o=ks(o,!1)}return!1}function Ts(e,t,a,o){for(var n=0,i=0,r=e.children;i2&&void 0!==arguments[2]?arguments[2]:{},o=a.evt,n=Jr(a,Is);Rs.pluginEvent.bind(vl)(e,t,qr({dragEl:xs,parentEl:Us,ghostEl:Bs,rootEl:Ks,nextEl:Gs,lastDownEl:Hs,cloneEl:zs,cloneHidden:Fs,dragStarted:al,putSortable:js,activeSortable:vl.active,originalEvent:o,oldIndex:Ws,oldDraggableIndex:Zs,newIndex:Ys,newDraggableIndex:qs,hideGhostForTarget:Al,unhideGhostForTarget:Ll,cloneNowHidden:function(){Fs=!0},cloneNowShown:function(){Fs=!1},dispatchSortableEvent:function(e){Ps({sortable:t,name:e,originalEvent:o})}},n))};function Ps(e){!function(e){var t=e.sortable,a=e.rootEl,o=e.name,n=e.targetEl,i=e.cloneEl,r=e.toEl,s=e.fromEl,l=e.oldIndex,c=e.newIndex,d=e.oldDraggableIndex,u=e.newDraggableIndex,p=e.originalEvent,m=e.putSortable,h=e.extraEventProperties;if(t=t||a&&a[Ns]){var g,f=t.options,E="on"+o.charAt(0).toUpperCase()+o.substr(1);!window.CustomEvent||$r||es?(g=document.createEvent("Event")).initEvent(o,!0,!0):g=new CustomEvent(o,{bubbles:!0,cancelable:!0}),g.to=r||a,g.from=s||a,g.item=n||a,g.clone=i,g.oldIndex=l,g.newIndex=c,g.oldDraggableIndex=d,g.newDraggableIndex=u,g.originalEvent=p,g.pullMode=m?m.lastPutMode:void 0;var _=qr(qr({},h),Rs.getEventProperties(o,t));for(var w in _)g[w]=_[w];a&&a.dispatchEvent(g),f[E]&&f[E].call(t,g)}}(qr({putSortable:js,cloneEl:zs,targetEl:xs,rootEl:Ks,oldIndex:Ws,oldDraggableIndex:Zs,newIndex:Ys,newDraggableIndex:qs},e))}var xs,Us,Bs,Ks,Gs,Hs,zs,Fs,Ws,Ys,Zs,qs,Vs,js,Qs,Js,Xs,$s,el,tl,al,ol,nl,il,rl,sl=!1,ll=!1,cl=[],dl=!1,ul=!1,pl=[],ml=!1,hl=[],gl="undefined"!=typeof document,fl=os,El=es||$r?"cssFloat":"float",_l=gl&&!ns&&!os&&"draggable"in document.createElement("div"),wl=function(){if(gl){if($r)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),Tl=function(e,t){var a=hs(e),o=parseInt(a.width)-parseInt(a.paddingLeft)-parseInt(a.paddingRight)-parseInt(a.borderLeftWidth)-parseInt(a.borderRightWidth),n=Ts(e,0,t),i=Ts(e,1,t),r=n&&hs(n),s=i&&hs(i),l=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+_s(n).width,c=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+_s(i).width;if("flex"===a.display)return"column"===a.flexDirection||"column-reverse"===a.flexDirection?"vertical":"horizontal";if("grid"===a.display)return a.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(n&&r.float&&"none"!==r.float){var d="left"===r.float?"left":"right";return!i||"both"!==s.clear&&s.clear!==d?"horizontal":"vertical"}return n&&("block"===r.display||"flex"===r.display||"table"===r.display||"grid"===r.display||l>=o&&"none"===a[El]||i&&"none"===a[El]&&l+c>o)?"vertical":"horizontal"},bl=function(e){function t(e,a){return function(o,n,i,r){var s=o.options.group.name&&n.options.group.name&&o.options.group.name===n.options.group.name;if(null==e&&(a||s))return!0;if(null==e||!1===e)return!1;if(a&&"clone"===e)return e;if("function"==typeof e)return t(e(o,n,i,r),a)(o,n,i,r);var l=(a?o:n).options.group.name;return!0===e||"string"==typeof e&&e===l||e.join&&e.indexOf(l)>-1}}var a={},o=e.group;o&&"object"==Vr(o)||(o={name:o}),a.name=o.name,a.checkPull=t(o.pull,!0),a.checkPut=t(o.put),a.revertClone=o.revertClone,e.group=a},Al=function(){!wl&&Bs&&hs(Bs,"display","none")},Ll=function(){!wl&&Bs&&hs(Bs,"display","")};gl&&!ns&&document.addEventListener("click",(function(e){if(ll)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ll=!1,!1}),!0);var kl=function(e){if(xs){e=e.touches?e.touches[0]:e;var t=(n=e.clientX,i=e.clientY,cl.some((function(e){var t=e[Ns].options.emptyInsertThreshold;if(t&&!bs(e)){var a=_s(e),o=n>=a.left-t&&n<=a.right+t,s=i>=a.top-t&&i<=a.bottom+t;return o&&s?r=e:void 0}})),r);if(t){var a={};for(var o in e)e.hasOwnProperty(o)&&(a[o]=e[o]);a.target=a.rootEl=t,a.preventDefault=void 0,a.stopPropagation=void 0,t[Ns]._onDragOver(a)}}var n,i,r},Sl=function(e){xs&&xs.parentNode[Ns]._isOutsideThisEl(e.target)};function vl(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=Qr({},t),e[Ns]=this;var a,o,n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Tl(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==vl.supportPointer&&"PointerEvent"in window&&!as,emptyInsertThreshold:5};for(var i in Rs.initializePlugins(this,e,n),n)!(i in t)&&(t[i]=n[i]);for(var r in bl(t),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&_l,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?rs(e,"pointerdown",this._onTapStart):(rs(e,"mousedown",this._onTapStart),rs(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(rs(e,"dragover",this),rs(e,"dragenter",this)),cl.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),Qr(this,(o=[],{captureAnimationState:function(){o=[],this.options.animation&&[].slice.call(this.el.children).forEach((function(e){if("none"!==hs(e,"display")&&e!==vl.ghost){o.push({target:e,rect:_s(e)});var t=qr({},o[o.length-1].rect);if(e.thisAnimationDuration){var a=gs(e,!0);a&&(t.top-=a.f,t.left-=a.e)}e.fromRect=t}}))},addAnimationState:function(e){o.push(e)},removeAnimationState:function(e){o.splice(function(e,t){for(var a in e)if(e.hasOwnProperty(a))for(var o in t)if(t.hasOwnProperty(o)&&t[o]===e[a][o])return Number(a);return-1}(o,{target:e}),1)},animateAll:function(e){var t=this;if(!this.options.animation)return clearTimeout(a),void("function"==typeof e&&e());var n=!1,i=0;o.forEach((function(e){var a=0,o=e.target,r=o.fromRect,s=_s(o),l=o.prevFromRect,c=o.prevToRect,d=e.rect,u=gs(o,!0);u&&(s.top-=u.f,s.left-=u.e),o.toRect=s,o.thisAnimationDuration&&Ss(l,s)&&!Ss(r,s)&&(d.top-s.top)/(d.left-s.left)==(r.top-s.top)/(r.left-s.left)&&(a=function(e,t,a,o){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-a.top,2)+Math.pow(t.left-a.left,2))*o.animation}(d,l,c,t.options)),Ss(s,r)||(o.prevFromRect=r,o.prevToRect=s,a||(a=t.options.animation),t.animate(o,d,s,a)),a&&(n=!0,i=Math.max(i,a),clearTimeout(o.animationResetTimer),o.animationResetTimer=setTimeout((function(){o.animationTime=0,o.prevFromRect=null,o.fromRect=null,o.prevToRect=null,o.thisAnimationDuration=null}),a),o.thisAnimationDuration=a)})),clearTimeout(a),n?a=setTimeout((function(){"function"==typeof e&&e()}),i):"function"==typeof e&&e(),o=[]},animate:function(e,t,a,o){if(o){hs(e,"transition",""),hs(e,"transform","");var n=gs(this.el),i=n&&n.a,r=n&&n.d,s=(t.left-a.left)/(i||1),l=(t.top-a.top)/(r||1);e.animatingX=!!s,e.animatingY=!!l,hs(e,"transform","translate3d("+s+"px,"+l+"px,0)"),this.forRepaintDummy=function(e){return e.offsetWidth}(e),hs(e,"transition","transform "+o+"ms"+(this.options.easing?" "+this.options.easing:"")),hs(e,"transform","translate3d(0,0,0)"),"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout((function(){hs(e,"transition",""),hs(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1}),o)}}}))}function Ol(e,t,a,o,n,i,r,s){var l,c,d=e[Ns],u=d.options.onMove;return!window.CustomEvent||$r||es?(l=document.createEvent("Event")).initEvent("move",!0,!0):l=new CustomEvent("move",{bubbles:!0,cancelable:!0}),l.to=t,l.from=e,l.dragged=a,l.draggedRect=o,l.related=n||t,l.relatedRect=i||_s(t),l.willInsertAfter=s,l.originalEvent=r,e.dispatchEvent(l),u&&(c=u.call(d,l,r)),c}function Dl(e){e.draggable=!1}function Nl(){ml=!1}function Cl(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,a=t.length,o=0;a--;)o+=t.charCodeAt(a);return o.toString(36)}function yl(e){return setTimeout(e,0)}function Rl(e){return clearTimeout(e)}vl.prototype={constructor:vl,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(ol=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,xs):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,a=this.el,o=this.options,n=o.preventOnFilter,i=e.type,r=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,s=(r||e).target,l=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,c=o.filter;if(function(e){hl.length=0;for(var t=e.getElementsByTagName("input"),a=t.length;a--;){var o=t[a];o.checked&&hl.push(o)}}(a),!xs&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||o.disabled)&&!l.isContentEditable&&(this.nativeDraggable||!as||!s||"SELECT"!==s.tagName.toUpperCase())&&!((s=ds(s,o.draggable,a,!1))&&s.animated||Hs===s)){if(Ws=As(s),Zs=As(s,o.draggable),"function"==typeof c){if(c.call(this,e,s,this))return Ps({sortable:t,rootEl:l,name:"filter",targetEl:s,toEl:a,fromEl:a}),Ms("filter",t,{evt:e}),void(n&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(o){if(o=ds(l,o.trim(),a,!1))return Ps({sortable:t,rootEl:o,name:"filter",targetEl:s,fromEl:a,toEl:a}),Ms("filter",t,{evt:e}),!0}))))return void(n&&e.cancelable&&e.preventDefault());o.handle&&!ds(l,o.handle,a,!1)||this._prepareDragStart(e,r,s)}}},_prepareDragStart:function(e,t,a){var o,n=this,i=n.el,r=n.options,s=i.ownerDocument;if(a&&!xs&&a.parentNode===i){var l=_s(a);if(Ks=i,Us=(xs=a).parentNode,Gs=xs.nextSibling,Hs=a,Vs=r.group,vl.dragged=xs,Qs={target:xs,clientX:(t||e).clientX,clientY:(t||e).clientY},el=Qs.clientX-l.left,tl=Qs.clientY-l.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,xs.style["will-change"]="all",o=function(){Ms("delayEnded",n,{evt:e}),vl.eventCanceled?n._onDrop():(n._disableDelayedDragEvents(),!ts&&n.nativeDraggable&&(xs.draggable=!0),n._triggerDragStart(e,t),Ps({sortable:n,name:"choose",originalEvent:e}),ms(xs,r.chosenClass,!0))},r.ignore.split(",").forEach((function(e){fs(xs,e.trim(),Dl)})),rs(s,"dragover",kl),rs(s,"mousemove",kl),rs(s,"touchmove",kl),rs(s,"mouseup",n._onDrop),rs(s,"touchend",n._onDrop),rs(s,"touchcancel",n._onDrop),ts&&this.nativeDraggable&&(this.options.touchStartThreshold=4,xs.draggable=!0),Ms("delayStart",this,{evt:e}),!r.delay||r.delayOnTouchOnly&&!t||this.nativeDraggable&&(es||$r))o();else{if(vl.eventCanceled)return void this._onDrop();rs(s,"mouseup",n._disableDelayedDrag),rs(s,"touchend",n._disableDelayedDrag),rs(s,"touchcancel",n._disableDelayedDrag),rs(s,"mousemove",n._delayedDragTouchMoveHandler),rs(s,"touchmove",n._delayedDragTouchMoveHandler),r.supportPointer&&rs(s,"pointermove",n._delayedDragTouchMoveHandler),n._dragStartTimer=setTimeout(o,r.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){xs&&Dl(xs),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;ss(e,"mouseup",this._disableDelayedDrag),ss(e,"touchend",this._disableDelayedDrag),ss(e,"touchcancel",this._disableDelayedDrag),ss(e,"mousemove",this._delayedDragTouchMoveHandler),ss(e,"touchmove",this._delayedDragTouchMoveHandler),ss(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?rs(document,"pointermove",this._onTouchMove):rs(document,t?"touchmove":"mousemove",this._onTouchMove):(rs(xs,"dragend",this),rs(Ks,"dragstart",this._onDragStart));try{document.selection?yl((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(sl=!1,Ks&&xs){Ms("dragStarted",this,{evt:t}),this.nativeDraggable&&rs(document,"dragover",Sl);var a=this.options;!e&&ms(xs,a.dragClass,!1),ms(xs,a.ghostClass,!0),vl.active=this,e&&this._appendGhost(),Ps({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Js){this._lastX=Js.clientX,this._lastY=Js.clientY,Al();for(var e=document.elementFromPoint(Js.clientX,Js.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Js.clientX,Js.clientY))!==t;)t=e;if(xs.parentNode[Ns]._isOutsideThisEl(e),t)do{if(t[Ns]&&t[Ns]._onDragOver({clientX:Js.clientX,clientY:Js.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break;e=t}while(t=t.parentNode);Ll()}},_onTouchMove:function(e){if(Qs){var t=this.options,a=t.fallbackTolerance,o=t.fallbackOffset,n=e.touches?e.touches[0]:e,i=Bs&&gs(Bs,!0),r=Bs&&i&&i.a,s=Bs&&i&&i.d,l=fl&&rl&&Ls(rl),c=(n.clientX-Qs.clientX+o.x)/(r||1)+(l?l[0]-pl[0]:0)/(r||1),d=(n.clientY-Qs.clientY+o.y)/(s||1)+(l?l[1]-pl[1]:0)/(s||1);if(!vl.active&&!sl){if(a&&Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))o.right+10||e.clientX<=o.right&&e.clientY>o.bottom&&e.clientX>=o.left:e.clientX>o.right&&e.clientY>o.top||e.clientX<=o.right&&e.clientY>o.bottom+10}(e,n,this)&&!g.animated){if(g===xs)return y(!1);if(g&&i===e.target&&(r=g),r&&(a=_s(r)),!1!==Ol(Ks,i,xs,t,r,a,e,!!r))return C(),g&&g.nextSibling?i.insertBefore(xs,g.nextSibling):i.appendChild(xs),Us=i,R(),y(!0)}else if(g&&function(e,t,a){var o=_s(Ts(a.el,0,a.options,!0));return t?e.clientXd+c*i/2:lu-il)return-nl}else if(l>d+c*(1-n)/2&&lu-c*i/2)?l>d+c/2?1:-1:0}(e,r,a,n,b?1:s.swapThreshold,null==s.invertedSwapThreshold?s.swapThreshold:s.invertedSwapThreshold,ul,ol===r),0!==E){var S=As(xs);do{S-=E,w=Us.children[S]}while(w&&("none"===hs(w,"display")||w===Bs))}if(0===E||w===r)return y(!1);ol=r,nl=E;var v=r.nextElementSibling,O=!1,D=Ol(Ks,i,xs,t,r,a,e,O=1===E);if(!1!==D)return 1!==D&&-1!==D||(O=1===D),ml=!0,setTimeout(Nl,30),C(),O&&!v?i.appendChild(xs):r.parentNode.insertBefore(xs,O?v:r),L&&Os(L,0,k-L.scrollTop),Us=xs.parentNode,void 0===_||ul||(il=Math.abs(_-_s(r)[A])),R(),y(!0)}if(i.contains(xs))return y(!1)}return!1}function N(s,l){Ms(s,m,qr({evt:e,isOwner:d,axis:n?"vertical":"horizontal",revert:o,dragRect:t,targetRect:a,canSort:u,fromSortable:p,target:r,completed:y,onMove:function(a,o){return Ol(Ks,i,xs,t,a,_s(a),e,o)},changed:R},l))}function C(){N("dragOverAnimationCapture"),m.captureAnimationState(),m!==p&&p.captureAnimationState()}function y(t){return N("dragOverCompleted",{insertion:t}),t&&(d?c._hideClone():c._showClone(m),m!==p&&(ms(xs,js?js.options.ghostClass:c.options.ghostClass,!1),ms(xs,s.ghostClass,!0)),js!==m&&m!==vl.active?js=m:m===vl.active&&js&&(js=null),p===m&&(m._ignoreWhileAnimating=r),m.animateAll((function(){N("dragOverAnimationComplete"),m._ignoreWhileAnimating=null})),m!==p&&(p.animateAll(),p._ignoreWhileAnimating=null)),(r===xs&&!xs.animated||r===i&&!r.animated)&&(ol=null),s.dragoverBubble||e.rootEl||r===document||(xs.parentNode[Ns]._isOutsideThisEl(e.target),!t&&kl(e)),!s.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),h=!0}function R(){Ys=As(xs),qs=As(xs,s.draggable),Ps({sortable:m,name:"change",toEl:i,newIndex:Ys,newDraggableIndex:qs,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){ss(document,"mousemove",this._onTouchMove),ss(document,"touchmove",this._onTouchMove),ss(document,"pointermove",this._onTouchMove),ss(document,"dragover",kl),ss(document,"mousemove",kl),ss(document,"touchmove",kl)},_offUpEvents:function(){var e=this.el.ownerDocument;ss(e,"mouseup",this._onDrop),ss(e,"touchend",this._onDrop),ss(e,"pointerup",this._onDrop),ss(e,"touchcancel",this._onDrop),ss(document,"selectstart",this)},_onDrop:function(e){var t=this.el,a=this.options;Ys=As(xs),qs=As(xs,a.draggable),Ms("drop",this,{evt:e}),Us=xs&&xs.parentNode,Ys=As(xs),qs=As(xs,a.draggable),vl.eventCanceled||(sl=!1,ul=!1,dl=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Rl(this.cloneId),Rl(this._dragStartId),this.nativeDraggable&&(ss(document,"drop",this),ss(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),as&&hs(document.body,"user-select",""),hs(xs,"transform",""),e&&(al&&(e.cancelable&&e.preventDefault(),!a.dropBubble&&e.stopPropagation()),Bs&&Bs.parentNode&&Bs.parentNode.removeChild(Bs),(Ks===Us||js&&"clone"!==js.lastPutMode)&&zs&&zs.parentNode&&zs.parentNode.removeChild(zs),xs&&(this.nativeDraggable&&ss(xs,"dragend",this),Dl(xs),xs.style["will-change"]="",al&&!sl&&ms(xs,js?js.options.ghostClass:this.options.ghostClass,!1),ms(xs,this.options.chosenClass,!1),Ps({sortable:this,name:"unchoose",toEl:Us,newIndex:null,newDraggableIndex:null,originalEvent:e}),Ks!==Us?(Ys>=0&&(Ps({rootEl:Us,name:"add",toEl:Us,fromEl:Ks,originalEvent:e}),Ps({sortable:this,name:"remove",toEl:Us,originalEvent:e}),Ps({rootEl:Us,name:"sort",toEl:Us,fromEl:Ks,originalEvent:e}),Ps({sortable:this,name:"sort",toEl:Us,originalEvent:e})),js&&js.save()):Ys!==Ws&&Ys>=0&&(Ps({sortable:this,name:"update",toEl:Us,originalEvent:e}),Ps({sortable:this,name:"sort",toEl:Us,originalEvent:e})),vl.active&&(null!=Ys&&-1!==Ys||(Ys=Ws,qs=Zs),Ps({sortable:this,name:"end",toEl:Us,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){Ms("nulling",this),Ks=xs=Us=Bs=Gs=zs=Hs=Fs=Qs=Js=al=Ys=qs=Ws=Zs=ol=nl=js=Vs=vl.dragged=vl.ghost=vl.clone=vl.active=null,hl.forEach((function(e){e.checked=!0})),hl.length=Xs=$s=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":xs&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],a=this.el.children,o=0,n=a.length,i=this.options;o{o.splice(0);for(const e of t.children)o.push(e.textContent);fi(o)}}),e},_displayDialog:function(){const e=this._buildContent();this.createDialog({title:Se("SKINS_MANAGE_TITLE"),html:e,width:"auto",dialogClass:"skin",id:b.dialogNames.skinDialog})}}),jl=Kt.extend({statics:{TYPE:"settings"},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this)},update:function(){this.setContent(this._getContent()),this.setTitle(Se("SETTINGS_TITLE"))},_addCheckBox(e,t,a,o,n,i){const r=L.DomUtil.create("label","checkbox",e),s=L.DomUtil.create("input","",r);s.type="checkbox",s.id=a,L.DomUtil.create("span","",r).textContent=t;const l=localStorage[o];i||"true"!==l||(s.checked=!0),i&&"false"!==l&&(s.checked=!0),L.DomEvent.on(s,"change",(e=>{L.DomEvent.stop(e),localStorage[o]=s.checked,n&&n(s.checked)}))},_addSelect(e,t,a,o,n){L.DomUtil.create("label",null,e).textContent=t;const i=L.DomUtil.create("select",null,e),r=localStorage[a];for(const[e,t]of o){const a=L.DomUtil.create("option",null,i);a.textContent=e,a.value=t,t==r&&(a.selected=!0)}L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),localStorage[a]=i.value,n&&n(i.value)}))},_getContent:function(){const e=L.DomUtil.create("div","container"),t=[];for(const e in window.plugin.wasabee.skin.strings)t.push([e,e]);this._addSelect(e,Se("LANG"),window.plugin.wasabee.static.constants.LANGUAGE_KEY,t,(()=>{window.map.fire("wasabee:ui:lang")})),this._addSelect(e,Se("SKIP_CONFIRM"),window.plugin.wasabee.static.constants.SKIP_CONFIRM,[[Se("SKIP_CONFIRM_NEVER"),"never"],[Se("SKIP_CONFIRM_ENTITY"),"entity"],[Se("SKIP_CONFIRM_ALWAYS"),"always"]]),window.plugin.userLocation&&this._addCheckBox(e,Se("SEND LOCATION"),"wasabee-setting-sendloc",window.plugin.wasabee.static.constants.SEND_LOCATION_KEY),this._addCheckBox(e,Se("MERGE ON UPDATE"),"wasabee-setting-rebase-update",window.plugin.wasabee.static.constants.REBASE_UPDATE_KEY,null,!0),this._addCheckBox(e,Se("AUTOLOAD"),"wasabee-setting-autoload",window.plugin.wasabee.static.constants.AUTO_LOAD_FAKED),window.isSmartphone()&&this._addCheckBox(e,Se("USE PANES ON MOBILE"),"wasabee-setting-usepanes",window.plugin.wasabee.static.constants.USE_PANES),this._addCheckBox(e,Se("dialog.settings.disable_live_updates"),"wasabee-setting-firebase",window.plugin.wasabee.static.constants.FIREBASE_DISABLE),this._addCheckBox(e,Se("SEND ANALYTICS"),"wasabee-setting-analytics",window.plugin.wasabee.static.constants.SEND_ANALYTICS_KEY),this._addSelect(e,Se("AUTOLOAD_RATE"),window.plugin.wasabee.static.constants.PORTAL_DETAIL_RATE_KEY,[1,100,250,500,750,1e3].map((e=>[e,e]))),this._addSelect(e,Se("TRAWL SKIP TILES"),window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14].map((e=>[e,e]))),this._addCheckBox(e,Se("dialog.settings.populate_opportals"),"wasabee-setting-opportals",window.plugin.wasabee.static.constants.POPULATE_OPPORTALS,Xi);const a=L.DomUtil.create("button","server",e);a.textContent=Se("WSERVER",{url:kt()}),a.href="#",L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),this.setServer(a)}));const o=L.DomUtil.create("button",null,e);return o.textContent=Se("SKINS_BUTTON"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),(new Vl).enable()})),e},setServer:function(e){const t=new sr({title:Se("CHANGE_WAS_SERVER"),label:Se("NEW_WAS_SERVER"),suggestions:window.plugin.wasabee.static.publicServers.map((e=>({text:`${e.name} (${e.url})`,value:e.url}))),callback:()=>{t.inputField.value&&(St(t.inputField.value),e.textContent=Se("WSERVER",{url:kt()}),$.purge())},placeholder:kt()});t.enable()},_displayDialog:function(){const e=this._getContent(),t={};t[Se("OK")]=()=>{this.closeDialog()},t[Se("CLEAROPS BUTTON")]=()=>{this.closeDialog(),function(){const e=new si({title:Se("CLEAROPS BUTTON TITLE"),label:Se("CLEAROPS PROMPT"),type:"operation",callback:()=>{!async function(){(await K).close(),function(e,{blocked:t}={}){const a=indexedDB.deleteDatabase(e);t&&a.addEventListener("blocked",(()=>t())),R(a).then((()=>{}))}("wasabee")}();for(const e of[w.SELECTED_OP_KEY,w.OPS_LIST_KEY,w.OPS_LIST_HIDDEN_KEY,w.OPS_SHOW_HIDDEN_OPS,w.SEND_LOCATION_KEY,w.SEND_ANALYTICS_KEY,w.EXPERT_MODE_KEY,w.LANGUAGE_KEY,w.AGENT_INFO_KEY,w.LINK_SOURCE_KEY,w.ANCHOR_ONE_KEY,w.ANCHOR_TWO_KEY,w.ANCHOR_THREE_KEY,w.PORTAL_DETAIL_RATE_KEY,w.SKIN_KEY,w.LAST_MARKER_KEY,w.AUTO_LOAD_FAKED,w.TRAWL_SKIP_STEPS,w.USE_PANES,w.SKIP_CONFIRM,w.SERVER_BASE_KEY,w.REBASE_UPDATE_KEY,w.FIREBASE_DISABLE])delete localStorage[e];const e=window.plugin.wasabee;e.buttons.remove(),document.querySelectorAll("#toolbox a.wasabee").forEach((e=>e.remove())),window.removeLayerGroup(e.portalLayerGroup),window.removeLayerGroup(e.linkLayerGroup),window.removeLayerGroup(e.markerLayerGroup),window.removeLayerGroup(e.agentLayerGroup),window.removeLayerGroup(e.zoneLayerGroup),window.removeLayerGroup(e.backgroundOpsGroup),window.removeLayerGroup(e.defensiveLayers),window.removeLayerGroup(e.crossLinkLayers)}});e.enable()}()},this.createDialog({title:Se("SETTINGS_TITLE"),html:e,width:"auto",dialogClass:"settings",buttons:t,id:b.dialogNames.settings})}}),Ql=jl;let Jl;async function Xl(){return(await G).getAll("defensivekeys")}async function $l(){if(!1!==window.isLayerGroupDisplayed("Wasabee-D Keys")){if(console.debug("running drawWasabeeDkeys"),Jl.clearLayers(),$.isLoggedIn())try{const e=await It("/api/v1/d");if(!e||!e.DefensiveKeys||0==e.DefensiveKeys.length)return;window.plugin.wasabee.idb.clear("defensivekeys");for(const t of e.DefensiveKeys)try{await window.plugin.wasabee.idb.put("defensivekeys",t)}catch(e){console.error(e)}}catch(e){console.error(e)}!async function(){const e=await Xl(),t=new Set;for(const a of e)t.has(a.PortalID)||(t.add(a.PortalID),ec(a))}()}}function ec(e){Jl[e.PortalID]&&Jl[e.PortalID]._leaflet_id&&Jl.removeLayer(Jl[e.PortalID]);const t=L.marker([+e.Lat,+e.Lng],{title:e.Name,icon:L.divIcon({className:"wasabee-defense-icon",shadowUrl:null,iconSize:L.point(24,40),iconAnchor:L.point(12,40),popupAnchor:L.point(-1,-48)})});Jl[e.PortalID]=t,t.addTo(Jl),window.registerMarkerForOMS(t),t.bindPopup("loading...",{className:"wasabee-popup",closeButton:!1}),t.on("click spiderfiedclick",(async a=>{L.DomEvent.stop(a);try{const a=await async function(e){const t=L.DomUtil.create("div","wasabee-wd-popup"),a=L.DomUtil.create("ul",null,t),o=await async function(e){return(await G).getAllFromIndex("defensivekeys","PortalID",e)}(e);for(const e of o){const t=await ut(e.GID),o=L.DomUtil.create("li",null,a);t?o.appendChild(ii(t)):L.DomUtil.create("span",null,o).textContent=Se("LOADING"),L.DomUtil.create("span",null,o).textContent=`: ${e.Count} ${e.CapID}`}return t}(e.PortalID);t.setPopupContent(a),t._popup._wrapper&&t._popup._wrapper.classList.add("wasabee-popup"),t.update()}catch(e){console.error("getting wd marker popup: ",e),t.setPopupContent(e),t.update()}t.openPopup()}),t)}const tc=Kt.extend({statics:{TYPE:"wasabeeDList"},addHooks:async function(){Kt.prototype.addHooks.call(this);const e=this;this._UIUpdateHook=()=>{e.update()},this._me=await pt(),await this._displayDialog(),window.addHook("portalDetailLoaded",this._UIUpdateHook)},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.removeHook("portalDetailLoaded",this._UIUpdateHook)},update:async function(){const e=await this.getListDialogContent();this.setContent(e.table)},_displayDialog:async function(){const e=await this.getListDialogContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("WASABEE_D_LIST"),html:e.table,width:"auto",dialogClass:"wasabeedlist",buttons:t,id:b.dialogNames.wasabeeDList})},getListDialogContent:async function(){const e=new pi;return e.fields=[{name:Se("PORTAL"),value:e=>e.Name?e.Name:e.PortalID,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=new ee({id:a.PortalID,name:a.Name,lat:a.Lat,lng:a.Lng});e.appendChild(We(o))}},{name:Se("COUNT"),value:e=>e.Count,sort:(e,t)=>e-t,format:(e,t)=>{e.textContent=t}},{name:Se("CAPSULE"),value:e=>e.CapID,sort:(e,t)=>e.localeCompare(t),format:(e,t)=>{e.textContent=t}}],e.sortBy=0,e.items=await async function(e){return(await Xl()).filter((t=>t.GID==e))}(this._me.id),e}}),ac=tc,oc=Kt.extend({statics:{TYPE:"defensiveKeysDialog"},addHooks:function(){Kt.prototype.addHooks.call(this),this._me=$.localGet(),this._pch=e=>{this._portalClickedHook(e)},window.addHook("portalSelected",this._pch),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.removeHook("portalSelected",this._pch)},_portalClickedHook:async function(){if(this._selectedPortal=Ze(),this._selectedPortal){this._portal.textContent="",this._portal.appendChild(We(this._selectedPortal));const e=await async function(e,t){return(await G).get("defensivekeys",[e,t])}(this._me.id,this._selectedPortal.id);e?(this._count.value=e.Count,this._capID.value=e.CapID):(this._count.value="",this._capID.value="")}else this._portal.textContent=Se("PLEASE_SELECT_PORTAL")},_buildContent:function(){const e=L.DomUtil.create("div","container");this._portal=L.DomUtil.create("div","portal",e),this._count=L.DomUtil.create("input",null,e),this._count.placeholder="number of keys",this._count.size=3,this._capID=L.DomUtil.create("input",null,e),this._capID.placeholder="Capsule ID",this._capID.size=8;const t=L.DomUtil.create("button",null,e);t.textContent=Se("UPDATE_COUNT"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this._addDKey()}));const a=L.DomUtil.create("button",null,e);return a.textContent=Se("D_SHOW_LIST"),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),(new ac).enable()})),this._portalClickedHook(),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("INPUT_DT_KEY_COUNT"),html:e,width:"auto",dialogClass:"wdkeys",buttons:t,id:b.dialogNames.wasabeeDKeyButton})},_addDKey:async function(){const e={PortalID:this._selectedPortal.id,Count:Number(this._count.value),CapID:this._capID.value,Name:this._selectedPortal.name,Lat:this._selectedPortal.lat,Lng:this._selectedPortal.lng};try{const a=JSON.stringify(e);console.log(a),await(t=a,Mt("/api/v1/d",t,"application/json;charset=UTF-8")),ve("Registered with server"),window.map.fire("wasabee:defensivekeys")}catch(e){console.error(e),De(e)}var t}}),nc=Ht.extend({statics:{TYPE:"wasabeeButton"},initialize:function(e){this.type=nc.TYPE,this.title=ke("WASABEE BUTTON TITLE"),this.handler=this._toggleActions,this._container=e,this.button=this._createButton({container:e,className:"wasabee-toolbar-wasabee",callback:this.handler,context:this,title:this.title}),this._lastLoginState=!1,this._buildActions(),this.setSubActions(this.getSubActions()),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=ke("WASABEE BUTTON TITLE"),this._buildActions(),this.setSubActions(this.getSubActions())})),this.update()},getSubActions:function(){let e=[];return this._lastLoginState?(e=[this._logoutAction],e.push(this._teamAction)):e=[this._loginAction],e=e.concat(this._alwaysActions),this._lastLoginState&&(e=e.concat(this._Dactions)),e=e.concat(this._SettingsActions),e},_buildActions:function(){this._loginAction={title:ke("LOG IN"),text:ke("LOG IN"),callback:()=>{this.disable(),(new zr).enable()},context:this},this._teamAction={title:ke("TEAMS BUTTON TITLE"),text:ke("TEAMS BUTTON"),callback:()=>{this.disable(),(new mr).enable()},context:this},this._logoutAction={title:ke("LOG_OUT"),text:ke("LOG_OUT"),callback:async()=>{try{await It("/api/v1/me/logout")}catch(e){console.error(e),De(e)}$.purge(),dt({id:"wasabeeLogout"})},context:this},this._teamAction={title:ke("TEAMS BUTTON TITLE"),text:ke("TEAMS BUTTON"),callback:()=>{this.disable(),(new mr).enable()},context:this},this._alwaysActions=[{title:ke("OPS BUTTON TITLE"),text:ke("OPS BUTTON"),callback:()=>{this.disable(),(new Kr).enable()},context:this},{title:ke("NEWOP BUTTON TITLE"),text:ke("NEWOP BUTTON"),callback:()=>{this.disable(),(new Yr).enable()},context:this}],this._Dactions=[{title:ke("WD BUTTON TITLE"),text:ke("WD BUTTON"),callback:()=>{this.disable(),(new oc).enable()},context:this}],this._SettingsActions=[{title:ke("toolbar.wasabee.settings"),text:ke("toolbar.wasabee.settings"),callback:()=>{this.disable(),(new Ql).enable()},context:this}]},update:function(){const e=$.isLoggedIn();e!=this._lastLoginState&&(this._lastLoginState=e,e?this.button.classList.add("wasabee-logged-in"):this.button.classList.remove("wasabee-logged-in"),this.setSubActions(this.getSubActions()),this.disable())}}),ic=nc,rc=Ht.extend({statics:{TYPE:"syncButton"},update:function(){const e=$.isLoggedIn();this.button.style.display=e?"block":"none"},initialize:function(e){this.type=rc.TYPE,this.title=Se("SYNC"),this.button=this._createButton({container:e,className:"wasabee-toolbar-sync",context:this,title:this.title,callback:async()=>{this.button.classList.add("loading"),await yr(),this.button.classList.remove("loading")}}),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("SYNC")})),window.map.on("wasabee:fullsync",(()=>{this.button.classList.remove("loading")})),window.map.on("wasabee:login",(()=>{this.button.classList.add("loading")})),this.update()}}),sc=rc;let lc=" ";class cc{static get separator(){return lc}static set separator(e){lc=e}static parse(e){if(!isNaN(parseFloat(e))&&isFinite(e))return Number(e);const t=String(e).trim().replace(/^-/,"").replace(/[NSEW]$/i,"").split(/[^0-9.,]+/);if(""==t[t.length-1]&&t.splice(t.length-1),""==t)return NaN;let a=null;switch(t.length){case 3:a=t[0]/1+t[1]/60+t[2]/3600;break;case 2:a=t[0]/1+t[1]/60;break;case 1:a=t[0];break;default:return NaN}return/^-|[WS]$/i.test(e.trim())&&(a=-a),Number(a)}static toDms(e,t="d",a){if(isNaN(e))return null;if("string"==typeof e&&""==e.trim())return null;if("boolean"==typeof e)return null;if(e==1/0)return null;if(null==e)return null;if(void 0===a)switch(t){case"d":case"deg":a=4;break;case"dm":case"deg+min":a=2;break;case"dms":case"deg+min+sec":a=0;break;default:t="d",a=4}e=Math.abs(e);let o=null,n=null,i=null,r=null;switch(t){default:case"d":case"deg":n=e.toFixed(a),n<100&&(n="0"+n),n<10&&(n="0"+n),o=n+"°";break;case"dm":case"deg+min":n=Math.floor(e),i=(60*e%60).toFixed(a),60==i&&(i=(0).toFixed(a),n++),n=("000"+n).slice(-3),i<10&&(i="0"+i),o=n+"°"+cc.separator+i+"′";break;case"dms":case"deg+min+sec":n=Math.floor(e),i=Math.floor(3600*e/60)%60,r=(3600*e%60).toFixed(a),60==r&&(r=(0).toFixed(a),i++),60==i&&(i=0,n++),n=("000"+n).slice(-3),i=("00"+i).slice(-2),r<10&&(r="0"+r),o=n+"°"+cc.separator+i+"′"+cc.separator+r+"″"}return o}static toLat(e,t,a){const o=cc.toDms(cc.wrap90(e),t,a);return null===o?"–":o.slice(1)+cc.separator+(e<0?"S":"N")}static toLon(e,t,a){const o=cc.toDms(cc.wrap180(e),t,a);return null===o?"–":o+cc.separator+(e<0?"W":"E")}static toBrng(e,t,a){const o=cc.toDms(cc.wrap360(e),t,a);return null===o?"–":o.replace("360","0")}static fromLocale(e){const t=123456.789.toLocaleString(),a={thousands:t.slice(3,4),decimal:t.slice(7,8)};return e.replace(a.thousands,"⁜").replace(a.decimal,".").replace("⁜",",")}static toLocale(e){const t=123456.789.toLocaleString(),a={thousands:t.slice(3,4),decimal:t.slice(7,8)};return e.replace(/,([0-9])/,"⁜$1").replace(".",a.decimal).replace("⁜",a.thousands)}static compassPoint(e,t=3){if(![1,2,3].includes(Number(t)))throw new RangeError(`invalid precision ‘${t}’`);e=cc.wrap360(e);const a=4*2**(t-1);return["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"][Math.round(e*a/360)%a*16/a]}static wrap90(e){if(-90<=e&&e<=90)return e;const t=e;return 1*Math.abs(((t-90)%360+360)%360-180)-90}static wrap180(e){if(-180<=e&&e<=180)return e;const t=360;return((360*e/t-180)%t+t)%t-180}static wrap360(e){if(0<=e&&e<360)return e;const t=360;return(360*e/t%t+t)%t}}Number.prototype.toRadians=function(){return this*Math.PI/180},Number.prototype.toDegrees=function(){return 180*this/Math.PI};const dc=cc;class uc{constructor(e,t,a){if(isNaN(e)||isNaN(t)||isNaN(a))throw new TypeError(`invalid vector [${e},${t},${a}]`);this.x=Number(e),this.y=Number(t),this.z=Number(a)}get length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}plus(e){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");return new uc(this.x+e.x,this.y+e.y,this.z+e.z)}minus(e){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");return new uc(this.x-e.x,this.y-e.y,this.z-e.z)}times(e){if(isNaN(e))throw new TypeError(`invalid scalar value ‘${e}’`);return new uc(this.x*e,this.y*e,this.z*e)}dividedBy(e){if(isNaN(e))throw new TypeError(`invalid scalar value ‘${e}’`);return new uc(this.x/e,this.y/e,this.z/e)}dot(e){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");return this.x*e.x+this.y*e.y+this.z*e.z}cross(e){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");const t=this.y*e.z-this.z*e.y,a=this.z*e.x-this.x*e.z,o=this.x*e.y-this.y*e.x;return new uc(t,a,o)}negate(){return new uc(-this.x,-this.y,-this.z)}unit(){const e=this.length;if(1==e)return this;if(0==e)return this;const t=this.x/e,a=this.y/e,o=this.z/e;return new uc(t,a,o)}angleTo(e,t){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");if(!(t instanceof uc||null==t))throw new TypeError("n is not Vector3d object");const a=null==t||this.cross(e).dot(t)>=0?1:-1,o=this.cross(e).length*a,n=this.dot(e);return Math.atan2(o,n)}rotateAround(e,t){if(!(e instanceof uc))throw new TypeError("axis is not Vector3d object");const a=t.toRadians(),o=this.unit(),n=e.unit(),i=Math.sin(a),r=Math.cos(a),s=1-r,l=n.x,c=n.y,d=n.z,u=[[s*l*l+r,s*l*c-i*d,s*l*d+i*c],[s*l*c+i*d,s*c*c+r,s*c*d-i*l],[s*l*d-i*c,s*c*d+i*l,s*d*d+r]],p=[u[0][0]*o.x+u[0][1]*o.y+u[0][2]*o.z,u[1][0]*o.x+u[1][1]*o.y+u[1][2]*o.z,u[2][0]*o.x+u[2][1]*o.y+u[2][2]*o.z];return new uc(p[0],p[1],p[2])}toString(e=3){return`[${this.x.toFixed(e)},${this.y.toFixed(e)},${this.z.toFixed(e)}]`}}Number.prototype.toRadians=function(){return this*Math.PI/180},Number.prototype.toDegrees=function(){return 180*this/Math.PI};const pc=uc,mc={WGS84:{a:6378137,b:6356752.314245,f:1/298.257223563}},hc={WGS84:{ellipsoid:mc.WGS84}};Object.freeze(mc.WGS84),Object.freeze(hc.WGS84);class gc{constructor(e,t,a=0){if(isNaN(e)||null==e)throw new TypeError(`invalid lat ‘${e}’`);if(isNaN(t)||null==t)throw new TypeError(`invalid lon ‘${t}’`);if(isNaN(a)||null==a)throw new TypeError(`invalid height ‘${a}’`);this._lat=dc.wrap90(Number(e)),this._lon=dc.wrap180(Number(t)),this._height=Number(a)}get lat(){return this._lat}get latitude(){return this._lat}set lat(e){if(this._lat=isNaN(e)?dc.wrap90(dc.parse(e)):dc.wrap90(Number(e)),isNaN(this._lat))throw new TypeError(`invalid lat ‘${e}’`)}set latitude(e){if(this._lat=isNaN(e)?dc.wrap90(dc.parse(e)):dc.wrap90(Number(e)),isNaN(this._lat))throw new TypeError(`invalid latitude ‘${e}’`)}get lon(){return this._lon}get lng(){return this._lon}get longitude(){return this._lon}set lon(e){if(this._lon=isNaN(e)?dc.wrap180(dc.parse(e)):dc.wrap180(Number(e)),isNaN(this._lon))throw new TypeError(`invalid lon ‘${e}’`)}set lng(e){if(this._lon=isNaN(e)?dc.wrap180(dc.parse(e)):dc.wrap180(Number(e)),isNaN(this._lon))throw new TypeError(`invalid lng ‘${e}’`)}set longitude(e){if(this._lon=isNaN(e)?dc.wrap180(dc.parse(e)):dc.wrap180(Number(e)),isNaN(this._lon))throw new TypeError(`invalid longitude ‘${e}’`)}get height(){return this._height}set height(e){if(this._height=Number(e),isNaN(this._height))throw new TypeError(`invalid height ‘${e}’`)}get datum(){return this._datum}set datum(e){this._datum=e}static get ellipsoids(){return mc}static get datums(){return hc}static parse(...e){if(0==e.length)throw new TypeError("invalid (empty) point");let t,a,o;if("object"==typeof e[0]&&(1==e.length||!isNaN(parseFloat(e[1])))){const n=e[0];if("Point"==n.type&&Array.isArray(n.coordinates)?([a,t,o]=n.coordinates,o=o||0):(null!=n.latitude&&(t=n.latitude),null!=n.lat&&(t=n.lat),null!=n.longitude&&(a=n.longitude),null!=n.lng&&(a=n.lng),null!=n.lon&&(a=n.lon),null!=n.height&&(o=n.height),t=dc.wrap90(dc.parse(t)),a=dc.wrap180(dc.parse(a))),null!=e[1]&&(o=e[1]),isNaN(t)||isNaN(a))throw new TypeError(`invalid point ‘${JSON.stringify(e[0])}’`)}if("string"==typeof e[0]&&2==e[0].split(",").length&&([t,a]=e[0].split(","),t=dc.wrap90(dc.parse(t)),a=dc.wrap180(dc.parse(a)),o=e[1]||0,isNaN(t)||isNaN(a)))throw new TypeError(`invalid point ‘${e[0]}’`);if(null==t&&null==a&&([t,a]=e,t=dc.wrap90(dc.parse(t)),a=dc.wrap180(dc.parse(a)),o=e[2]||0,isNaN(t)||isNaN(a)))throw new TypeError(`invalid point ‘${e.toString()}’`);return new this(t,a,o)}toCartesian(){const e=this.datum?this.datum.ellipsoid:this.referenceFrame?this.referenceFrame.ellipsoid:mc.WGS84,t=this.lat.toRadians(),a=this.lon.toRadians(),o=this.height,{a:n,f:i}=e,r=Math.sin(t),s=Math.cos(t),l=Math.sin(a),c=Math.cos(a),d=2*i-i*i,u=n/Math.sqrt(1-d*r*r);return new fc((u+o)*s*c,(u+o)*s*l,(u*(1-d)+o)*r)}equals(e){if(!(e instanceof gc))throw new TypeError(`invalid point ‘${e}’`);return!(Math.abs(this.lat-e.lat)>Number.EPSILON||Math.abs(this.lon-e.lon)>Number.EPSILON||Math.abs(this.height-e.height)>Number.EPSILON||this.datum!=e.datum||this.referenceFrame!=e.referenceFrame||this.epoch!=e.epoch)}toString(e="d",t,a=null){if(!["d","dm","dms","n"].includes(e))throw new RangeError(`invalid format ‘${e}’`);const o=(this.height>=0?" +":" ")+this.height.toFixed(a)+"m";return"n"==e?(null==t&&(t=4),`${this.lat.toFixed(t)}, ${this.lon.toFixed(t)}${null==a?"":o}`):`${dc.toLat(this.lat,e,t)}, ${dc.toLon(this.lon,e,t)}${null==a?"":o}`}}class fc extends pc{constructor(e,t,a){super(e,t,a)}toLatLon(e=mc.WGS84){if(!e||!e.a)throw new TypeError(`invalid ellipsoid ‘${e}’`);const{x:t,y:a,z:o}=this,{a:n,b:i,f:r}=e,s=2*r-r*r,l=s/(1-s),c=Math.sqrt(t*t+a*a),d=i*o/(n*c)*(1+l*i/Math.sqrt(c*c+o*o)),u=d/Math.sqrt(1+d*d),p=u/d,m=isNaN(p)?0:Math.atan2(o+l*i*u*u*u,c-s*n*p*p*p),h=Math.atan2(a,t),g=Math.sin(m),f=c*Math.cos(m)+o*g-n*n/(n/Math.sqrt(1-s*g*g));return new gc(m.toDegrees(),h.toDegrees(),f)}toString(e=0){return`[${this.x.toFixed(e)},${this.y.toFixed(e)},${this.z.toFixed(e)}]`}}const Ec=Math.PI,_c=Number.EPSILON;class wc extends gc{distanceTo(e){try{const t=this.inverse(e).distance;return Number(t.toFixed(3))}catch(e){if(e instanceof EvalError)return NaN;throw e}}initialBearingTo(e){try{const t=this.inverse(e).initialBearing;return Number(t.toFixed(7))}catch(e){if(e instanceof EvalError)return NaN;throw e}}finalBearingTo(e){try{const t=this.inverse(e).finalBearing;return Number(t.toFixed(7))}catch(e){if(e instanceof EvalError)return NaN;throw e}}destinationPoint(e,t){return this.direct(Number(e),Number(t)).point}finalBearingOn(e,t){const a=this.direct(Number(e),Number(t)).finalBearing;return Number(a.toFixed(7))}intermediatePointTo(e,t){if(0==t)return this;if(1==t)return e;const a=this.inverse(e),o=a.distance,n=a.initialBearing;return isNaN(n)?this:this.destinationPoint(o*t,n)}direct(e,t){if(isNaN(e))throw new TypeError(`invalid distance ${e}`);if(0==e)return{point:this,finalBearing:NaN,iterations:0};if(isNaN(t))throw new TypeError(`invalid bearing ${t}`);if(0!=this.height)throw new RangeError("point must be on the surface of the ellipsoid");const a=this.lat.toRadians(),o=this.lon.toRadians(),n=Number(t).toRadians(),i=Number(e),r=this.datum?this.datum.ellipsoid:gc.ellipsoids.WGS84,{a:s,b:l,f:c}=r,d=Math.sin(n),u=Math.cos(n),p=(1-c)*Math.tan(a),m=1/Math.sqrt(1+p*p),h=p*m,g=Math.atan2(p,u),f=m*d,E=1-f*f,_=E*(s*s-l*l)/(l*l),w=1+_/16384*(4096+_*(_*(320-175*_)-768)),T=_/1024*(256+_*(_*(74-47*_)-128));let b=i/(l*w),A=null,L=null,k=null,S=null,v=0;do{k=Math.cos(2*g+b),A=Math.sin(b),L=Math.cos(b),S=b,b=i/(l*w)+T*A*(k+T/4*(L*(2*k*k-1)-T/6*k*(4*A*A-3)*(4*k*k-3)))}while(Math.abs(b-S)>1e-12&&++v<100);if(v>=100)throw new EvalError("Vincenty formula failed to converge");const O=h*A-m*L*u,D=Math.atan2(h*L+m*A*u,(1-c)*Math.sqrt(f*f+O*O)),N=c/16*E*(4+c*(4-3*E)),C=o+(Math.atan2(A*d,m*L-h*A*u)-(1-N)*c*f*(b+N*A*(k+N*L*(2*k*k-1)))),y=Math.atan2(f,-O);return{point:new wc(D.toDegrees(),C.toDegrees(),0,this.datum),finalBearing:dc.wrap360(y.toDegrees()),iterations:v}}inverse(e){if(!(e instanceof gc))throw new TypeError(`invalid point ‘${e}’`);if(0!=this.height||0!=e.height)throw new RangeError("point must be on the surface of the ellipsoid");const t=e,a=this.lat.toRadians(),o=this.lon.toRadians(),n=t.lat.toRadians(),i=t.lon.toRadians(),r=this.datum?this.datum.ellipsoid:gc.ellipsoids.WGS84,{a:s,b:l,f:c}=r,d=i-o,u=(1-c)*Math.tan(a),p=1/Math.sqrt(1+u*u),m=u*p,h=(1-c)*Math.tan(n),g=1/Math.sqrt(1+h*h),f=h*g,E=Math.abs(d)>Ec/2||Math.abs(n-a)>Ec/2;let _=d,w=null,T=null,b=E?Ec:0,A=0,L=E?-1:1,k=null,S=1,v=1,O=null,D=0;do{if(w=Math.sin(_),T=Math.cos(_),k=(g*w)**2+(p*f-m*g*T)**2,Math.abs(k)<1e-24)break;A=Math.sqrt(k),L=m*f+p*g*T,b=Math.atan2(A,L);const e=p*g*w/A;v=1-e*e,S=0!=v?L-2*m*f/v:0;const t=c/16*v*(4+c*(4-3*v));if(O=_,_=d+(1-t)*c*e*(b+t*A*(S+t*L*(2*S*S-1))),(E?Math.abs(_)-Ec:Math.abs(_))>Ec)throw new EvalError("λ > π")}while(Math.abs(_-O)>1e-12&&++D<1e3);if(D>=1e3)throw new EvalError("Vincenty formula failed to converge");const N=v*(s*s-l*l)/(l*l),C=N/1024*(256+N*(N*(74-47*N)-128)),y=l*(1+N/16384*(4096+N*(N*(320-175*N)-768)))*(b-C*A*(S+C/4*(L*(2*S*S-1)-C/6*S*(4*A*A-3)*(4*S*S-3)))),R=Math.abs(k)<_c?0:Math.atan2(g*w,p*f-m*g*T),I=Math.abs(k)<_c?Ec:Math.atan2(p*w,-m*g+p*f*T);return{distance:y,initialBearing:Math.abs(y)<_c?NaN:dc.wrap360(R.toDegrees()),finalBearing:Math.abs(y)<_c?NaN:dc.wrap360(I.toDegrees()),iterations:D}}}const Tc=Kt.extend({statics:{TYPE:"trawler"},options:{points:[],zoom:13,automark:!1},addHooks:function(){Kt.prototype.addHooks.call(this),this._mapRefreshHook=this.tileRequestNext.bind(this),this._pointTileDataRequest(this.options.points,this.options.zoom),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.plugin.wasabee.tileTrawlQueue&&delete window.plugin.wasabee.tileTrawlQueue,window.removeHook("mapDataRefreshEnd",this._mapRefreshHook)},_update:function(e){this&&this.remaining&&(this.remaining.textContent=Se("TRAWL_REMAINING",{count:e}))},_buildContent:function(){const e=window.plugin.wasabee.tileTrawlQueue.size,t=L.DomUtil.create("div","container");L.DomUtil.create("label",null,t).textContent=Se("TRAWLING");const a=L.DomUtil.create("div",null,t);this.remaining=L.DomUtil.create("span",null,a),this.remaining.textContent=Se("TRAWL_REMAINING",{count:e}),L.DomUtil.create("label",null,t).textContent=Se("TRAWL SKIP TILES");const o=L.DomUtil.create("select",null,t),n=Number(localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]);let i=0;for(;i<15;){const e=L.DomUtil.create("option",null,o);e.textContent=i,e.value=i,n==i&&(e.selected=!0),i++}return L.DomEvent.on(o,"change",(e=>{L.DomEvent.stop(e),localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]=o.value})),t},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog("close")},this.createDialog({title:Se("TRAWL TITLE"),html:e,width:"auto",dialogClass:"trawl",buttons:t})},_pointTileDataRequest:function(e,t=13){if(localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]||(localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]=0),window.plugin.wasabee.tileTrawlQueue)return void console.log("pointTileDataRequest already running");if(0==e.length)return;const a=window.getDataZoomForMapZoom(t),o=window.getMapZoomTileParameters(a);window.mapDataRequest.setStatus("trawling",void 0,-1),window.plugin.wasabee.tileTrawlQueue=new Map;for(const t of e){const e=window.latToTile(t.lat,o),a=window.lngToTile(t.lng,o),n=window.pointToTileId(o,a,e),i=L.latLng([Number(window.tileToLat(e,o).toFixed(6)),Number(window.tileToLng(a,o).toFixed(6))]);window.plugin.wasabee.tileTrawlQueue.set(n,JSON.stringify(i))}window.addHook("mapDataRefreshEnd",this._mapRefreshHook),window.map.setZoom(t),this.tileRequestNext()},tileRequestNext:function(){if(!window.plugin.wasabee.tileTrawlQueue)return void window.removeHook("mapDataRefreshEnd",this._mapRefreshHook);for(const e of Object.keys(window.mapDataRequest.cache._cache))window.plugin.wasabee.tileTrawlQueue.has(e)&&window.plugin.wasabee.tileTrawlQueue.delete(e);const e=window.plugin.wasabee.tileTrawlQueue.keys();let t=Number(localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]),a=e.next().value;for(;a&&window.mapDataRequest.cache.get(a);)console.log("removing in cache check 2",a),window.plugin.wasabee.tileTrawlQueue.delete(a),a=e.next().value,t>0&&t--;for(;a&&t>0;)window.plugin.wasabee.tileTrawlQueue.delete(a),a=e.next().value,t--;if(a){const e=JSON.parse(window.plugin.wasabee.tileTrawlQueue.get(a));return window.plugin.wasabee.tileTrawlQueue.delete(a),window.map.panTo(e,{duration:.25,animate:!0}),void this._update(window.plugin.wasabee.tileTrawlQueue.size)}delete window.plugin.wasabee.tileTrawlQueue,window.removeHook("mapDataRefreshEnd",this._mapRefreshHook),this.options.automark&&Hr(Re()),this.closeDialog(),ve("trawl done")}}),bc=Kt.extend({statics:{TYPE:"trawl"},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select",this.closeDialog,this),this._displayDialog()},_displayDialog:function(){const e=Re(),t=L.DomUtil.create("div","container"),a=L.DomUtil.create("div",null,t),o=L.DomUtil.create("label",null,a);o.textContent=Se("TRAWL_CLEAR_MARKERS"),o.htmlFor="wasabee-trawl-clear";const n=L.DomUtil.create("input",null,a);n.type="checkbox",n.checked=!1,n.id="wasabee-trawl-clear";const i=L.DomUtil.create("label",null,a);i.textContent=Se("TRAWL_AUTOMARK"),i.htmlFor="wasabee-trawl-automark",this.automark=L.DomUtil.create("input",null,a),this.automark.type="checkbox",this.automark.checked=!1,this.automark.id="wasabee-trawl-automark",e.canWrite()||(a.style.display="none"),L.DomUtil.create("h4",null,t).textContent=Se("TRAWL WARNING");const r=L.DomUtil.create("button",null,t);r.textContent=Se("TRAWL"),L.DomEvent.on(r,"click",(async()=>{const e=Re();1==n.checked&&this._clearMarkers(),await z.removeBlockers(e.ID);const t=this._getTrawlPoints();new Tc({points:t,zoom:13,automark:this.automark.checked}).enable(),this.closeDialog()})),L.DomUtil.create("h4",null,t).textContent=Se("TRAWL_BULK_LOAD_WARNING");const s=L.DomUtil.create("button",null,t);s.textContent=Se("TRAWL_BULK_LOAD"),L.DomEvent.on(s,"click",(async()=>{const e=Re();await z.removeBlockers(e.ID),1==n.checked&&this._clearMarkers();const t=this._getTrawlPoints();this._bulkLoad(t,14),this.closeDialog()}));const l={};l[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("TRAWL TITLE"),html:t,width:"auto",dialogClass:"trawl",buttons:l,id:b.dialogNames.trawl})},_getTrawlPoints:function(){const e=Re();window.mapDataRequest.setStatus("calculating",void 0,-1);const t=new Array;for(const a of e.links){const o=a.getLatLngs(e),n=new wc(o[0].lat,o[0].lng),i=new wc(o[1].lat,o[1].lng),r=n.distanceTo(i);let s=n.initialBearingTo(i),l=0;t.push(o[0]);let c=n,d=0;for(;le.type!==X.constants.MARKER_TYPE_DESTROY&&e.type!==X.constants.MARKER_TYPE_VIRUS)),e.update()},_bulkLoad:function(e,t){if(this._mapRefreshHook=this.bulkLoadDone.bind(this),window.addHook("mapDataRefreshEnd",this._mapRefreshHook),0==e.length)return;const a=window.mapDataRequest;a.debugTiles.reset(),this.oldDebugTiles=window.mapDataRequest.debugTiles,window.mapDataRequest.debugTiles=new Ac;const o=window.getDataZoomForMapZoom(t),n=window.getMapZoomTileParameters(o),i=new L.latLngBounds(e);window.map.fitBounds(i);const r=new Map;for(const t of e){const e=window.latToTile(t.lat,n),a=window.lngToTile(t.lng,n),o=window.pointToTileId(n,a,e);r.set(o,o)}const s={};for(const e of r.keys())s[e]=e;a.resetRenderQueue(),a.pauseRenderQueue(!0),a.clearTimeout(),a.queuedTiles=s,a.processRequestQueue(!0),a.pauseRenderQueue(!1),this.bulkAlert=ve("please wait until status says 'done'; If the first didn't trigger a load, close this dialog and try again")},bulkLoadDone:function(){1==this.automark.checked&&Hr(Re()),window.mapDataRequest.debugTiles=this.oldDebugTiles,this.bulkAlert.dialog("close"),ve("bulk data load done"),window.removeHook("mapDataRefreshEnd",this._mapRefreshHook)}});class Ac{reset(){console.log("fdt reset")}create(){console.log("fdt create")}setState(){}runClearPass(){console.log("fdt runClearPass")}}const Lc=bc,kc=Kt.extend({statics:{TYPE:"blockerList"},options:{usePane:!0},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),window.map.on("wasabee:crosslinks:update",this.update,this),window.map.on("wasabee:crosslinks:done",this.update,this),window.addHook("portalAdded",Ve),window.addHook("portalDetailLoaded",je),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:crosslinks:update",this.update,this),window.map.off("wasabee:crosslinks:done",this.update,this),window.removeHook("portalAdded",Ve),window.removeHook("portalDetailLoaded",je)},_displayDialog:async function(){const e=Re();this.sortable=await this._getListDialogContent(0,!1),$e(e);const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},e.canWrite()&&(t[Se("AUTOMARK")]=()=>{Hr(Re())}),t[Se("RESET")]=async()=>{const e=Re();await z.removeBlockers(e.ID),this.update(),window.map.fire("wasabee:crosslinks")},t[Se("LOAD PORTALS")]=()=>{$e(Re(),!0)},t[Se("TRAWL TITLE")]=()=>{(new Lc).enable()},e.canWrite()&&(t[Se("dialog.blockers.clear_automark")]=()=>{const e=Re();e.startBatchMode(),e.markers=e.markers.filter((e=>"auto-marked"!==e.comment)),e.cleanPortalList(),e.endBatchMode()}),this.createDialog({title:Se("KNOWN_BLOCK",{opName:e.name}),html:this.sortable.table,width:"auto",dialogClass:"blockerlist",buttons:t,id:b.dialogNames.blockerList})},update:async function(){if(!this._enabled)return;if(!this.sortable)return;const e=Re();this.sortable=await this._getListDialogContent(this.sortable.sortBy,this.sortable.sortAsc),this.setContent(this.sortable.table),this.setTitle(Se("KNOWN_BLOCK",{opName:e.name}))},async _getListDialogContent(e,t){const a=Re(),o=new pi,n=await z.getAll(a);return o.fields=[{name:Se("FROM_PORT"),value:e=>e.fromPortal?e.fromPortal.name:e.from,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{a.fromPortal?e.appendChild(We(a.fromPortal)):e.textContent=t}},{name:this._smallScreen?"#":Se("COUNT"),value:e=>n.filter((t=>t.from==e.from||t.to==e.from)).length,format:(e,t)=>e.textContent=t},{name:Se("TO_PORT"),value:e=>e.toPortal?e.toPortal.name:e.to,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{a.toPortal?e.appendChild(We(a.toPortal)):e.textContent=t}},{name:this._smallScreen?"#":Se("COUNT"),value:e=>n.filter((t=>t.from==e.to||t.to==e.to)).length,format:(e,t)=>e.textContent=t}],o.sortBy=e,o.sortAsc=t,o.items=n,o}}),Sc=Ii.extend({statics:{TYPE:"markerList"},SORTBY_KEY:"wasabee-markerlist-sortby",SORTASC_KEY:"wasabee-markerlist-sortasc",_displayDialog:async function(){const e=Re();Xe(e),this.sortable=this.getListDialogContent(e,e.markers,this.SORTBY_KEY,this.SORTASC_KEY);const t={};e.canWrite()&&(t[Se("CLEAR MARKERS")]=()=>{!function(e){new si({title:Se("dialog.clear_markers.title",{opName:e.name}),label:Se("dialog.clear_markers.text",{opName:e.name}),type:"operation",callback:()=>{e.clearAllMarkers(),window.map.fire("wasabee:crosslinks")}}).enable()}(Re())},t[Se("dialog.blockers.clear_automark")]=()=>{const e=Re();e.startBatchMode(),e.markers=e.markers.filter((e=>"auto-marked"!==e.comment)),e.cleanPortalList(),e.endBatchMode()}),t[Se("CLOSE")]=()=>{this.closeDialog()},await this.sortable.done,this.createDialog({title:Se("MARKER_LIST",{opName:e.name}),html:this.sortable.table,width:"auto",dialogClass:"checklist",buttons:t,id:b.dialogNames.markerList})},update:async function(){if(!this.sortable)return;const e=Re();this.setTitle(Se("MARKER_LIST",{opName:e.name})),this.sortable=this.getListDialogContent(e,e.markers,this.SORTBY_KEY,this.SORTASC_KEY),await this.sortable.done,this.setContent(this.sortable.table)}}),vc=Kt.extend({statics:{TYPE:"keyListPortal"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this)},_displayDialog:function(){if(!this.options.portalID)return void this.disable();this._sortable=this.getSortable();const e={};e[Se("CLOSE")]=()=>{this.closeDialog()};const t=Re().getPortal(this.options.portalID);this.createDialog({title:Se("PORTAL KEY LIST",{portalName:Fe(t)}),html:this.getListDialogContent(this.options.portalID),width:"auto",dialogClass:"keylistportal",buttons:e,id:b.dialogNames.keyListPortal})},update:function(){const e=Re().getPortal(this.options.portalID);if(null==e)return this.setTitle("unknown portal"),void this.setContent("selected operation changed");const t=this.getListDialogContent(this.options.portalID);this.setContent(t),this.setTitle(Se("PORTAL KEY LIST",{portalName:Fe(e)}))},getSortable:function(){const e=new pi;return e.fields=[{name:Se("AGENT"),value:e=>e.gid,sort:(e,t)=>e.localeCompare(t),format:async(e,t,a)=>{const o=await ut(a.gid);e.textContent=o?o.getName():a.gid}},{name:Se("ON_HAND"),value:e=>e.onhand},{name:Se("CAPSULE"),value:e=>e.capsule,sort:(e,t)=>e.localeCompare(t),format:(e,t)=>{e.textContent=t}}],e.sortBy=0,e},getListDialogContent:function(e){const t=Re();return this._sortable.items=t.keysonhand.filter((function(t){return t.portalId==e})),this._sortable.table}});function Oc(e,t,a,o){return function(e,t,a,o){const n=new FormData;return n.append("count",`${a}`),n.append("capsule",o),Mt(`/api/v1/draw/${e}/portal/${t}/keyonhand`,n)}(e,t,a,o).catch((e=>(e instanceof Ne&&406==e.code&&De(Se("dialog.keys.update_error")),Promise.reject())))}const Dc=Kt.extend({statics:{TYPE:"keysList"},options:{usePane:!0},addHooks:function(){Kt.prototype.addHooks.call(this);const e=Re();this._opID=e.ID,window.map.on("wasabee:login wasabee:logout",this.update,this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),window.map.on("wasabee:filter",this.update,this),$.isLoggedIn()?this._me=$.localGet():this._me=null,this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:login wasabee:logout",this.update,this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:filter",this.update,this)},_displayDialog:function(){const e=Re(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("KEY_LIST2",{opName:e.name}),html:this.getListDialogContent(e,0,!0).table,width:"auto",dialogClass:"keyslist",buttons:t,id:b.dialogNames.keysList})},update:function(){const e=Re();e.ID!=this._opID&&console.log("operation changed"),$.isLoggedIn()?this._me=$.localGet():this._me=null,this.setTitle(Se("KEY_LIST2",{opName:e.name}));const t=this.getListDialogContent(e,this.sortable.sortBy,this.sortable.sortAsc).table;this.setContent(t)},getListDialogContent:function(e,t,a){this.sortable=new pi;const o=[{name:Se("PORTAL"),value:t=>e.getPortal(t.id).name,sort:(e,t)=>e.localeCompare(t),format:(t,a,o)=>{t.appendChild(We(e.getPortal(o.id)))}},{name:Se("REQUIRED"),value:e=>e.required,format:(e,t,a)=>{a.open?e.textContent=Se("OPEN_REQUEST"):a.done?e.textContent=t-a.done+"/"+t:e.textContent=t,a.onHand>=a.value-a.done?L.DomUtil.addClass(e,"enough"):L.DomUtil.addClass(e,"notenough")}},{name:Se("ON_HAND"),value:e=>parseInt(e.onHand,10),format:(e,t,a)=>{const o=L.DomUtil.create("a");o.name=a.id,L.DomEvent.on(o,"click",L.DomEvent.stopPropagation).on(o,"mousedown",L.DomEvent.stopPropagation).on(o,"dblclick",L.DomEvent.stopPropagation).on(o,"click",L.DomEvent.preventDefault).on(o,"click",this.showKeyByPortal,a),o.textContent=t,e.appendChild(o)}}];let n="no-user";this._me&&e.isOnCurrentServer()?(n=this._me.id,this.sortable.fields=o.concat([{name:Se("MY_COUNT"),value:e=>parseInt(e.iHave,10),format:(t,a,o)=>{const i=L.DomUtil.create("input");i.value=a,i.size=3,L.DomEvent.on(i,"change",(()=>{Oc(e.ID,o.id,i.value,o.capsule).then((()=>e.keyOnHand(o.id,n,i.value,o.capsule))).catch((()=>i.value=a))})),t.appendChild(i)}},{name:Se("MY_CAP_ID"),value:e=>e.capsule,sort:(e,t)=>e.localeCompare(t),format:(t,a,o)=>{const i=L.DomUtil.create("input");i.value=a,i.size=8,L.DomEvent.on(i,"change",(()=>{Oc(e.ID,o.id,o.iHave,i.value).then((()=>e.keyOnHand(o.id,n,o.iHave,i.value))).catch((()=>i.value=a))})),t.appendChild(i)}}])):this.sortable.fields=o;const i=new Array;for(const t of e.anchors){const a={},o=e.links.filter((function(e){return Ri(e)&&e.toPortalId==t}));if(!o.length)continue;a.id=t,a.required=o.length,a.onHand=0,a.iHave=0,a.capsule="",a.done=0;for(const e of o)e.completed&&a.done++;const r=e.keysonhand.filter((function(e){return e.portalId==t}));if(r&&r.length>0)for(const e of r)a.onHand+=e.onhand,e.gid==n&&(a.iHave=e.onhand,a.capsule=e.capsule);i.push(a)}for(const t of e.markers.filter((function(e){return Ri(e)&&e.type==X.constants.MARKER_TYPE_KEY}))){const a={};a.id=t.portalId,a.open=!0,a.onHand=0,a.iHave=0,a.capsule="";const o=e.keysonhand.filter((function(e){return e.portalId==a.id}));if(o&&o.length>0)for(const e of o)a.onHand+=e.onhand,e.gid==n&&(a.iHave=e.onhand,a.capsule=e.capsule);i.push(a)}return this.sortable.sortBy=t,this.sortable.sortAsc=a,this.sortable.items=i,this.sortable},showKeyByPortal:function(e){new vc({portalID:e.srcElement.name}).enable()}}),Nc=Dc;let Cc=[],yc=[],Rc=!1;function Ic(){const e=Re();Cc=[new _e(e)],yc=[]}function Mc(){if(Rc)return;const e=Re();Cc.push(new _e(e)),Cc.length>w.UNDO_HISTORY_SIZE&&Cc.shift(),yc=[]}function Pc(e){const t=Re();for(const a of t.links)Ri(a)&&(a.color=e);t.update(),wi(e)}function xc(e){const t=Re();for(const a of t.links)Ri(a)&&a.assign(e);for(const a of t.markers)Ri(a)&&a.assign(e);t.update()}function Uc(e){const t=Re();for(const a of t.links)Ri(a)&&(a.state=e);for(const a of t.markers)Ri(a)&&(a.state=e);t.update()}function Bc(e){const t=Re();for(const a of t.links)Ri(a)&&(a.comment=e);for(const a of t.markers)Ri(a)&&(a.comment=e);t.update()}function Kc(e){const t=Re();t.links=t.links.filter((t=>Ri(t)===e)),t.markers=t.markers.filter((t=>Ri(t)===e)),t.cleanAll(),t.update()}class Gc extends Kt{addHooks(){super.addHooks(),this._filters={},this._activeTab=0,window.map.on("wasabee:op:select",this.update,this),window.map.on("wasabee:teams",this.update,this),this._displayDialog()}removeHooks(){super.removeHooks(),window.map.off("wasabee:op:select",this.update,this),window.map.off("wasabee:teams",this.update,this),Di=null,window.map.fire("wasabee:filter")}async update(){this.setContent(await this._getContent()),this.setTitle(Se("dialog.filter.title"))}_createSelect(e,t){return this._createSelectMultiple(e,void 0!==t?[t]:[],!0)}_createSelectMultiple(e,t,a){const o=L.DomUtil.create("select");o.multiple=!a;for(const[a,n]of e){const e=L.DomUtil.create("option",null,o);e.textContent=a,e.value=n,t&&t.includes(n)&&(e.selected=!0)}return o}_createPortal(e,t){const a=L.DomUtil.create("div","set-portal-small"),o=L.DomUtil.create("span","set-portal-display",a),n=L.DomUtil.create("button","set-portal-button",a);return n.textContent=Se("SET"),e?o.appendChild(We(e)):o.textContent=Se("NOT_SET"),L.DomEvent.on(n,"click",(()=>{const e=Ze();e&&(o.textContent="",o.appendChild(We(e)),t&&t(e))})),a}_addFieldPortal(e,t,a){this._filters[t]||(this._filters[t]={enabled:!1,selected:null,toFilter:a.toFilter});const o=this._filters[t],n=L.DomUtil.create("label","checkbox",e),i=L.DomUtil.create("input","",n);i.type="checkbox",i.checked=o.enabled,L.DomUtil.create("span","",n).textContent=a.label;const r=this._createPortal(o.selected,(e=>{o.selected=e,o.enabled=i.checked&&!!o.selected}));e.appendChild(r),L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),o.enabled=i.checked&&!!o.selected}))}_addField(e,t,a){this._filters[t]||(this._filters[t]={enabled:!1,selected:[],toFilter:a.toFilter});const o=this._filters[t],n=L.DomUtil.create("label","checkbox",e),i=L.DomUtil.create("input","",n);i.type="checkbox",i.checked=o.enabled,L.DomUtil.create("span","",n).textContent=a.label;const r=this._createSelectMultiple(a.options,o.selected);r.disabled=!o.enabled,e.appendChild(r),L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),o.enabled=i.checked,r.disabled=!i.checked})),L.DomEvent.on(r,"change",(e=>{L.DomEvent.stop(e),o.selected=Array.from(r.selectedOptions).map((e=>e.value))}))}_addFieldText(e,t,a){this._filters[t]||(this._filters[t]={enabled:!1,selected:"",toFilter:a.toFilter});const o=this._filters[t],n=L.DomUtil.create("label","checkbox",e),i=L.DomUtil.create("input","",n);i.type="checkbox",i.checked=o.enabled,L.DomUtil.create("span","",n).textContent=a.label;const r=L.DomUtil.create("input");r.disabled=!o.enabled,e.appendChild(r),L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),o.enabled=i.checked,r.disabled=!i.checked})),L.DomEvent.on(r,"change",(e=>{L.DomEvent.stop(e),o.selected=r.value}))}_addFieldNumber(e,t,a){this._filters[t]||(this._filters[t]={enabled:!1,selected:null,toFilter:a.toFilter});const o=this._filters[t],n=L.DomUtil.create("label","checkbox",e),i=L.DomUtil.create("input","",n);i.type="checkbox",i.checked=o.enabled,L.DomUtil.create("span","",n).textContent=a.label;const r=L.DomUtil.create("input");r.type="number",r.disabled=!o.enabled,e.appendChild(r),L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),o.enabled=i.checked,r.disabled=!i.checked})),L.DomEvent.on(r,"change",(e=>{L.DomEvent.stop(e),o.selected=r.valueAsNumber}))}_addAction(e,t,a,o,n){L.DomUtil.create("label","",e).textContent=t,e.appendChild(a);const i=L.DomUtil.create("button","",e);i.textContent=o,L.DomEvent.on(i,"click",(()=>n(a.value)))}async _getFiltersTab(){const e=L.DomUtil.create("a");e.textContent=Se("dialog.filter.filters.title");const t=L.DomUtil.create("div","filters");L.DomUtil.create("div","desc",t).textContent=Se("dialog.filter.filters.description");const a=Re(),o=new Map,n=$.localGet();if(n){const e=await ht(Re().teamlist.map((e=>e.teamid)).filter((e=>n.teamJoined(e))),300);for(const t of e)for(const e of t.agents)o.set(e.id,e.name)}const i=[];for(const[e,t]of o)i.push([t,e]);i.sort(((e,t)=>e[0].localeCompare(t[0]))),i.unshift([Se("UNASSIGNED"),""]),this._addField(t,"assignedTo",{label:Se("ASS_TO"),options:i,toFilter:e=>({op:"in",key:"assignedTo",value:e.map((e=>e||null))})}),this._addField(t,"zone",{label:Se("ZONE"),options:a.zones.map((e=>[e.name,""+e.id])),toFilter:e=>({op:"in",key:"zone",value:e.map((e=>+e))})}),this._addField(t,"state",{label:Se("STATE"),options:[[Se("pending"),"pending"],[Se("assigned"),"assigned"],[Se("acknowledged"),"acknowledged"],[Se("completed"),"completed"]],toFilter:e=>({op:"in",key:"state",value:e})}),this._addField(t,"kind",{label:Se("dialog.filter.filters.field.task"),options:[[Se("dialog.common.links"),"link"],[Se("dialog.common.markers"),"marker"]],toFilter:e=>({op:"or",list:e.map((e=>({op:"kind",value:e})))})}),this._addFieldPortal(t,"fromPortal",{label:Se("FROM_PORT"),toFilter:e=>({op:"or",list:["fromPortalId","portalId"].map((t=>({op:"==",key:t,value:e.id})))})}),this._addFieldPortal(t,"toPortal",{label:Se("TO_PORT"),toFilter:e=>({op:"==",key:"toPortalId",value:e.id})}),this._addFieldText(t,"comment",{label:Se("COMMENT"),toFilter:e=>({op:"match",key:"comment",value:e})}),this._addFieldNumber(t,"order_min",{label:Se("dialog.filter.filters.field.min_order"),toFilter:e=>({op:">=",key:"order",value:e})}),this._addFieldNumber(t,"order_max",{label:Se("dialog.filter.filters.field.max_order"),toFilter:e=>({op:"<=",key:"order",value:e})});const r=L.DomUtil.create("button","apply",t);return r.textContent=Se("dialog.filter.filters.apply"),L.DomEvent.on(r,"click",this._applyFilter,this),[e,t]}async _getActionsTab(){const e=L.DomUtil.create("a");e.textContent=Se("dialog.filter.actions.title");const t=L.DomUtil.create("div","actions");L.DomUtil.create("div","desc",t).textContent=Se("dialog.filter.actions.description");const a=Re(),o=new Map,n=await ht(Re().teamlist.map((e=>e.teamid)),300);for(const e of n)for(const t of e.agents)o.set(t.id,t.name);const i=[[Se("UNASSIGNED"),""]];for(const[e,t]of o)i.push([t,e]);this._addAction(t,Se("ASS_TO"),this._createSelect(i),Se("SET"),xc),this._addAction(t,Se("ZONE"),this._createSelect(a.zones.map((e=>[e.name,""+e.id]))),Se("SET"),(e=>function(e){const t=Re();e=e||0;for(const a of t.links)Ri(a)&&(a.zone=e);for(const a of t.markers)Ri(a)&&(a.zone=e);t.update()}(+e))),this._addAction(t,Se("STATE"),this._createSelect([[Se("pending"),"pending"],[Se("assigned"),"assigned"],[Se("acknowledged"),"acknowledged"],[Se("completed"),"completed"]]),Se("SET"),Uc);const r=L.DomUtil.create("input");r.type="color",r.value=ei(a.getColor()),r.setAttribute("list","wasabee-colors-datalist"),this._addAction(t,Se("dialog.common.color"),r,Se("SET"),Pc),this._addAction(t,Se("COMMENT"),L.DomUtil.create("input"),Se("SET"),Bc);const s=L.DomUtil.create("input");s.type="number",this._addAction(t,Se("ORDER"),s,Se("SET"),(e=>function(e){if(isNaN(e)||!isFinite(e))return;const t=Re();for(const a of t.links)Ri(a)&&(a.order=e);for(const a of t.markers)Ri(a)&&(a.order=e);t.update()}(+e)));const l=L.DomUtil.create("input");l.type="number",this._addAction(t,Se("dialog.filter.actions.shift.label"),l,Se("dialog.filter.actions.shift.button"),(e=>function(e){if(isNaN(e)||!isFinite(e))return;const t=Re();for(const a of t.links)Ri(a)&&(a.order+=e);for(const a of t.markers)Ri(a)&&(a.order+=e);t.update()}(+e)));const c=L.DomUtil.create("button","delete-tasks",t);c.textContent=Se("dialog.filter.actions.delete_visible"),L.DomEvent.on(c,"click",(()=>Kc(!1)));const d=L.DomUtil.create("button","delete-tasks",t);return d.textContent=Se("dialog.filter.actions.delete_hidden"),L.DomEvent.on(d,"click",(()=>Kc(!0))),[e,t]}async _getContent(){const e=L.DomUtil.create("div","container"),t=Re(),a=[];a.push(await this._getFiltersTab()),t.canWrite()&&a.push(await this._getActionsTab());const o=L.DomUtil.create("div","ui-tabs tabs",e),n=L.DomUtil.create("ul","ui-tabs-nav nav",o);for(let e=0;e{for(const e of a)e[0].parentElement.classList.remove("ui-tabs-active"),e[1].style.display="none";t.parentElement.classList.add("ui-tabs-active"),i.style.display=null,this._activeTab=e,this._applyFilter()}))}return this._activeTab>=a.length&&(this._activeTab=0),a[this._activeTab][0].parentElement.classList.add("ui-tabs-active"),a[this._activeTab][1].style.display=null,e}_getFilter(){const e={op:"and",list:[]};for(const t in this._filters){const a=this._filters[t];a.enabled&&e.list.push(a.toFilter(a.selected))}return e}_applyFilter(){var e;!yi(e=this._getFilter())||(Di=e,0)?De("filter invalid"):window.map.fire("wasabee:filter")}async _displayDialog(){const e=await this._getContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("dialog.filter.title"),html:e,width:"auto",dialogClass:"filter",buttons:t,id:"wasabee-filter"})}}Gc.TYPE="settings";const Hc=Ht.extend({statics:{TYPE:"opButton"},initialize:function(e){this.type=Hc.TYPE,this.handler=this._toggleActions,this._container=e;const t=Re();this.button=this._createButton({container:this._container,className:"wasabee-toolbar-op",callback:this._toggleActions,context:this,title:Se("toolbar.op.title",{opName:t.name})}),this.setSubActions(this.getSubActions()),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{const e=Re();this.button.title=Se("toolbar.op.title",{opName:e.name}),this.setSubActions(this.getSubActions())}))},update:function(){Ht.prototype.update.call(this);const e=Re();this.button.title=Se("toolbar.op.title",{opName:e.name}),this.setSubActions(this.getSubActions())},getSubActions:function(){const e=[{title:Se("OP_SETTINGS_TITLE"),text:Se("OP_SETTINGS_BUTTON"),callback:()=>{this.disable(),(new Br).enable()},context:this},{title:Se("CHECKLIST BUTTON TITLE"),text:Se("CHECKLIST BUTTON"),callback:()=>{this.disable(),(new Ii).enable()},context:this},{title:Se("MARKER LIST TITLE"),text:Se("MARKER LIST"),callback:()=>{this.disable(),(new Sc).enable()},context:this},{title:Se("BLOCKER LIST TITLE"),text:Se("BLOCKER TITLE"),callback:()=>{this.disable(),(new kc).enable()},context:this},{title:Se("KEYS"),text:Se("KEYS"),callback:()=>{this.disable(),(new Nc).enable()},context:this},{title:Se("toolbar.op.filter"),text:Se("toolbar.op.filter"),callback:()=>{this.disable(),(new Gc).enable()},context:this}];return Cc.length>1&&e.push({title:Se("toolbar.op.undo"),text:Se("toolbar.op.undo"),accesskey:"z",callback:()=>{dt({id:"analytics",action:"undo"}),async function(){if(Cc.length<2)return!1;const e=Re();yc.push(Cc.pop()),Rc=!0;const t=Cc[Cc.length-1];t.fetched=e.fetched,t.fetchedOp=e.fetchedOp,t.lasteditid=e.lasteditid,await t.store(),await Pe(t.ID),Rc=!1}()},context:this}),yc.length>0&&e.push({title:Se("toolbar.op.redo"),text:Se("toolbar.op.redo"),accesskey:"y",callback:()=>{dt({id:"analytics",action:"redo"}),async function(){if(!yc.length)return!1;const e=Re();Cc.push(yc.pop()),Rc=!0;const t=Cc[Cc.length-1];t.fetched=e.fetched,t.fetchedOp=e.fetchedOp,t.lasteditid=e.lasteditid,await t.store(),await Pe(t.ID),Rc=!1}()},context:this}),e}}),zc=Hc,Fc=Kt.extend({statics:{TYPE:"linkDialog"},needWritePermission:!0,initialize:function(e){Kt.prototype.initialize.call(this,e);let t=localStorage[w.LINK_SOURCE_KEY];t&&(this._source=new ee(t)),t=localStorage[w.ANCHOR_ONE_KEY],t&&(this._anchor1=new ee(t)),t=localStorage[w.ANCHOR_TWO_KEY],t&&(this._anchor2=new ee(t))},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_addPortalSet(e,t,a,o,n){L.DomUtil.create("label",null,e).textContent=t;const i=L.DomUtil.create("button","set",e);if(i.textContent=Se("SET"),n){const t=L.DomUtil.create("button","add",e);t.textContent=n,L.DomEvent.on(t,"click",(e=>{if(L.DomEvent.stop(e),this._source&&this[a]){const e=Re();e.addLink(this._source,this[a],{description:this._desc.value,order:e.nextOrder})}else De("Select both Source and Anchor")}))}const r=L.DomUtil.create("span","portal",e);this[a]?r.appendChild(We(this[a])):r.textContent=Se("NOT_SET"),L.DomEvent.on(i,"click",(e=>{L.DomEvent.stop(e),this[a]=Ze(),this[a]?(localStorage[o]=JSON.stringify(this[a]),r.textContent="",r.appendChild(We(this[a]))):De(Se("PLEASE_SELECT_PORTAL"))}))},_displayDialog:function(){const e=L.DomUtil.create("div","container");this._addPortalSet(e,Se("SOURCE_PORT"),"_source",w.LINK_SOURCE_KEY),this._addPortalSet(e,Se("ANCHOR1"),"_anchor1",w.ANCHOR_ONE_KEY,Se("ADD1")),this._addPortalSet(e,Se("ANCHOR2"),"_anchor2",w.ANCHOR_TWO_KEY,Se("ADD2"));const t=L.DomUtil.create("button","drawb",e);t.textContent=Se("ADD_BUTTON_LINKS"),this._desc=L.DomUtil.create("input","desc",e),this._desc.placeholder=Se("DESCRIP_PLACEHOLD"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this._source||De(Se("SEL_SRC_PORT"));const t=Re();t.startBatchMode(),this._anchor1&&t.addLink(this._source,this._anchor1,{description:this._desc.value,order:t.nextOrder}),this._anchor2&&t.addLink(this._source,this._anchor2,{description:this._desc.value,order:t.nextOrder}),t.endBatchMode()}));const a={};a[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("ADD_LINKS"),html:e,width:"auto",dialogClass:"link",buttons:a,id:b.dialogNames.linkDialogButton})}}),Wc=Fc,Yc=Kt.extend({statics:{TYPE:"autodraw"},needWritePermission:!0,initialize:function(e){Kt.prototype.initialize.call(this,e),this._portalSets={}},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this._opChange,this),this._mapRefreshHook=this._updatePortalSet.bind(this),window.addHook("mapDataRefreshEnd",this._mapRefreshHook),this._operation=Re()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this._opChange,this),window.removeHook("mapDataRefreshEnd",this._mapRefreshHook)},_opChange:function(){this._operation=Re(),this._updatePortalSet()},_initPortalSet:function(e,t,a){const o=this._portalSets[e];o.zone=t,o.keys=a,o.portals=[]},_updatePortalSet:function(){for(const e in this._portalSets){const t=this._portalSets[e];if(t.keys){const e=this._operation.markers.filter((e=>e.type===X.constants.MARKER_TYPE_KEY));if(t.portals=e.map((e=>this._operation.getPortal(e.portalId))),t.zone){const e=this._operation.getZone(t.zone);e&&(t.portals=t.portals.filter((t=>e.contains(t.latLng))))}}else{const e=qe(this._operation);if(0==t.zone)t.portals=e;else{const a=new Set(t.portals.map((e=>e.id)));for(const o of e)a.has(o.id)||t.portals.push(o);const o=this._operation.getZone(t.zone);o&&(t.portals=t.portals.filter((e=>o.contains(e.latLng))))}}t.display.textContent=Se("PORTAL_COUNT",{count:t.portals.length})}},_addSetPortal:function(e,t,a,o,n){L.DomUtil.create("label","set-portal-label",a).textContent=e;const i=L.DomUtil.create("button","set-portal-button",a);i.textContent=Se("SET");const r=L.DomUtil.create("span","set-portal-display",a);this[t]?r.appendChild(We(this[t])):r.textContent=Se("NOT_SET"),L.DomEvent.on(i,"click",(()=>{this[t]=Ze(),this[t]?(o&&(localStorage[o]=JSON.stringify(this[t])),r.textContent="",r.appendChild(We(this[t]))):(r.textContent=Se("NOT_SET"),De(Se("PLEASE_SELECT_PORTAL"))),n&&n()}))},_addCheckbox:function(e,t,a,o,n){const i=L.DomUtil.create("label","checkbox-label",o);i.textContent=e,i.htmlFor=t;const r=L.DomUtil.create("input","checkbox-input",o);r.type="checkbox",r.id=t,r.checked=n,this[a]=n,L.DomEvent.on(r,"change",(()=>{this[a]=r.checked}))},_addSelectSet:function(e,t,a,o){L.DomUtil.create("label","select-set-label",a).textContent=e;const n=L.DomUtil.create("select","select-set-input",a),i=L.DomUtil.create("span","select-set-display",a);i.textContent=Se("NOT_SET");{const e=L.DomUtil.create("option",null,n);e.textContent=Se("MM_SET_ALL_PORTALS"),e.value="all",e.selected=o==e.value}{const e=L.DomUtil.create("option",null,n);e.textContent=Se("MM_SET_ALL_KEYS"),e.value="keys",e.selected=o==e.value}for(const e of this._operation.zones){const t=L.DomUtil.create("option",null,n);t.textContent=e.name,t.value=e.id,t.selected=o==t.value}for(const e of this._operation.zones){const t=L.DomUtil.create("option",null,n);t.textContent=Se("MM_SET_KEYS_ZONE",{zoneName:e.name}),t.value="keys"+e.id,t.selected=o==t.value}L.DomEvent.on(n,"change",(e=>{L.DomEvent.stop(e);const a="keys"===n.value.slice(0,4),o="all"===n.value||"keys"===n.value?0:+(a?n.value.slice(4):n.value);this._initPortalSet(t,o,a),this._updatePortalSet()})),this._portalSets[t]={portals:[],zone:0,keys:!1,display:i}}});function Zc(e,t,a){const o=function(e){const t=new Map,a=o=>{if(void 0===t.get(o)){const n={children:[],length:1,number:1},i="__start__"===o?Array.from(e.keys()):e.get(o).filter((e=>e!==o));for(const e of i){const t=a(e);t.length+1>n.length&&(n.length=t.length+1,n.children=[],n.number=0),t.length+1==n.length&&(n.children.push(e),n.number+=t.number)}t.set(o,n)}return t.get(o)};return{maxima:a("__start__").children,poset:t,number:a("__start__").number}}(e);if(!o.maxima.length)return[];const n=new Map;a||(a=()=>0);const i=e=>{if(void 0===n.get(e)){const t=o.poset.get(e);if(1==t.length)n.set(e,{seq:[e],dist:0});else{const o=t.children.map(i).reduce(((t,o)=>t.dist+a(e,t.seq[t.seq.length-1])e.dist[e.id,e]))),[i,r]=function(e,t,a){const o=new Map,n=new Map;for(const i of a){if(i.id===e.id||i.id===t.id)continue;const r=[],s=pe(e,t,i);for(const o of a)o.id!==e.id&&o.id!==t.id&&(i===o||pe(e,t,o)*s>0&&pe(t,i,o)*s>0&&pe(i,e,o)*s>0)&&r.push(o.id);s>0?o.set(i.id,r):n.set(i.id,r)}return[o,n]}(e,t,a),s=Zc(i,null,((e,t)=>window.map.distance(n.get(e).latLng,n.get(t).latLng))),l=Zc(r,null,((e,t)=>window.map.distance(n.get(e).latLng,n.get(t).latLng)));return o?[s.map((e=>n.get(e))),l.map((e=>n.get(e)))]:[(s.length>l.length?s:l).map((e=>n.get(e)))]}function Vc(e,t){if(e.id==t.id)throw Error("same portal");return e.latLng.lng==t.latLng.lng?e.latLng.lat>t.latLng.lat?0:Math.PI:new fe(e.latLng,t.latLng).bearing()}function jc(e,t){const a=new Map;for(const o of t){if(o.id==e.id)continue;const t=Vc(e,o);a.set(t,o)}return new Array(...a.entries()).sort(((e,t)=>e[0]-t[0])).map((e=>e[1]))}function Qc(e,t,a,o){const n=Vc(e,a);((Vc(e,o)-n)%(2*Math.PI)+2*Math.PI)%(2*Math.PI)>Math.PI&&([a,o]=[o,a]);const i=new Array;let r=0;for(r=0;t[r].id!=a.id;r++);for(;t[r%t.length].id!=o.id;r++)i.push(t[r%t.length]);return i.push(o),i}function Jc(e,t,a,o=!1){for(const e of t)e.order=0;if(!o&&aa&&(o.order+=t.length);for(const o of e.markers)o.order>a&&(o.order+=t.length)}for(const e of t)e.order=++a;return a}function Xc(e,t,a,o,n,i={}){const r=function(e,t,a,o={}){const n=[];let i=null;for(const r of a)n.push({from:r,to:e}),n.push({from:r,to:t}),o.backlink&&i&&n.push({from:r,to:i,back:!0}),i=r;return n}(t,a,o,i),s=i.commentPrefix||"",l=r.map((t=>e.addLink(t.from,t.to,{description:s+(t.back?"backlink":"link")}))).filter((e=>e));return Jc(e,l,n,i.noShift)}const $c=Yc.extend({statics:{TYPE:"multimaxDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);let t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchorOne=new ee(t)),t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY],t&&(this._anchorTwo=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog(),this._updatePortalSet()},_buildContent:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SELECT_INSTRUCTIONS"),L.DomUtil.create("div","desc",e).textContent=Se("SEL_SB_ANCHOR2"),this._addSetPortal(Se("ANCHOR1"),"_anchorOne",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY),this._addSetPortal(Se("ANCHOR2"),"_anchorTwo",e,window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY),this._addCheckbox(Se("ADD_BL"),"wasabee-multimax-backlink","_flcheck",e),this._addCheckbox(Se("MM_INSERT_ORDER"),"wasabee-multimax-insert-order","_orderFromEnd",e,!0),this._addCheckbox(Se("MM_BOTH_SIDE"),"wasabee-multimax-both-side","_bothSide",e,!1),this._addSelectSet(Se("MM_SPINE"),"spine",e,"all");const t=L.DomUtil.create("button","drawb",e);return t.textContent=Se("MULTI_M"),L.DomEvent.on(t,"click",(()=>{const e=this.doMultimax.call(this);2===e.length?ve(Se("autodraw.multimax.result_both_side",{count1:e[0],count2:e[1]})):ve(Se("autodraw.multimax.result",{count:e[0]}))})),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("MULTI_M_TITLE"),html:e,width:"auto",dialogClass:"multimax",buttons:t,id:b.dialogNames.multimaxButton})},MM:function(e,t,a,o=0,n=!0,i="multimax ",r=!1){const s=qc(e,t,a,r);n&&(o=Jc(this._operation,[this._operation.addLink(e,t,{description:i+"base"})],o));for(const a of s)o=Xc(this._operation,e,t,a,o,{commentPrefix:"multimax ",backlink:this._flcheck});return s.map((e=>e.length))},doMultimax:function(){const e=this._portalSets.spine.portals;if(!this._anchorOne||!this._anchorTwo||!e.length)return De(Se("INVALID REQUEST")),0;this._operation.startBatchMode(),console.log("starting multimax");const t=this.MM(this._anchorOne,this._anchorTwo,e,this._orderFromEnd?this._operation.nextOrder-1:0,!0,"multimax ",this._bothSide);return console.log("multimax done"),this._operation.endBatchMode(),t}}),ed=$c;const td=Yc.extend({statics:{TYPE:"FanfieldDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);let t=localStorage["wasabee-anchor-1"];t&&(this._anchor=new ee(t)),t=localStorage["wasabee-fanfield-start"],t&&(this._start=new ee(t)),t=localStorage["wasabee-fanfield-end"],t&&(this._end=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog(),this._updatePortalSet()},_displayDialog:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SELECT_FAN_PORTALS"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchor",e,"wasabee-anchor-1"),this._addSetPortal(Se("START_PORT"),"_start",e,"wasabee-fanfield-start"),this._addSetPortal(Se("END_PORT"),"_end",e,"wasabee-fanfield-end"),this._addSelectSet(Se("AUTODRAW_PORTALS_SET"),"set",e,"all"),L.DomUtil.create("div","desc secondary",e).textContent=Se("SELECT_FAN_PORTALS2");const t=L.DomUtil.create("button","drawb",e);t.textContent=Se("FANFIELD"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this.fanfield.call(this)}));const a={};a[Se("CLOSE")]=()=>{this.closeDialog()},a[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("FANFIELD2"),html:e,width:"auto",dialogClass:"fanfield",buttons:a,id:b.dialogNames.fanfield})},fanfield:function(){if(!this._anchor||!this._start||!this._end)return void De(Se("SET_3_PORT"));const[e,t]=function(e,t,a,o){let n=0;const i=[],r=function(e,t,a,o){return t.find((e=>e.id===a.id))||t.push(a),t.find((e=>e.id===o.id))||t.push(o),Qc(e,jc(e,t),a,o)}(e,t,a,o),s=Array.from(r);s.reverse();for(let t=s.length-1;t>=0;t--){const a=s[t];if(i.push({from:a,to:e,comment:"anchor"}),t+1==s.length)continue;let o=t+1,r=null;for(;ot;l--)i.push({from:a,to:s[l],comment:"double subfield"}),n+=2;s.splice(t+1,o-t-1)}return[i,n]}(this._anchor,this._portalSets.set.portals,this._start,this._end),a=Re();a.startBatchMode();const o=e.map((e=>a.addLink(e.from,e.to,{description:"fanfield "+e.comment}))).filter((e=>e));Jc(a,o,0),a.endBatchMode();const n=313*e.length+1250*t;ve(Se("autodraw.fanfield.result",{links:e.length,fields:t,ap:n}))}}),ad=td,od=Yc.extend({statics:{TYPE:"StarburstDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);const t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchor=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog()},_buildContent:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SEL_SB_ANCHOR"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchor",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY),L.DomUtil.create("div","desc secondary",e).textContent=Se("SEL_SB_ANCHOR2"),this._addSelectSet(Se("MM_SPINE"),"spine",e,"all");const t=L.DomUtil.create("button","drawb",e);return t.textContent=Se("STARBURST_DRAW"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this.starburst.call(this)})),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("STARBURST TITLE"),html:e,width:"auto",dialogClass:"starburst",buttons:t,id:b.dialogNames.starburst})},starburst:function(){if(!this._anchor)return void De(Se("SEL_SB_ANCHOR"));const e=Re();e.startBatchMode();const t=this._portalSets.spine.portals;for(const a of t)a.id!=this._anchor.id&&e.addLink(a,this._anchor,{description:"auto starburst"});e.endBatchMode()}}),nd=od,id=Yc.extend({statics:{TYPE:"SaveLinksDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);const t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchor=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SEL_SL_ANCHOR"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchor",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY);const t=L.DomUtil.create("button","drawb",e);t.textContent=Se("SAVELINKS_DRAW"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this.saveLinks.call(this)}));const a={};a[Se("CLOSE")]=()=>{this.closeDialog()},a[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("SAVELINKS TITLE"),html:e,width:"auto",dialogClass:"savelinks",buttons:a,id:b.dialogNames.savelinks})},saveLinks:function(){if(!this._anchor)return void De("Select an anchor portal");const e=Re();e.startBatchMode();for(const t of function(e,t){const a=[];for(const o in window.links){const n=window.links[o];if(e.containsLinkFromTo(n.options.data.oGuid,n.options.data.dGuid))continue;const i=new ee({id:n.options.data.oGuid,lat:(n.options.data.oLatE6/1e6).toFixed(6),lng:(n.options.data.oLngE6/1e6).toFixed(6),name:n.options.data.oGuid,comment:"in"}),r=new ee({id:n.options.data.dGuid,lat:(n.options.data.dLatE6/1e6).toFixed(6),lng:(n.options.data.dLngE6/1e6).toFixed(6),name:n.options.data.dGuid,comment:"out"});i.id===t.id&&a.push(r),r.id===t.id&&a.push(i)}return a}(e,this._anchor))t.id!=this._anchor.id&&("out"===t.comment?e.addLink(this._anchor,t,{description:"Save Links (Outbound from anchor)"}):e.addLink(t,this._anchor,{description:"Save Links (Inbound to anchor)"}));e.endBatchMode()}}),rd=id;function sd(e,t,a){return[[e,ld(e,t,a)],[t,ld(t,a,e)],[a,ld(a,e,t)]].sort(((e,t)=>t[1]-e[1])).map((e=>e[0]))}function ld(e,t,a){const o=window.map.project(t.latLng),n=window.map.project(e.latLng),i=window.map.project(a.latLng),r=Math.sqrt(Math.pow(n.x-o.x,2)+Math.pow(n.y-o.y,2)),s=Math.sqrt(Math.pow(n.x-i.x,2)+Math.pow(n.y-i.y,2)),l=Math.sqrt(Math.pow(i.x-o.x,2)+Math.pow(i.y-o.y,2));return Math.acos((s*s+r*r-l*l)/(2*s*r))}const cd=Yc.extend({statics:{TYPE:"OnionDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);const t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchor=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SELECT_ONION_PORTALS"),L.DomUtil.create("div","desc",e).textContent=Se("SEL_SB_ANCHOR2"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchor",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY),L.DomUtil.create("label",null,e).textContent=Se("autodraw.onion.variant"),this.optionMenu=L.DomUtil.create("select",null,e);for(const[e,t]of[[Se("autodraw.onion.variant.equilateral"),"equi"],[Se("autodraw.onion.variant.grow"),"grow"],[Se("autodraw.onion.variant.balanced"),"balanced"]]){const a=L.DomUtil.create("option",null,this.optionMenu);a.value=t,a.textContent=e}const t=L.DomUtil.create("button","drawb",e);t.textContent=Se("ONION"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this.onion.call(this)}));const a={};a[Se("CLOSE")]=()=>{this.closeDialog()},a[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("ONION_WAS_TAKEN"),html:e,width:"auto",dialogClass:"onion",buttons:a})},onion:function(){if(this._operation=Re(),!this._anchor)return void De("no anchor selected");const e=["#f80c12","#ee1100","#ff3311","#ff4422","#ff6644","#ff9933","#feae2d","#ccbb33","#d0c310","#aacc22","#69d025","#22ccaa","#12bdb9","#11aabb","#4444dd","#3311bb","#3b0cbd","#442299"],t=qe(this._operation),a=function(e,t,a){if(t=t.filter((t=>t.id!==e.id)),t.length<2)return[];const o=new Map;for(const a of t){const t=window.map.distance(e.latLng,a.latLng);o.set(t,a)}const n=[...o.entries()].sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));let[i,r,s]=sd(e,n[0],n[1]);const l=[{from:r,to:i},{from:s,to:i},{from:s,to:r}];t=t.filter((e=>e.id!==r.id&&e.id!==s.id));const c="grow"===a?3:1;let d=c;for(;d>0&&t.length>0;){d-=1;const e=new Map;for(const a of t){const t=window.map.distance(i.latLng,a.latLng);e.set(t,a)}const o=[...e.entries()].sort(((e,t)=>e[0]-t[0])).map((e=>e[1])).find((e=>me(e,r,s,i)));o&&(d=c,t=t.filter((e=>e.id!==o.id)),l.push({from:o,to:r}),l.push({from:o,to:s}),l.push({from:o,to:i}),[i,r,s]="balanced"===a?[r,s,o]:sd(r,s,o)),dthis._operation.addLink(t.from,t.to,{order:a+1,color:e[a%e.length]}))),this._operation.endBatchMode()}}),dd=cd;function ud(e,t,a,o,n){const i=new Array;for(const r of t){const t=r.id||r.options.guid;t!==e.id&&t!==a.id&&t!==o.id&&t!==n.id&&i.push(r)}const r=new Array,s=new Array,l=new Array;for(const t of i)ge(t.latLng,a.latLng,e.latLng,o.latLng)||ge(t.latLng,a.latLng,e.latLng,n.latLng)?s.push(t):ge(t.latLng,o.latLng,e.latLng,a.latLng)||ge(t.latLng,o.latLng,e.latLng,n.latLng)?l.push(t):r.push(t);return[r,s,l]}function pd(e,t){const a=ue(t)._cartesian,o=new Map(e.map((e=>{return[e.id,(t=a,o=ue(e.latLng)._cartesian,function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]}([t[0]-o[0],t[1]-o[1],t[2]-o[2]]))];var t,o})));return e.sort(((e,t)=>o.get(e.id)-o.get(t.id)))}function md(e){return(3**(e-1)-1)/2}function hd(e,t,a,o,n){if(n<=1)return{success:!0,anchors:[t,a,o],split:0};let i={success:!1,anchors:[t,a,o],split:0,portal:null,children:null};if(!e.length)return i;pd(e,he(t,a,o));let r=e.length,s=[],l={};for(const n of e){const i=ud(n,new Array(...e),t,a,o),c=Math.max(i[0].length,i[1].length,i[2].length)-Math.min(i[0].length,i[1].length,i[2].length);if(cme(this._anchorOne,this._anchorTwo,this._anchorThree,e))),this._portalSets.portals.display.textContent=Se("PORTAL_COUNT",{count:this._portalSets.portals.portals.length}))},removeHooks:function(){window.removeLayerGroup(this._layerGroup),Yc.prototype.removeHooks.call(this)},_displayDialog:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("H-GEN_INST"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchorOne",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY,this._updatePortalSet.bind(this)),this._addSetPortal(Se("ANCHOR_PORTAL2"),"_anchorTwo",e,window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY,this._updatePortalSet.bind(this)),this._addSetPortal(Se("ANCHOR_PORTAL3"),"_anchorThree",e,window.plugin.wasabee.static.constants.ANCHOR_THREE_KEY,this._updatePortalSet.bind(this)),this._addSelectSet(Se("AUTODRAW_PORTALS_SET"),"portals",e,"all"),this.spanPortalNeeded=L.DomUtil.create("span","",e),L.DomUtil.create("label",null,e).textContent=Se("MAX_SPLITS"),this.depthMenu=L.DomUtil.create("input",null,e),this.depthMenu.type="number",this.depthMenu.min=2,this.depthMenu.value=4,L.DomEvent.on(this.depthMenu,"change",(()=>{this.spanPortalNeeded.textContent=Se("autodraw.homogeneous.portals_required",{count:md(+this.depthMenu.value)})})),L.DomUtil.create("label",null,e).textContent=Se("autodraw.homogeneous.order"),this.orderMenu=L.DomUtil.create("select",null,e);for(const[e,t]of[[Se("FROM_DEPTH"),"core"],[Se("FROM_1-2"),"base12"],[Se("FROM_1-3"),"base13"],[Se("FROM_2-3"),"base23"]]){const a=L.DomUtil.create("option",null,this.orderMenu);a.value=t,a.textContent=e}this._addCheckbox(Se("HF_DEEP_SEARCH"),"wasabee-homogeneous-deep","_fullSearch",e,!0);const t=L.DomUtil.create("div",null,e);this._redrawButton=L.DomUtil.create("button",null,t),this._redrawButton.textContent=Se("HF_REDRAW_BUTTON"),this._redrawButton.style.display="none",L.DomEvent.on(this._redrawButton,"click",(e=>{L.DomEvent.stop(e),this._operation=Re(),this._tree&&this._draw.call(this)}));const a=L.DomUtil.create("button","drawb",e);a.textContent=Se("HF_DRAW_BUTTON"),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),this._operation=Re(),+this.depthMenu.value<2||(this._fullSearch?this.hdeepfield():this.hfield())}));const o={};o[Se("CLOSE")]=()=>{this.closeDialog()},o[Se("CLEAR LINKS")]=()=>{this._layerGroup.clearLayers(),Dr(Re())},this.createDialog({title:Se("HG"),html:e,width:"auto",dialogClass:"homogeneous",buttons:o})},hfield:function(){if(this._failed=0,this._layerGroup.clearLayers(),!this._anchorOne||!this._anchorTwo||!this._anchorThree)return void De("please select three anchors");const e=Array.from(this._portalSets.portals.portals);console.time("HF greedy");const t=hd(e,this._anchorOne,this._anchorTwo,this._anchorThree,+this.depthMenu.value);console.timeEnd("HF greedy"),this._tree=t,this._failed=md(+this.depthMenu.value)-t.split,this._draw(),this._failed>0&&Oe(Se("autodraw.homogeneous.missing_split",{count:this._failed}))},hdeepfield:function(){if(this._failed=0,this._layerGroup.clearLayers(),!this._anchorOne||!this._anchorTwo||!this._anchorThree)return void De("please select three anchors");const e=Array.from(this._portalSets.portals.portals);console.time("HF deep recurser");const t=function(e,t,a,o,n){const i=new Map;console.log("Expect at least",Math.max(0,md(n)-e.length),"missing splits");const r=(e,t,a,o,n)=>{if(e<=1)return{success:!0,anchors:[a,o,n],split:0};const s=[e,a.id,o.id,n.id].sort().toString();if(void 0===i.get(s)){const l=Math.min(md(e),t.length);let c={success:!1,anchors:[a,o,n],split:0,portal:null,children:null};pd(t,he(a,o,n));for(const i of t){const s=ud(i,new Array(...t),a,o,n);if(Math.min(md(e-1),s[0].length)+Math.min(md(e-1),s[1].length)+Math.min(md(e-1),s[2].length)+1<=c.split)continue;let d=r(e-1,new Array(...s[0]),a,o,i),u=r(e-1,new Array(...s[1]),o,n,i),p=r(e-1,new Array(...s[2]),a,n,i);const m=d.split+u.split+p.split+1;if(m>c.split&&(c.success=d.success&&u.success&&p.success,c.split=m,c.portal=i,c.children=[d,u,p]),m==l)break}i.set(s,c)}return i.get(s)};return r(n,e,t,a,o)}(e,this._anchorOne,this._anchorTwo,this._anchorThree,+this.depthMenu.value);console.timeEnd("HF deep recurser"),this._tree=t,this._failed=md(+this.depthMenu.value)-t.split,this._draw(),this._failed>0&&Oe(Se("autodraw.homogeneous.missing_split",{count:this._failed})),this._failed=0,this._anchorOne&&this._anchorTwo&&this._anchorThree||De("please select three anchors")},_draw:function(){this._colors=["#f80c12","#ee1100","#ff3311","#ff4422","#ff6644","#ff9933","#feae2d","#ccbb33","#d0c310","#aacc22","#69d025","#22ccaa","#12bdb9","#11aabb","#4444dd","#3311bb","#3b0cbd","#442299"],this._operation.startBatchMode(),"base12"==this.orderMenu.value?this._drawTreeBase(this._tree,this._anchorOne,this._anchorTwo):"base13"==this.orderMenu.value?this._drawTreeBase(this._tree,this._anchorOne,this._anchorThree):"base23"==this.orderMenu.value?this._drawTreeBase(this._tree,this._anchorTwo,this._anchorThree):this._drawTreeCore(this._tree),this._operation.endBatchMode(),this._operation.cleanPortalList(),this._redrawButton.style.display=""},_drawTreeCore:function(e){const t=+this.depthMenu.value-1,[a,o,n]=e.anchors,i=(e,t,a)=>{if(t.portal){a.set(t.portal.id,e);for(const o of t.children)i(e+1,o,a)}},r=new Map([[a.id,0],[o.id,0],[n.id,0]]);i(1,e,r);const s=(e,n)=>{let i=r.get(e.id),s=r.get(n.id);const l=(t-s)*(t-s-1)/2+1;return 0!=s||n.id==a.id?l+i-s-1:n.id==o.id?l+t+i:l+2*t+i+1},l=(e,t)=>{if(t.portal){const[a,o,n]=t.anchors.map((e=>[r.get(e.id),e])).sort().map((e=>e[1])),i=s(t.portal,a),c=s(t.portal,o),d=s(t.portal,n),u=[r.get(a.id)?[a,t.portal,"intern",i]:[a,t.portal,"anchor intern",i],r.get(o.id)>0?[t.portal,o,"early",d]:[o,t.portal,"anchor intern",c],0==r.get(n.id)?[n,t.portal,"anchor intern",d]:[t.portal,n,"to father",d]];for(const[e,t,a,o]of u)this._operation.addLink(e,t,{description:a,order:o,color:this._colors[o%this._colors.length],replace:!0});for(const a of t.children)l(e+1,a)}},c=(e,t)=>{if(t.portal)for(const a of t.children)c(e-1,a);if(!t.portal&&!t.success){const a=1==e?"orange":"red",o=[t.anchors[0].latLng,t.anchors[1].latLng,t.anchors[2].latLng,t.anchors[0].latLng];L.polygon(o,{color:a}).addTo(this._layerGroup)}};c(t,e),this._operation.addPortal(a),this._operation.addPortal(o),this._operation.addPortal(n),this._operation.addLink(o,a,{description:"Outer 1",order:t*(t-1)/2+t+1,color:this._colors[(t*(t-1)/2+t+1)%this._colors.length],replace:!0}),this._operation.addLink(n,a,{description:"Outer 2",order:t*(t-1)/2+2*t+2,color:this._colors[(t*(t-1)/2+2*t+2)%this._colors.length],replace:!0}),this._operation.addLink(n,o,{description:"Outer 3",order:t*(t-1)/2+2*t+2,color:this._colors[(t*(t-1)/2+2*t+2)%this._colors.length],replace:!0}),l(1,e)},_drawTreeBase:function(e,t,a){const o=+this.depthMenu.value-1,n=(e,t,a,o,i)=>{if(t.portal){const s=t.anchors.filter((e=>e.id!==a.id&&e.id!==o.id))[0];for(const n of t.children)n.anchors.every((e=>e.id!==s.id))&&(i=r(e+1,n,a,o,i));let l,c;for(const r of t.children)r.anchors.every((e=>e.id!==o.id))&&(l=n(e+1,r,a,t.portal,i));for(const r of t.children)r.anchors.every((e=>e.id!==a.id))&&(c=n(e+1,r,o,t.portal,i));i=Math.max(l,c)}return i},i=(e,t,a,n)=>{if(t.portal){this._operation.addLink(a,t.portal,{description:"intern link",order:n+1,color:this._colors[n%this._colors.length],replace:!0});for(const o of t.children)o.anchors.includes(a)&&i(e+1,o,a,n+1)}return n+o-e+1},r=(e,t,a,o,r=1)=>{r=n(e,t,a,o,r);const s=t.anchors.filter((e=>e.id!==a.id&&e.id!==o.id))[0];for(const e of[a,o])this._operation.addLink(s,e,{order:r+1,color:this._colors[r%this._colors.length],replace:!0});return t.portal?i(e,t,s,r+1):r+1},s=(e,t)=>{if(t.portal)for(const a of t.children)s(e-1,a);if(!t.portal&&!t.success){const a=1==e?"orange":"red",o=[t.anchors[0].latLng,t.anchors[1].latLng,t.anchors[2].latLng,t.anchors[0].latLng];L.polygon(o,{color:a}).addTo(this._layerGroup)}};s(o,e);for(const t of e.anchors)this._operation.addPortal(t);this._operation.addLink(a,t,{description:"Outer base",order:1,color:this._colors[0],replace:!0}),r(1,e,t,a)},_getCenter:function(e,t,a){const o=window.map.project(e.latLng||e._latlng),n=window.map.project(t.latLng||t._latlng),i=window.map.project(a.latLng||a._latlng),r=L.point((o.x+n.x+i.x)/3,(o.y+n.y+i.y)/3);return window.map.unproject(r)}}),fd=gd;function Ed(e,t,a,o,n){const[i]=qc(e,t,n,!1),r=i[i.length-1],[s]=qc(t,r,a.filter((a=>e.id==a.id||me(t,r,a,e))),!1),l=s[s.length-1],[c]=qc(r,l,o.filter((e=>t.id==e.id||me(r,l,e,t))),!1);return[s,c,i]}const _d=Yc.extend({statics:{TYPE:"madridDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);let t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchorOne=new ee(t)),t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY],t&&(this._anchorTwo=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog(),this._updatePortalSet()},_buildContent:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SELECT_INSTRUCTIONS"),this._addSetPortal(Se("ANCHOR1"),"_anchorOne",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY),this._addSelectSet(Se("MADRID_SET_1"),"setOne",e,"all"),this._addSetPortal(Se("ANCHOR2"),"_anchorTwo",e,window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY),this._addSelectSet(Se("MADRID_SET_2"),"setTwo",e,"all"),L.DomUtil.create("label",null,e).textContent=Se("ANCHOR3"),L.DomUtil.create("span",null,e).textContent=Se("autodraw.madrid.auto_determined"),this._addSelectSet(Se("MADRID_SET_3"),"setThree",e,"all"),this._addCheckbox(Se("ADD_BL"),"wasabee-madrid-backlink","_flcheck",e),this._addCheckbox(Se("autodraw.madrid.balanced"),"wasabee-madrid-balanced","_balancedcheck",e);const t=L.DomUtil.create("label","newline",e),a=L.DomUtil.create("span",null,e);t.textContent="\0",a.textContent="\0",L.DomUtil.create("label","placeholder",e).textContent="⁣";const o=L.DomUtil.create("button","drawb",e);return o.textContent=Se("MADRID"),L.DomEvent.on(o,"click",(()=>{this._operation=Re();const e=this._balancedcheck?this.doBalancedMadrid.call(this):this.doMadrid.call(this);ve(Se("autodraw.madrid.result",{count:e}))})),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("MADRID_TITLE"),html:e,width:"auto",dialogClass:"madrid",buttons:t,id:b.dialogNames.madrid})},doBalancedMadrid:function(){if(!(this._anchorOne&&this._anchorTwo&&this._portalSets.setOne.portals.length&&this._portalSets.setTwo.portals.length&&this._portalSets.setThree.portals.length))return De(Se("INVALID REQUEST")),0;null==this._portalSets.setOne.portals.find((e=>this._anchorOne.id==e.id))&&this._portalSets.setOne.portals.push(this._anchorOne),null==this._portalSets.setTwo.portals.find((e=>this._anchorTwo.id==e.id))&&this._portalSets.setTwo.portals.push(this._anchorTwo);const e=Ed(this._anchorOne,this._anchorTwo,this._portalSets.setOne.portals,this._portalSets.setTwo.portals,this._portalSets.setThree.portals),t=e.map((e=>1/e.length));this._operation.startBatchMode(),this._operation.addLink(e[0][0],e[1][0],{description:"inner field"}),this._operation.addLink(e[1][0],e[2][0],{description:"inner field"}),this._operation.addLink(e[2][0],e[0][0],{description:"inner field"});const a=[1,1,1];for(;a.some(((t,a)=>ta[e]*t[e]-a[o]*t[o])),n=e[o[0]][a[o[0]]],i=e[o[0]][a[o[0]]-1],r=e[o[1]][a[o[1]]-1],s=e[o[2]][a[o[2]]-1];for(let t=0;(!n||!me(n,r,s,i))&&t<3;t++)this._operation.setPortalComment(i,"point of disbalance"),o=[o[1],o[2],o[0]],n=e[o[0]][a[o[0]]],i=e[o[0]][a[o[0]]-1],r=e[o[1]][a[o[1]]-1],s=e[o[2]][a[o[2]]-1];me(n,r,s,i)||console.log("well, this doesn't work here...");const l=this._operation.addLink(n,r,{description:"link"}),c=this._operation.addLink(n,s,{description:"link"});l.zone=o[0]+1,c.zone=o[0]+1,a[o[0]]+=1}return this._operation.endBatchMode(),a[0]+a[1]+a[2]-2},doMadrid:function(){if(!(this._anchorOne&&this._anchorTwo&&this._portalSets.setOne.portals.length&&this._portalSets.setTwo.portals.length&&this._portalSets.setThree.portals.length))return De(Se("INVALID REQUEST")),0;null==this._portalSets.setOne.portals.find((e=>this._anchorOne.id==e.id))&&this._portalSets.setOne.portals.push(this._anchorOne),null==this._portalSets.setTwo.portals.find((e=>this._anchorTwo.id==e.id))&&this._portalSets.setTwo.portals.push(this._anchorTwo);const e=Ed(this._anchorOne,this._anchorTwo,this._portalSets.setOne.portals,this._portalSets.setTwo.portals,this._portalSets.setThree.portals);this._operation.startBatchMode();let t=Jc(this._operation,[this._operation.addLink(this._anchorOne,this._anchorTwo,{description:"madrid base"})],this._operation.nextOrder-1);return t=Xc(this._operation,this._anchorOne,this._anchorTwo,e[2],t,{commentPrefix:"madrid ",backlink:this._flcheck}),t=Xc(this._operation,this._anchorTwo,e[2][e[2].length-1],e[0].slice(1),t,{commentPrefix:"madrid ",backlink:this._flcheck}),Xc(this._operation,e[2][e[2].length-1],e[0][e[0].length-1],e[1].slice(1),t,{commentPrefix:"madrid ",backlink:this._flcheck}),this._operation.endBatchMode(),e[0].length+e[1].length+e[2].length-2}}),wd=_d;function Td(e,t,a,o,n,i){const r=[],s=[t,a];i.get(t.id)>i.get(a.id)&&s.reverse();for(let t=n;t=0&&i.get(s[n].id)>i.get(a.id);)n--;for(;l{const e=this.doFanGun();ve(Se("autodraw.flipflop.result",{count:e}))})),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("FLIP_FLOP_FIND_ANCHORS")]=()=>{this.findOtherAnchors()},t[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("FLIP_FLOP_TITLE"),html:e,width:"auto",dialogClass:"flipflop",buttons:t,id:"flipflop"})},findOtherAnchors:function(){if(!this.best)return;this._operation=Re();const e=qe(this._operation),t=this.best.steps.map((e=>e[0])).concat([this.best.two,this.best.three]),a=[];for(const o of e){let e=!0;for(const[t,a,n]of this.best.steps)if(window.map.distance(o.latLng,t.latLng)>window.map.distance(o.latLng,a.latLng)||window.map.distance(o.latLng,t.latLng)>window.map.distance(o.latLng,n.latLng)){e=!1;break}if(!e)continue;const n=Qc(o,jc(o,t),this.best.two,this.best.three);if(n.length!==t.length)continue;const i=n.map((e=>e.id));let r=0,s=0;for(;r[t.id,window.map.distance(t.latLng,e.latLng)])));return this.distCache&&this.distCache.set(e.id,a),a},createFanLinks:function(e,t,a,o,n=0){this._operation.addLink(t,a,{description:"flipflop origin",order:n+1});for(const[e,t,a]of o)this._operation.addLink(e,t,{description:"flipflop origin",order:n+1}),this._operation.addLink(e,a,{description:"flipflop origin",order:n+1});n++,this._operation.addLink(e,t,{description:"flipflop fire",order:++n}),this._operation.addLink(e,a,{description:"flipflop fire",order:++n});for(const t of o){const a=t[0];this._operation.addLink(e,a,{description:"flipflop fire",order:++n})}},doFanGun:function(){if(!this._anchorOne)return De(Se("INVALID REQUEST")),0;this._operation=Re();const e=this._portalSets.set.portals.filter((e=>e.id!=this._anchorOne.id)),t=+this._nbSbul.value<0?0:+this._nbSbul.value>4?4:+this._nbSbul.value;console.log("starting fastfan"),this.distCache=new Map;const a=this.getDistances(this._anchorOne,e);e.sort(((e,t)=>a.get(t.id)-a.get(e.id)));const o=jc(this._anchorOne,e),n={two:null,three:null,steps:[]},i=8*(t+1)-2;for(let t=0;t[e.id,t]))),c=Td(this._anchorOne,a,t,e,r+1,l);if((!n.two||n.steps.lengthe.id)),n.steps.length>=i))break}if(n.steps.length>=i)break}return n.steps.length>i&&(n.steps=n.steps.slice(0,i)),n.two?(this.best=n,this._operation.startBatchMode(),this.createFanLinks(this._anchorOne,n.two,n.three,n.steps,this._operation.nextOrder-1),console.log("fastfan done"),this._operation.endBatchMode(),n.steps.length+2):(De(Se("INVALID REQUEST")),0)}}),Ad=bd,Ld=Kt.extend({statics:{TYPE:"autodraws"},needWritePermission:!0,initialize:function(e){Kt.prototype.initialize.call(this,e),this.menuItems=[{text:Se("MM"),callback:()=>{this.closeDialog(),(new ed).enable()}},{text:Se("MAX"),callback:()=>{this.closeDialog(),(new ad).enable()}},{text:Se("STARBURST"),callback:()=>{this.closeDialog(),(new nd).enable()}},{text:Se("ONION_WAS_TAKEN"),callback:()=>{this.closeDialog(),(new dd).enable()}},{text:Se("HG"),callback:()=>{this.closeDialog(),(new fd).enable()}},{text:Se("MADRID_WAS_TAKEN"),callback:()=>{this.closeDialog(),(new wd).enable()}},{text:Se("SAVELINKS"),callback:()=>{this._dialog.dialog("close"),(new rd).enable()}},{text:Se("FLIP_FLOP_NAME"),callback:()=>{this.closeDialog(),(new Ad).enable()}}]},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=L.DomUtil.create("div","container");for(const t of this.menuItems){const a=L.DomUtil.create("a",null,e);a.href="#",a.textContent=t.text,L.DomEvent.on(a,"click",L.DomEvent.stopPropagation).on(a,"mousedown",L.DomEvent.stopPropagation).on(a,"dblclick",L.DomEvent.stopPropagation).on(a,"click",L.DomEvent.preventDefault).on(a,"click",t.callback,this)}const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("AUTODRAWS"),html:e,width:"auto",dialogClass:"autodraws",buttons:t,id:b.dialogNames.autodraws})}}),kd=Ht.extend({statics:{TYPE:"LinkButton"},needWritePermission:!0,initialize:function(e){this.type=kd.TYPE,this.title=Se("LINKS BUTTON TITLE"),this.handler=this._toggleActions,this._container=e,this.button=this._createButton({container:this._container,className:"wasabee-toolbar-link",callback:this._toggleActions,context:this,title:this.title}),this.setSubActions(this.getSubActions()),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("LINKS BUTTON TITLE"),this.setSubActions(this.getSubActions())}))},getSubActions:function(){return[{title:Se("ADD LINK TITLE"),text:Se("ADD_LINKS"),callback:()=>{this.disable(),(new Wc).enable()},context:this},{title:Se("AUTO_DRAWS"),text:Se("AUTO_DRAWS"),callback:()=>{this.disable(),(new Ld).enable()},context:this}]}}),Sd=kd,vd=Kt.extend({statics:{TYPE:"markerButton"},needWritePermission:!0,addHooks:function(){Kt.prototype.addHooks.call(this);const e=this;this._pch=()=>{e.update()},window.addHook("portalSelected",this._pch),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.removeHook("portalSelected",this._pch)},update:async function(){if(this._selectedPortal&&Ze()&&this._selectedPortal.id!==Ze().id&&this._bulk.checked)return this._selectedPortal=Ze(),void(X.markerTypes.has(this._type.value)&&await this._addMarker(this._type.value,this._comment.value,this._zones.value,this._assign.value));this._zones.textContent="";const e=L.DomUtil.create("option",null,this._zones);e.value=0,e.textContent=Se("dialog.common.zone_all");for(const e of Re().zones){const t=L.DomUtil.create("option",null,this._zones);t.value=e.id,t.textContent=e.name}const t=await this._getAgentMenu();this._assign.textContent="";for(const e of t)this._assign.appendChild(e);if(this._type.textContent="",this._selectedPortal=Ze(),this._selectedPortal){this._portal.textContent="",this._portal.textContent="",this._portal.appendChild(We(this._selectedPortal)),this._zones.value=Re().determineZone(this._selectedPortal.latLng);let e=window.plugin.wasabee.static.constants.DEFAULT_MARKER_TYPE;null!=localStorage[window.plugin.wasabee.static.constants.LAST_MARKER_KEY]&&(e=localStorage[window.plugin.wasabee.static.constants.LAST_MARKER_KEY]);const t=Array.from(X.markerTypes).map((e=>[e,Se(e)]));t.sort(((e,t)=>e[1].localeCompare(t[1])));for(const[e,a]of t){const t=L.DomUtil.create("option",null,this._type);t.value=e,t.textContent=a}this._type.value=e}else this._portal.textContent=Se("PLEASE_SELECT_PORTAL");this.setTitle(Se("ADD MARKER TITLE"))},_displayDialog:async function(){this._marker=null;const e=L.DomUtil.create("div","content");this._portal=L.DomUtil.create("div","portal",e),L.DomUtil.create("label",null,e).textContent=Se("TYPE"),this._type=L.DomUtil.create("select",null,e),L.DomUtil.create("label",null,e).textContent=Se("ZONE"),this._zones=L.DomUtil.create("select",null,e),L.DomUtil.create("label",null,e).textContent=Se("AGENT"),this._assign=L.DomUtil.create("select",null,e),L.DomUtil.create("label",null,e).textContent=Se("ADD_BULK");const t=L.DomUtil.create("div","bulk",e);this._bulk=L.DomUtil.create("input","checkbox-input",t),this._bulk.type="checkbox",this._comment=L.DomUtil.create("input",null,e),this._comment.placeholder=Se("SET_COMMENT"),await this.update();const a=L.DomUtil.create("button",null,e);a.textContent=Se("ADD"),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),X.markerTypes.has(this._type.value)&&this._addMarker(this._type.value,this._comment.value,this._zones.value,this._assign.value)}));const o={};o[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("ADD MARKER TITLE"),html:e,width:"auto",dialogClass:"markeradd",buttons:o,id:b.dialogNames.markerButton})},_addMarker:async function(e,t,a,o){const n=Re(),i={comment:t,assign:o,zone:a};n.addMarker(e,Ze(),i)?(localStorage[window.plugin.wasabee.static.constants.LAST_MARKER_KEY]=e,X.isDestructMarkerType(e)&&z.removeBlocker(n,Ze().id),await this.update()):De(Se("ALREADY_HAS_MARKER"))},_getAgentMenu:async function(){const e=[],t=L.DomUtil.create("option",null);if(t.value="",t.textContent=Se("UNASSIGNED"),e.push(t),!$.isLoggedIn())return e;const a=Re();if(!a.isOnCurrentServer())return e;const o=new Set,n=await pt(),i=await ht(a.teamlist.map((e=>e.teamid)).filter((e=>n.teamJoined(e))),300);for(const t of i)for(const a of t.agents)if(!o.has(a.id)){o.add(a.id);const t=L.DomUtil.create("option");t.value=a.id,t.textContent=a.getName(),e.push(t)}return e}}),Od=vd,Dd=Ht.extend({statics:{TYPE:"MarkerButton"},needWritePermission:!0,initialize:function(e){this.type=Dd.TYPE,this.title=Se("ADD MARKER TITLE"),this.button=this._createButton({container:e,className:"wasabee-toolbar-marker",callback:()=>{(new Od).enable()},context:this,title:this.title}),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("ADD MARKER TITLE")}))}}),Nd=Dd,Cd=Ht.extend({statics:{TYPE:"uploadButton"},needWritePermission:!0,initialize:function(e){this.type=Cd.TYPE;const t=Re();this.title=Se("UPLOAD BUTTON HOVER",{opName:t.name}),this._container=e,this.button=this._createButton({title:this.title,container:this._container,className:"wasabee-toolbar-upload",context:this,callback:async()=>{const e=await Re();e.isServerOp()?this.doUpdate(e):this.doUpload(e)}}),window.map.on("wasabee:ui:skin wasabee:ui:lang",this.update,this)},update:function(){if(!$.isLoggedIn())return this._invisible(),this.title="",void(this.button.title=this.title);const e=Re();return e.isServerOp()?e.canWriteServer()&&e.localchanged?e.server&&e.server!=kt()?(this._invisible(),this.title="",void(this.button.title=this.title)):(this._visible(),this.title=Se("UPDATE HOVER",{opName:e.name}),void(this.button.title=this.title)):(this._invisible(),this.title="",void(this.button.title=this.title)):(this._visible(),this.title=Se("UPLOAD BUTTON HOVER",{opName:e.name}),void(this.button.title=this.title))},_visible:function(){this.button.style.display="block"},_invisible:function(){this.button.style.display="none",this.button.classList.remove("loading")},doUpload:async function(e){this.button.classList.add("loading");try{const e=await async function(){const e=Re(),t=e.toExport(),a=await Mt("/api/v1/draw",t,"application/json;charset=UTF-8");new $(a).store();const o=await Nt(e.ID);return o.localchanged=!1,await o.store(),o}();await Pe(e.ID),ve(Se("UPLOADED")),this.button.classList.remove("loading"),this.update()}catch(t){if(t instanceof Ne&&406==t.code)return void De(`Upload Failed: ${t.toString()}`);console.warn(t.toString()+": trying as update"),e.creator=$.localGet().id,this.doUpdate(e)}},doUpdate:async function(e,t=!1){const a="false"!==localStorage[window.plugin.wasabee.static.constants.REBASE_UPDATE_KEY];try{t&&delete e.lasteditid,this.button.classList.add("loading");const o=await async function(e){const t=e.toExport();try{const a=await Rt({url:`/api/v1/draw/${e.ID}`,method:"PUT",body:t,headers:e.lasteditid?{"Content-Type":"application/json;charset=UTF-8","If-Match":e.lasteditid}:{"Content-Type":"application/json;charset=UTF-8"}});return e.lasteditid=a.updateID,e.remoteChanged=!1,e.localchanged=!1,e.fetched=(new Date).toUTCString(),e.fetchedOp=t,e.server=kt(),!0}catch(t){if(!(t instanceof Ne))return console.error(t),Promise.reject(new Ne({code:-1,text:`Unexpected error: ${t}`}));switch(t.code){case 412:return!1;case 410:await xe(e.ID);default:return Promise.reject(t)}}}(e);if(o)await e.store(),e!=Re()&&await Pe(e.ID),this.update();else if(a){const t=await Nt(e.ID);new Or({title:Se("UPDATE_CONFLICT_TITLE"),opOwn:Re(),opRemote:t,updateCallback:e=>this.doUpdate(e,!0),cancelText:Se("dialog.conflict.cancel_upload")}).enable()}else new si({title:Se("UPDATE_CONFLICT_TITLE"),label:Se("UPDATE_CONFLICT_DESC"),type:"operation",callback:()=>this.doUpdate(e,!0)}).enable()}catch(e){console.error(e),De(`Update Failed: ${e.toString()}`)}this.button.classList.remove("loading")}}),yd=Cd,Rd=window.plugin.wasabee;class Id extends Ht{constructor(e){super(e),this.needWritePermission=!0,this.title=Se("toolbar.quick_delete.title"),this.type=Id.TYPE,this.handler=new Md(this),this.button=this._createButton({title:this.title,container:e,className:"wasabee-toolbar-quickdelete",context:this,callback:this.toggleActions}),this.state="off",this.setSubActions(this.getSubActions()),this._container.appendChild(this.actionsContainer),window.map.on("wasabee:op:change",this.opChange,this),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("toolbar.quick_delete.title"),this.setSubActions(this.getSubActions())})),this.update()}opChange(){"on"==this.state?this.disable():"instant"==this.state&&(this.handler.disable(),this.handler.enable())}toggleActions(){"off"==this.state?(this.state="instant",this.enable(),this.setSubActions(this.getSubActions()),dt({id:"analytics",action:"quickdelete:instant"}),this.button.classList.add("blink")):"instant"==this.state?(this.disable(),this.state="on",this.enable(),this.setSubActions(this.getSubActions()),dt({id:"analytics",action:"quickdelete"})):this.disable()}actionApply(){const e=Re();e.markers=e.markers.filter((e=>!this.handler.deletedMarker.has(e.ID))),e.links=e.links.filter((e=>!this.handler.deletedLink.has(e.ID))),e.cleanAnchorList(),e.cleanPortalList(),e.update(!0),e.updateBlockers(),this.disable()}actionClear(){const e=Re();e.clearAllItems(),e.updateBlockers(),this.disable()}actionCancel(){this.disable()}getSubActions(){return"instant"===this.state?[{text:Se("toolbar.quick_delete.stop.text"),title:Se("toolbar.quick_delete.stop.title"),callback:this.disable,context:this},{text:Se("toolbar.quick_delete.clear.text"),title:Se("toolbar.quick_delete.clear.title"),callback:this.actionClear,context:this}]:[{text:Se("toolbar.quick_delete.apply.text"),title:Se("toolbar.quick_delete.apply.title"),callback:this.actionApply,context:this},{text:Se("toolbar.quick_delete.cancel.text"),title:Se("toolbar.quick_delete.cancel.title"),callback:this.actionCancel,context:this}]}enable(){return super.enable(),this.button.classList.add("active"),this.handler.enable(),this}disable(){return super.disable(),this.button.classList.remove("active"),this.button.classList.remove("blink"),this.handler.disable(),this.state="off",this}}Id.TYPE="QuickdeleteButton";class Md extends L.Handler{constructor(e){super(window.map),this.deletedMarker=new Set,this.deletedLink=new Set,this.control=e}clickMarker(e){if(!this.enabled())return;const t=e.target;t.closePopup(),this.toggleMarker(t)}toggleMarker(e){if("instant"==this.control.state)return Re().removeMarkerByID(e.options.id);this.deletedMarker.has(e.options.id)?(this.deletedMarker.delete(e.options.id),e.setOpacity(1)):(this.deletedMarker.add(e.options.id),e.setOpacity(.5))}clickLink(e){if(!this.enabled())return;const t=e.target;t.closePopup(),this.toggleLink(t)}toggleLink(e){if("instant"==this.control.state)return Re().removeLinkByID(e.options.linkID);this.deletedLink.has(e.options.linkID)?(this.deletedLink.delete(e.options.linkID),e.setStyle({opacity:window.plugin.wasabee.skin.linkStyle.opacity||1})):(this.deletedLink.add(e.options.linkID),e.setStyle({opacity:.5*(window.plugin.wasabee.skin.linkStyle.opacity||1)}))}clickAnchor(e){if(!this.enabled())return;const t=e.target;t.closePopup(),this.toggleAnchor(t)}toggleAnchor(e){const t=Re();if("instant"==this.control.state)return t.removeAnchor(e.options.portalId);const a=t.getPortal(e.options.portalId),o=t.getLinkListFromPortal(a);o.every((e=>this.deletedLink.has(e.ID)))?Rd.linkLayerGroup.eachLayer((e=>{o.find((t=>t.ID==e.options.linkID))&&this.toggleLink(e)})):Rd.linkLayerGroup.eachLayer((e=>{this.deletedLink.has(e.options.linkID)||o.find((t=>t.ID==e.options.linkID))&&this.toggleLink(e)}))}keyUpListener(e){this.enabled()&&27===e.originalEvent.keyCode&&this.control.disable()}addHooks(){Rd.portalLayerGroup.eachLayer((e=>{e.on("spiderfiedclick",this.clickAnchor,this)})),Rd.markerLayerGroup.eachLayer((e=>{e.on("spiderfiedclick",this.clickMarker,this)})),Rd.linkLayerGroup.eachLayer((e=>{e.on("click",this.clickLink,this)})),window.map.on("keyup",this.keyUpListener,this),this.tooltip=new Ut(window.map),this.tooltip.updateContent("instant"===this.control.state?Se("toolbar.quick_delete.tooltip.quick_mode"):Se("toolbar.quick_delete.tooltip.toggle_mode"))}removeHooks(){Rd.portalLayerGroup.eachLayer((e=>{e.off("spiderfiedclick",this.clickAnchor,this)})),Rd.markerLayerGroup.eachLayer((e=>{e.off("spiderfiedclick",this.clickMarker,this),e.setOpacity(1)})),Rd.linkLayerGroup.eachLayer((e=>{e.off("click",this.clickLink,this),e.setStyle({opacity:window.plugin.wasabee.skin.linkStyle.opacity||1})})),window.map.off("keyup",this.keyUpListener,this),this.tooltip.dispose()}}const Pd=Id,xd=Kt.extend({statics:{TYPE:"about"},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=L.DomUtil.create("div",null);L.DomUtil.create("div",null,e).innerHTML=Se("SUPPORT_INSTRUCT"),this._smallScreen&&(L.DomUtil.create("div",null,e).innerHTML=Se("dialog.about.download_mobile_app")),L.DomUtil.create("div",null,e).innerHTML="

Show your love

Patreon",L.DomUtil.create("div",null,e).innerHTML="

About Wasabee-IITC

Current version: "+window.plugin.wasabee.info.version,L.DomUtil.create("div",null,e).innerHTML=Se("HOW_TO_VIDS");const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("ABOUT_WASABEE"),html:e,width:"auto",dialogClass:"about",buttons:t})}}),Ud=Kt.extend({statics:{TYPE:"OnlineAgentList"},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:agentlocations",this.update,this),window.map.on("wasabee:logout",this.closeDialog,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:agentlocations",this.update,this),window.map.off("wasabee:logout",this.closeDialog,this)},_displayDialog:function(){const e={};e[Se("CLOSE")]=()=>{this.closeDialog()},this.update(),this.createDialog({title:Se("dialog.online_agents.title"),html:this._table.table,width:"auto",dialogClass:"teamlist",buttons:e})},update:async function(){this._table=new pi,this._table.fields=[{name:Se("AGENT"),value:e=>e.getName(),sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>e.appendChild(ii(a))},{name:Se("dialog.online_agents.last_seen"),value:e=>e.date,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{a&&(e.textContent=ri(a))}},{name:Se("dialog.online_agents.actions"),value:e=>e.id,format:(e,t,a)=>{if(t){const t=L.DomUtil.create("a",null,e);t.textContent="🛰",t.href="#",L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),window.map.setView(a.latLng,7)}));const o=L.DomUtil.create("a",null,e);o.textContent="🚁",o.href="#",L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),window.map.setView(a.latLng,13)}))}}}],this._table.sortBy=0;const e=new Array,t=window.plugin.wasabee.idb.transaction(["agents"],"readonly"),a=IDBKeyRange.lowerBound(this._last_hour());let o=await t.store.index("date").openCursor(a);for(;o;)e.push(new H(o.value)),o=await o.continue();this._table.items=e},_last_hour:function(){const e=new Date(Date.now()-36e5),t=e.getUTCDate(),a=e.getUTCMonth()+1,o=e.getUTCFullYear(),n=e.getUTCHours(),i=e.getUTCMinutes(),r=e.getUTCSeconds();return o+"-"+(a<=9?"0"+a:a)+"-"+(t<=9?"0"+t:t)+" "+(n<=9?"0"+n:n)+":"+(i<=9?"0"+i:i)+":"+(r<=9?"0"+r:r)}}),Bd=Ud;async function Kd(e){if("permission-blocked"===e.data)return void Oe(Se("dialog.firebase.setup",{url:`${w.FIREBASE_IFRAME}`}),!0);const t=e.data.data;switch(t.cmd){case"Agent Location Change":console.debug("firebase update of whole team location: ",t),window.map.fire("wasabee:agentlocations");break;case"Delete":console.warn("server requested op delete: ",t.opID),await xe(t.opID),await Ie();break;case"Generic Message":{const e=await ut(t.sender),a=e?e.name:"[unknown sender]";ve(Se("dialog.team_message",{message:t.msg,sender:a}))}break;case"Login":console.debug("server reported teammate login: ",t.gid),window.map.fire("wasabee:agentlocations");break;case"Link Assignment Change":case"Link Status Change":case"Marker Assignment Change":case"Task Status Change":case"Task Assignment Change":case"Marker Status Change":case"Map Change":!async function(e){let t=e.updateID;if("Map Change"!==e.cmd&&(t+=e.cmd),window.plugin.wasabee._updateList.has(t))return void console.debug("skipping firebase requested update of op since it was our change",e.cmd,e.updateID);if(window.plugin.wasabee._updateList.set(t,Date.now()),!_e.load(e.opID))return void console.warn("Got operation change for an unknown op",e.opID);const a=Re(),o=a.ID===e.opID;switch(e.cmd){case"Link Assignment Change":o&&async function(e,t){const a=new q(await Ct(t.opID,t.linkID));e.assignLink(a.ID,a.assignedTo)}(a,e),console.log(e);break;case"Link Status Change":o&&async function(e,t){const a=new q(await Ct(t.opID,t.linkID));e.setLinkState(a.ID,a.state)}(a,e),console.log(e);break;case"Marker Assignment Change":o&&async function(e,t){const a=new X(await yt(t.opID,t.markerID));e.assignMarker(a.ID,a.assignedTo)}(a,e),console.log(e);break;case"Marker Status Change":o&&async function(e,t){const a=new X(await yt(t.opID,t.markerID));e.setMarkerState(a.ID,a.state)}(a,e),console.log(e);break;case"Map Change":try{const t=await _e.load(e.opID),a=await Nt(e.opID);await Cr(t,a)?(console.log("firebase trigger reload of current op: ",e),await Pe(a.ID)):console.debug("firebase trigger update of op",e.opID)}catch(e){console.error(e)}break;default:console.log(e)}}(t);break;case"Target":try{const e=JSON.parse(t.msg),a={id:e.ID,name:e.Name,lat:e.Lat,lng:e.Lon};ve(We(new ee(a)).outerHTML+"
Sent by: "+e.Sender,!0)}catch(e){console.error(e)}break;default:console.warn("unknown firebase command: ",t)}}function Gd(e,t){const a=e.split(".",3),o=t.split(".",3);return+a[0]<+o[0]||+a[0]==+o[0]&&+a[1]<+o[1]}const Hd=window.plugin.wasabee;Hd.static=b,window.plugin.wasabee.init=async()=>{if(Promise.allSettled||(Promise.allSettled=function(e){let t=e.map((e=>e.then((e=>({status:"fulfilled",value:e}))).catch((e=>({status:"rejected",reason:e})))));return Promise.all(t)}),Hd._inited)return;if(Hd._inited=!0,Object.freeze(Hd.static),null==window.iitcBuildDate||window.iitcBuildDate<"2020-01-18-170317")return void De("Wasabee won't work on this version of IITC; please update to 0.30.1 or newer from https://iitc.app. On desktop, do not use the IITC button, use the TamperMonkey/GreaseMonkey method.");try{Hd.idb=await G}catch(e){return De("Wasabee: unable to access the storage: "+e.toString()),void(plugin_info.error=e)}Hd._selectedOp=null,Hd._updateList=new Map,Hd.portalDetailQueue=[],hi(),function(){if(L.Browser.android)return;if(void 0!==window.google&&google.accounts&&google.accounts.oauth2)return void bt();const e=document.createElement("script");e.type="text/javascript",e.async=!0,e.defer=!0,e.src="https://accounts.google.com/gsi/client",e.onload=bt,(document.body||document.head||document.documentElement).appendChild(e)}(),await async function(){let e=await Be();null!=e&&0!=e.length||(await async function(){const e=await Me();await async function(){const e=await Be();await Promise.all(e.map(_e.delete)),e.map(z.removeBlockers)}(),e.update()}(),e=await Be());const t=[];for(const a of e)t.push(_e.migrate(a));await Promise.allSettled(t);let a=ye();null!=a&&null!=a||(a=e[0],Ce(a))}(),await async function(){if(null==window.plugin.wasabee._selectedOp){const e=ye();null==e?await Me():null==await _e.load(e)?(console.log("most recently loaded up not present in local store, starting with new default op"),await Me()):await Pe(e)}return Re()}(),kt();const e=[],t=localStorage[Hd.static.constants.SKIN_KEY];try{const a=JSON.parse(t);for(const t of a)e.push(t)}catch{e.push(t)}function a(e){window.map.fire("wasabee:portal:click",{portal:He(e.target)})}e.length>0&&(window.iitcLoaded?fi(e):window.addHook("iitcLoaded",(()=>{fi(e)}))),Hd.portalLayerGroup=new L.LayerGroup,Hd.linkLayerGroup=new L.LayerGroup,Hd.markerLayerGroup=new L.LayerGroup,Hd.agentLayerGroup=new L.LayerGroup,Hd.zoneLayerGroup=new L.FeatureGroup,window.addLayerGroup("Wasabee Draw Portals",Hd.portalLayerGroup,!0),window.addLayerGroup("Wasabee Draw Links",Hd.linkLayerGroup,!0),window.addLayerGroup("Wasabee Draw Markers",Hd.markerLayerGroup,!0),window.addLayerGroup("Wasabee Agents",Hd.agentLayerGroup,!0),window.addLayerGroup("Wasabee Zones",Hd.zoneLayerGroup,!0),Hd.zoneLayerGroup.bringToBack(),Hd.backgroundOpsGroup=new L.LayerGroup,window.addLayerGroup("Wasabee Background Ops",Hd.backgroundOpsGroup,!0),window.addHook("mapDataRefreshStart",(()=>{window.map.fire("wasabee:agentlocations")})),window.addHook("portalDetailsUpdated",(e=>{je({success:!0,guid:e.guid,details:e.portalDetails})})),window.addHook("portalAdded",(e=>e.portal.on("click",a))),window.addHook("mapDataEntityInject",Xi),window.map.on("wasabee:op:select",Xi),window.addHook("mapDataEntityInject",$i),window.map.on("wasabee:ui:skin",Yi),window.map.on("wasabee:filter",Yi),window.map.on("wasabee:op:change",Yi),window.map.on("wasabee:op:select",Yi),window.map.on("wasabee:agentlocations",Vi),window.map.on("wasabee:logout",Vi),window.map.on("wasabee:logout",Ge),window.map.on("wasabee:logout",Et),window.addResumeFunction((()=>{$.isLoggedIn()&&(window.map.fire("wasabee:agentlocations"),Gr())})),window.map.on("wasabee:op:select",(()=>{Zi()})),window.map.on("wasabee:op:background",(e=>{e.background?Hd._selectedOp&&Hd._selectedOp.ID!==e.opID&&_e.load(e.opID).then(qi):Zi()}));const o="true"===localStorage[Hd.static.constants.USE_PANES];window.isSmartphone()&&o&&new Bt({paneId:"wasabee",paneName:"Wasabee",default:()=>new Ii}),window.plugin.userLocation&&window.addHook("pluginUserLocation",Fd),window.map.on("layeradd",(e=>{e.layer!==Hd.portalLayerGroup&&e.layer!==Hd.linkLayerGroup&&e.layer!==Hd.markerLayerGroup&&e.layer!==Hd.zoneLayerGroup||Yi(),e.layer===Hd.backgroundOpsGroup&&Zi()})),window.map.on("layerremove",(e=>{e.layer!==Hd.portalLayerGroup&&e.layer!==Hd.linkLayerGroup&&e.layer!==Hd.markerLayerGroup&&e.layer!==Hd.zoneLayerGroup||e.layer.clearLayers()})),function(e){const t=L.DomUtil.create("iframe");t.width="0",t.height="0",t.src=w.FIREBASE_IFRAME,t.id="wasabeeFirebaseFrame",t.addEventListener("load",(()=>{ct.onmessage=t=>{"ready"===t.data&&(ct.onmessage=e,$.isLoggedIn()&&dt({id:"wasabeeLogin",method:"auto"}))},t.contentWindow.postMessage("init","*",[lt.port2])})),document.body.append(t)}(Kd),window.map.on("wasabee:crosslinks",nt),window.plugin.wasabee.crossLinkLayers=new L.FeatureGroup,window.plugin.wasabee._crosslinkCache=new Map,window.addLayerGroup("Wasabee Cross Links",window.plugin.wasabee.crossLinkLayers,!0),window.map.on("layeradd",(e=>{e.layer===window.plugin.wasabee.crossLinkLayers&&(window.plugin.wasabee._crosslinkCache=new Map,nt())})),window.map.on("layerremove",(e=>{e.layer===window.plugin.wasabee.crossLinkLayers&&(window.plugin.wasabee.crossLinkLayers.clearLayers(),delete window.plugin.wasabee._crosslinkCache)})),window.addHook("mapDataRefreshStart",rt),window.addHook("mapDataRefreshEnd",st),window.plugin.wasabee.defensiveLayers=Jl=new L.LayerGroup,window.addLayerGroup("Wasabee-D Keys",Jl,!1),window.map.on("wasabee:defensivekeys",$l),window.map.on("layeradd",(e=>{e.layer===Jl&&window.map.fire("wasabee:defensivekeys")})),window.map.on("layerremove",(e=>{e.layer===Jl&&Jl.clearLayers()})),"true"!==localStorage[Hd.static.constants.SEND_LOCATION_KEY]&&(localStorage[Hd.static.constants.SEND_LOCATION_KEY]="false"),Ic(),window.map.on("wasabee:op:change",Mc),window.map.on("wasabee:op:select",Ic),function(){if(window.plugin.wasabee.buttons)return;const e={container:L.DomUtil.create("ul","leaflet-bar"),position:"topleft",buttons:new Map};for(const t of[ic,zc,rr,Pd,Sd,Nd,sc,yd]){const a=new t(L.DomUtil.create("li",null,e.container));e.buttons.set(a.type,a)}window.plugin.wasabee.buttons=new Gt(e),window.map.addControl(window.plugin.wasabee.buttons),window.plugin.wasabee.buttons.update()}(),function(){const e=document.getElementById("toolbox"),t=L.DomUtil.create("a","wasabee",e);t.href="#",t.textContent=Se("ABOUT_WASABEE"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),(new xd).enable()}));const a=L.DomUtil.create("a","wasabee",e);a.href="#",a.textContent=Se("SETTINGS_TOOLBOX"),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),(new Ql).enable()}));const o=L.DomUtil.create("a","wasabee",e);o.textContent=Se("SEND_LOC"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),navigator.geolocation.getCurrentPosition((async e=>{try{await vt(e.coords.latitude,e.coords.longitude),ve(Se("LOC_PROC"))}catch(e){console.error(e)}}),(e=>{console.error(e)}))}));const n=L.DomUtil.create("a","wasabee",e);n.textContent=Se("toolbox.teammates"),L.DomEvent.on(n,"click",(e=>{L.DomEvent.stop(e),(new Bd).enable()}))}(),window.map.fire("wasabee:agentlocations"),Yi(),Zi(),window.map.fire("wasabee:crosslinks"),$.isLoggedIn()?(pt(!0),window.map.fire("wasabee:defensivekeys")):async function(){const e=localStorage["wasabee-auth-state"];if(!e)return;const t=location.hash.substring(1),a={},o=/([^&=]+)=([^&]*)/g;let n;for(;n=o.exec(t);)a[decodeURIComponent(n[1])]=decodeURIComponent(n[2]);if(a.state===e&&a.access_token){delete localStorage["wasabee-auth-state"],location.hash="";const e=a.access_token,t=await wt(e);return dt({id:"wasabeeLogin",method:"oauth2"}),t}}().then((e=>{e&&(e.store(),window.map.fire("wasabee:login"),yr().then((e=>{e&&ve(Se("SYNC DONE"))})),e.querytoken&&Ot(window.PLAYER.nickname,window.PLAYER.team,e.querytoken))})).catch((e=>{e instanceof Ne?De(Se("AUTH TOKEN REJECTED",{error:e.toString()})):(De(e),dt({id:"exception",error:e}))})),window.map.on("wdialog",(e=>{dt({id:"analytics",action:e.dialogType})})),async function(){const e=await(await fetch("https://cdn2.wasabee.rocks/iitcplugin/prod/wasabee.meta.js")).text();for(const t of e.split("\n"))if(t.startsWith("// @version")){const e=t.slice(11).trim();return Gd(window.plugin.wasabee.info.version,e)}return!1}().then((e=>{e&&Oe(Se("dialog.update_warning"))}))};let zd=0;function Fd(e){const{event:t,data:a}=e;"onLocationChange"===t&&a.latlng&&"true"===localStorage[Hd.static.constants.SEND_LOCATION_KEY]&&(Date.now()-zd<5e3||$.isLoggedIn()&&(vt(a.latlng.lat,a.latlng.lng),zd=Date.now()))}})()})(); +(()=>{var e={375:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"arrows-rotate",icon:[512,512,[128472,"refresh","sync"],"f021","M464 16c-17.67 0-32 14.31-32 32v74.09C392.1 66.52 327.4 32 256 32C161.5 32 78.59 92.34 49.58 182.2c-5.438 16.81 3.797 34.88 20.61 40.28c16.89 5.5 34.88-3.812 40.3-20.59C130.9 138.5 189.4 96 256 96c50.5 0 96.26 24.55 124.4 64H336c-17.67 0-32 14.31-32 32s14.33 32 32 32h128c17.67 0 32-14.31 32-32V48C496 30.31 481.7 16 464 16zM441.8 289.6c-16.92-5.438-34.88 3.812-40.3 20.59C381.1 373.5 322.6 416 256 416c-50.5 0-96.25-24.55-124.4-64H176c17.67 0 32-14.31 32-32s-14.33-32-32-32h-128c-17.67 0-32 14.31-32 32v144c0 17.69 14.33 32 32 32s32-14.31 32-32v-74.09C119.9 445.5 184.6 480 255.1 480c94.45 0 177.4-60.34 206.4-150.2C467.9 313 458.6 294.1 441.8 289.6z"]},t.T8=t.DF},789:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"asterisk",icon:[448,512,[10033,61545],"2a","M417.1 368c-5.937 10.27-16.69 16-27.75 16c-5.422 0-10.92-1.375-15.97-4.281L256 311.4V448c0 17.67-14.33 32-31.1 32S192 465.7 192 448V311.4l-118.3 68.29C68.67 382.6 63.17 384 57.75 384c-11.06 0-21.81-5.734-27.75-16c-8.828-15.31-3.594-34.88 11.72-43.72L159.1 256L41.72 187.7C26.41 178.9 21.17 159.3 29.1 144C36.63 132.5 49.26 126.7 61.65 128.2C65.78 128.7 69.88 130.1 73.72 132.3L192 200.6V64c0-17.67 14.33-32 32-32S256 46.33 256 64v136.6l118.3-68.29c3.838-2.213 7.939-3.539 12.07-4.051C398.7 126.7 411.4 132.5 417.1 144c8.828 15.31 3.594 34.88-11.72 43.72L288 256l118.3 68.28C421.6 333.1 426.8 352.7 417.1 368z"]},t.$X=t.DF},117:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"ban",icon:[512,512,[128683,"cancel"],"f05e","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM99.5 144.8C77.15 176.1 64 214.5 64 256C64 362 149.1 448 256 448C297.5 448 335.9 434.9 367.2 412.5L99.5 144.8zM448 256C448 149.1 362 64 256 64C214.5 64 176.1 77.15 144.8 99.5L412.5 367.2C434.9 335.9 448 297.5 448 256V256z"]},t.gP=t.DF},49:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"caret-right",icon:[256,512,[],"f0da","M118.6 105.4l128 127.1C252.9 239.6 256 247.8 256 255.1s-3.125 16.38-9.375 22.63l-128 127.1c-9.156 9.156-22.91 11.9-34.88 6.943S64 396.9 64 383.1V128c0-12.94 7.781-24.62 19.75-29.58S109.5 96.23 118.6 105.4z"]},t.I4=t.DF},55:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"check",icon:[448,512,[10004,10003],"f00c","M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"]},t.LE=t.DF},98:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"desktop",icon:[576,512,[61704,128421,"desktop-alt"],"f390","M528 0h-480C21.5 0 0 21.5 0 48v320C0 394.5 21.5 416 48 416h192L224 464H152C138.8 464 128 474.8 128 488S138.8 512 152 512h272c13.25 0 24-10.75 24-24s-10.75-24-24-24H352L336 416h192c26.5 0 48-21.5 48-48v-320C576 21.5 554.5 0 528 0zM512 288H64V64h448V288z"]},t.tc=t.DF},755:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"eraser",icon:[512,512,[],"f12d","M480 416C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H150.6C133.7 480 117.4 473.3 105.4 461.3L25.37 381.3C.3786 356.3 .3786 315.7 25.37 290.7L258.7 57.37C283.7 32.38 324.3 32.38 349.3 57.37L486.6 194.7C511.6 219.7 511.6 260.3 486.6 285.3L355.9 416H480zM265.4 416L332.7 348.7L195.3 211.3L70.63 336L150.6 416L265.4 416z"]},t.xf=t.DF},610:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"left-right",icon:[512,512,[8596,"arrows-alt-h"],"f337","M503.1 273.6l-112 104c-6.984 6.484-17.17 8.219-25.92 4.406s-14.41-12.45-14.41-22v-56l-192 .001V360c0 9.547-5.656 18.19-14.41 22c-8.75 3.812-18.94 2.078-25.92-4.406l-112-104c-9.781-9.094-9.781-26.09 0-35.19l112-104c6.984-6.484 17.17-8.219 25.92-4.406C154 133.8 159.7 142.5 159.7 152v55.1l192-.001v-56c0-9.547 5.656-18.19 14.41-22s18.94-2.078 25.92 4.406l112 104C513.8 247.5 513.8 264.5 503.1 273.6z"]},t.Bq=t.DF},467:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"location-dot",icon:[384,512,["map-marker-alt"],"f3c5","M168.3 499.2C116.1 435 0 279.4 0 192C0 85.96 85.96 0 192 0C298 0 384 85.96 384 192C384 279.4 267 435 215.7 499.2C203.4 514.5 180.6 514.5 168.3 499.2H168.3zM192 256C227.3 256 256 227.3 256 192C256 156.7 227.3 128 192 128C156.7 128 128 156.7 128 192C128 227.3 156.7 256 192 256z"]},t.op=t.DF},102:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"palette",icon:[512,512,[127912],"f53f","M512 255.1C512 256.9 511.1 257.8 511.1 258.7C511.6 295.2 478.4 319.1 441.9 319.1H344C317.5 319.1 296 341.5 296 368C296 371.4 296.4 374.7 297 377.9C299.2 388.1 303.5 397.1 307.9 407.8C313.9 421.6 320 435.3 320 449.8C320 481.7 298.4 510.5 266.6 511.8C263.1 511.9 259.5 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256V255.1zM96 255.1C78.33 255.1 64 270.3 64 287.1C64 305.7 78.33 319.1 96 319.1C113.7 319.1 128 305.7 128 287.1C128 270.3 113.7 255.1 96 255.1zM128 191.1C145.7 191.1 160 177.7 160 159.1C160 142.3 145.7 127.1 128 127.1C110.3 127.1 96 142.3 96 159.1C96 177.7 110.3 191.1 128 191.1zM256 63.1C238.3 63.1 224 78.33 224 95.1C224 113.7 238.3 127.1 256 127.1C273.7 127.1 288 113.7 288 95.1C288 78.33 273.7 63.1 256 63.1zM384 191.1C401.7 191.1 416 177.7 416 159.1C416 142.3 401.7 127.1 384 127.1C366.3 127.1 352 142.3 352 159.1C352 177.7 366.3 191.1 384 191.1z"]},t.q2=t.DF},371:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32zM421.7 220.3L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3z"]},t.Iw=t.DF},986:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M480 288H32c-17.62 0-32 14.38-32 32v128c0 17.62 14.38 32 32 32h448c17.62 0 32-14.38 32-32v-128C512 302.4 497.6 288 480 288zM352 408c-13.25 0-24-10.75-24-24s10.75-24 24-24s24 10.75 24 24S365.3 408 352 408zM416 408c-13.25 0-24-10.75-24-24s10.75-24 24-24s24 10.75 24 24S429.3 408 416 408zM480 32H32C14.38 32 0 46.38 0 64v128c0 17.62 14.38 32 32 32h448c17.62 0 32-14.38 32-32V64C512 46.38 497.6 32 480 32zM352 152c-13.25 0-24-10.75-24-24S338.8 104 352 104S376 114.8 376 128S365.3 152 352 152zM416 152c-13.25 0-24-10.75-24-24S402.8 104 416 104S440 114.8 440 128S429.3 152 416 152z"]},t.xf=t.DF},619:(e,t)=>{"use strict";t.DF={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128H416L394.8 466.1z"]},t.$=t.DF},874:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},818:(e,t,a)=>{var o=a(874),n=a(851),i=Object.hasOwnProperty,r={};for(var s in o)i.call(o,s)&&(r[o[s]]=s);var l=e.exports={to:{},get:{}};function c(e,t,a){return Math.min(Math.max(t,e),a)}function d(e){var t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}l.get=function(e){var t,a;switch(e.substring(0,3).toLowerCase()){case"hsl":t=l.get.hsl(e),a="hsl";break;case"hwb":t=l.get.hwb(e),a="hwb";break;default:t=l.get.rgb(e),a="rgb"}return t?{model:a,value:t}:null},l.get.rgb=function(e){if(!e)return null;var t,a,n,r=[0,0,0,1];if(t=e.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(n=t[2],t=t[1],a=0;a<3;a++){var s=2*a;r[a]=parseInt(t.slice(s,s+2),16)}n&&(r[3]=parseInt(n,16)/255)}else if(t=e.match(/^#([a-f0-9]{3,4})$/i)){for(n=(t=t[1])[3],a=0;a<3;a++)r[a]=parseInt(t[a]+t[a],16);n&&(r[3]=parseInt(n+n,16)/255)}else if(t=e.match(/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)){for(a=0;a<3;a++)r[a]=parseInt(t[a+1],0);t[4]&&(t[5]?r[3]=.01*parseFloat(t[4]):r[3]=parseFloat(t[4]))}else{if(!(t=e.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)))return(t=e.match(/^(\w+)$/))?"transparent"===t[1]?[0,0,0,0]:i.call(o,t[1])?((r=o[t[1]])[3]=1,r):null:null;for(a=0;a<3;a++)r[a]=Math.round(2.55*parseFloat(t[a+1]));t[4]&&(t[5]?r[3]=.01*parseFloat(t[4]):r[3]=parseFloat(t[4]))}for(a=0;a<3;a++)r[a]=c(r[a],0,255);return r[3]=c(r[3],0,1),r},l.get.hsl=function(e){if(!e)return null;var t=e.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){var a=parseFloat(t[4]);return[(parseFloat(t[1])%360+360)%360,c(parseFloat(t[2]),0,100),c(parseFloat(t[3]),0,100),c(isNaN(a)?1:a,0,1)]}return null},l.get.hwb=function(e){if(!e)return null;var t=e.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){var a=parseFloat(t[4]);return[(parseFloat(t[1])%360+360)%360,c(parseFloat(t[2]),0,100),c(parseFloat(t[3]),0,100),c(isNaN(a)?1:a,0,1)]}return null},l.to.hex=function(){var e=n(arguments);return"#"+d(e[0])+d(e[1])+d(e[2])+(e[3]<1?d(Math.round(255*e[3])):"")},l.to.rgb=function(){var e=n(arguments);return e.length<4||1===e[3]?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"},l.to.rgb.percent=function(){var e=n(arguments),t=Math.round(e[0]/255*100),a=Math.round(e[1]/255*100),o=Math.round(e[2]/255*100);return e.length<4||1===e[3]?"rgb("+t+"%, "+a+"%, "+o+"%)":"rgba("+t+"%, "+a+"%, "+o+"%, "+e[3]+")"},l.to.hsl=function(){var e=n(arguments);return e.length<4||1===e[3]?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"},l.to.hwb=function(){var e=n(arguments),t="";return e.length>=4&&1!==e[3]&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"},l.to.keyword=function(e){return r[e.slice(0,3)]}},426:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-dialog button.drawb{border:2px solid #daa520;border-radius:35px;cursor:pointer;margin:auto 0 auto auto;padding:4px 17px;text-align:center;width:max-content}.wasabee-dialog-fanfield .container,.wasabee-dialog-flipflop .container,.wasabee-dialog-homogeneous .container,.wasabee-dialog-madrid .container,.wasabee-dialog-multimax .container,.wasabee-dialog-onion .container,.wasabee-dialog-savelinks .container,.wasabee-dialog-starburst .container{grid-gap:.2em .5em;align-items:center;display:grid;grid-template-columns:minmax(min-content,10em) min-content auto;max-width:700px}.wasabee-dialog-link .container{grid-gap:.2em .5em;align-items:center;display:grid;max-width:700px}.wasabee-dialog-fanfield label,.wasabee-dialog-flipflop label,.wasabee-dialog-link label,.wasabee-dialog-madrid label,.wasabee-dialog-multimax label,.wasabee-dialog-onion label,.wasabee-dialog-savelinks label,.wasabee-dialog-starburst label{grid-column:1;text-decoration:dotted underline}.wasabee-dialog-fanfield button,.wasabee-dialog-flipflop button,.wasabee-dialog-homogeneous button,.wasabee-dialog-link button,.wasabee-dialog-madrid button,.wasabee-dialog-multimax button,.wasabee-dialog-onion button,.wasabee-dialog-savelinks button,.wasabee-dialog-starburst button{cursor:pointer;grid-column:2;padding:4px}.wasabee-dialog-homogeneous .drawb{grid-column:4}.wasabee-dialog-link .drawb{grid-column:1/3}.wasabee-dialog-fanfield .drawb,.wasabee-dialog-flipflop .drawb,.wasabee-dialog-madrid .drawb,.wasabee-dialog-multimax .drawb,.wasabee-dialog-onion .drawb,.wasabee-dialog-savelinks .drawb,.wasabee-dialog-starburst .drawb{grid-column:3}.wasabee-dialog-fanfield .desc,.wasabee-dialog-flipflop .desc,.wasabee-dialog-madrid .desc,.wasabee-dialog-multimax .desc,.wasabee-dialog-onion .desc,.wasabee-dialog-savelinks .desc,.wasabee-dialog-starburst .desc{grid-column:1/4}.wasabee-dialog-fanfield .desc.secondary,.wasabee-dialog-starburst .desc.secondary{color:#d3d3d3}.wasabee-dialog-homogeneous .desc{grid-column:1/5}.wasabee-dialog-homogeneous .set-portal-display{grid-column:3/5}.wasabee-dialog-link .portal{grid-column:1/4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wasabee-dialog-link .add,.wasabee-dialog-link .desc{grid-column:3}",""]),e.exports=n},509:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".ui-dialog{max-width:calc(100vw - 2px)}.ui-dialog a.enl{color:#03fe03}.ui-dialog a.res{color:#00c5ff}.ui-dialog a.mac{color:#f74a4a}",""]),e.exports=n},283:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-tooltip{background:rgba(30,130,76,.66);border:1px solid transparent;-webkit-border-radius:4px;border-radius:4px;color:#fff;margin-left:20px;margin-top:-21px;padding:2px 4px;position:absolute;white-space:nowrap;z-index:6}.wasabee-tooltip:before{border-bottom:6px solid transparent;border-right:6px solid rgba(99,99,88,.66);border-top:6px solid transparent;content:\"\";left:-7px;position:absolute;top:7px}.wasabee-tooltip-single{margin-top:-12px}.wasabee-error-tooltip{background-color:#f2dede;border:1px solid #e6b6bd;color:#b94a48}.wasabee-error-tooltip:before{border-right-color:#e6b6bd}.ui-tooltip.wasabee-zone-tooltip:before{border:transparent}.leaflet-popup.wasabee-popup .leaflet-popup-content-wrapper{background:hsla(0,0%,92%,.75)!important;-webkit-border-radius:6px!important;font-weight:bolder}#map .wasabee-popup .leaflet-popup-content{color:#000}.wasabee-popup a.enl{color:#388e3c!important}.wasabee-popup a.res{color:#0087ff!important}.wasabee-popup a.mac{color:#8e1111!important}.wasabee-anchor-popup .info-block,.wasabee-link-popup .info-block{display:flex;flex-wrap:wrap;justify-content:space-between}.wasabee-link-popup .buttonset{display:grid}.wasabee-marker-popup div.desc{color:#000;overflow:hidden;padding:4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-popup-assignment{color:#000;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-popup-assignment a.wasabee-agent-label{margin-left:4px}.wasabee-marker-popup-kind{color:#000;margin-right:4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-marker-popup-comment{cursor:pointer;font-weight:400}.wasabee-marker-popup-comment:hover{text-decoration:underline}.wasabee-marker-popup-kind{cursor:pointer}.wasabee-marker-popup-kind:hover{text-decoration:underline}.wasabee-marker-buttonset button{display:block;width:100%}.wasabee-agent-popup div.desc{color:#000;overflow:hidden;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-agent-popup button{display:block;width:100%}.wasabee-agent-popup ul.assignments{color:#388e3c}.wasabee-agent-popup li.assignment{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wasabee-anchor-popup div.desc{color:#000;overflow:hidden;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.wasabee-anchor-popup .key-missing{color:brown}.wasabee-anchor-buttonset{display:grid;grid-template-columns:1fr 1fr}.wasabee-anchor-buttonset button{grid-column:1/3;width:100%}.wasabee-anchor-buttonset button.swap{grid-column:1/2}.wasabee-anchor-buttonset button.duplicate{grid-column:2/3}.wasabee-wd-popup ul{padding-left:1em}.wasabee-marker-icon{background-size:cover}.wasabee-marker-icon.CapturePortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2385296a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2385296a'/%3E%3Cpath d='m86.734 110.528-7.736 5.429 86.863 169.397 9.735-4.428-44.828-87.224S205.842 193.538 236 142c4.003-6.841 7-16 7-16s-5.78 6.297-22 8c-24.16 2.537-104.488-3.399-131-21-2.099-1.394-3.266-2.472-3.266-2.472Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CapturePortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2385296a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2385296a'/%3E%3Cpath d='m86.734 110.528-7.736 5.429 86.863 169.397 9.735-4.428-44.828-87.224S205.842 193.538 236 142c4.003-6.841 7-16 7-16s-5.78 6.297-22 8c-24.16 2.537-104.488-3.399-131-21-2.099-1.394-3.266-2.472-3.266-2.472Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CapturePortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2385296a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2385296a'/%3E%3Cpath d='m86.734 110.528-7.736 5.429 86.863 169.397 9.735-4.428-44.828-87.224S205.842 193.538 236 142c4.003-6.841 7-16 7-16s-5.78 6.297-22 8c-24.16 2.537-104.488-3.399-131-21-2.099-1.394-3.266-2.472-3.266-2.472Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CapturePortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2385296a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2385296a'/%3E%3Cpath d='m86.734 110.528-7.736 5.429 86.863 169.397 9.735-4.428-44.828-87.224S205.842 193.538 236 142c4.003-6.841 7-16 7-16s-5.78 6.297-22 8c-24.16 2.537-104.488-3.399-131-21-2.099-1.394-3.266-2.472-3.266-2.472Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.LetDecayPortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%237d7d7d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%237d7d7d'/%3E%3Cpath d='M94 123s-1 32.333 3 43c3.732 9.953 26 21 26 21s-22.368 9.465-26 19c-4 10.5-3 44-3 44h-8v9h93v-8h-9s1.667-33.333-2-44c-3.222-9.372-25-20-25-20s21.894-9.822 25-19c3.667-10.833 2-46 2-46h9v-8H85v9h9Z' style='fill:%23fff' transform='translate(25 -4)'/%3E%3Cpath d='M130 245s-.835-4.053-.847-8.241c-.008-2.996-.595-7.06 1.847-7.759 6.934-1.985 20.167-3.333 27-17 3.683-7.365 5.957-23.188 2-31 0 0-19.667-8-24-16-1.564-2.887 15.077 7.331 27.892-.462C174.757 157.93 195 154 195 154s.36 10.553-7 16c-5.211 3.857-21 11-21 11l-2.519 24.418s.104 7.157 4.519 11.582c4.753 4.764 24.013 4.212 26 11 2 6.833 0 18 0 18l-65-1Z' style='fill:%237d7d7d' transform='translate(-5)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.LetDecayPortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%237d7d7d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%237d7d7d'/%3E%3Cpath d='M94 123s-1 32.333 3 43c3.732 9.953 26 21 26 21s-22.368 9.465-26 19c-4 10.5-3 44-3 44h-8v9h93v-8h-9s1.667-33.333-2-44c-3.222-9.372-25-20-25-20s21.894-9.822 25-19c3.667-10.833 2-46 2-46h9v-8H85v9h9Z' style='fill:%23fff' transform='translate(25 -4)'/%3E%3Cpath d='M130 245s-.835-4.053-.847-8.241c-.008-2.996-.595-7.06 1.847-7.759 6.934-1.985 20.167-3.333 27-17 3.683-7.365 5.957-23.188 2-31 0 0-19.667-8-24-16-1.564-2.887 15.077 7.331 27.892-.462C174.757 157.93 195 154 195 154s.36 10.553-7 16c-5.211 3.857-21 11-21 11l-2.519 24.418s.104 7.157 4.519 11.582c4.753 4.764 24.013 4.212 26 11 2 6.833 0 18 0 18l-65-1Z' style='fill:%237d7d7d' transform='translate(-5)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.LetDecayPortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%237d7d7d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%237d7d7d'/%3E%3Cpath d='M94 123s-1 32.333 3 43c3.732 9.953 26 21 26 21s-22.368 9.465-26 19c-4 10.5-3 44-3 44h-8v9h93v-8h-9s1.667-33.333-2-44c-3.222-9.372-25-20-25-20s21.894-9.822 25-19c3.667-10.833 2-46 2-46h9v-8H85v9h9Z' style='fill:%23fff' transform='translate(25 -4)'/%3E%3Cpath d='M130 245s-.835-4.053-.847-8.241c-.008-2.996-.595-7.06 1.847-7.759 6.934-1.985 20.167-3.333 27-17 3.683-7.365 5.957-23.188 2-31 0 0-19.667-8-24-16-1.564-2.887 15.077 7.331 27.892-.462C174.757 157.93 195 154 195 154s.36 10.553-7 16c-5.211 3.857-21 11-21 11l-2.519 24.418s.104 7.157 4.519 11.582c4.753 4.764 24.013 4.212 26 11 2 6.833 0 18 0 18l-65-1Z' style='fill:%237d7d7d' transform='translate(-5)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.LetDecayPortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%237d7d7d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%237d7d7d'/%3E%3Cpath d='M94 123s-1 32.333 3 43c3.732 9.953 26 21 26 21s-22.368 9.465-26 19c-4 10.5-3 44-3 44h-8v9h93v-8h-9s1.667-33.333-2-44c-3.222-9.372-25-20-25-20s21.894-9.822 25-19c3.667-10.833 2-46 2-46h9v-8H85v9h9Z' style='fill:%23fff' transform='translate(25 -4)'/%3E%3Cpath d='M130 245s-.835-4.053-.847-8.241c-.008-2.996-.595-7.06 1.847-7.759 6.934-1.985 20.167-3.333 27-17 3.683-7.365 5.957-23.188 2-31 0 0-19.667-8-24-16-1.564-2.887 15.077 7.331 27.892-.462C174.757 157.93 195 154 195 154s.36 10.553-7 16c-5.211 3.857-21 11-21 11l-2.519 24.418s.104 7.157 4.519 11.582c4.753 4.764 24.013 4.212 26 11 2 6.833 0 18 0 18l-65-1Z' style='fill:%237d7d7d' transform='translate(-5)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.DestroyPortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23b7222a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23b7222a'/%3E%3Ccircle cx='162.5' cy='183.5' r='65.5' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 34.835 45.392)'/%3E%3Cpath d='M159.5 136V86v50ZM159 230v50-50Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3Ccircle cx='159.5' cy='184.5' r='5.5' style='fill:%23fff' transform='translate(-84.175 -94.98) scale(1.52577)'/%3E%3Cpath d='M209 184h42-42Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 44.392)'/%3E%3Cpath d='M113 174.862H68A8.142 8.142 0 0 0 59.862 183 8.142 8.142 0 0 0 68 191.138h45a8.142 8.142 0 0 0 8.138-8.138 8.142 8.142 0 0 0-8.138-8.138Z' style='fill:%23fff' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.DestroyPortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23b7222a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23b7222a'/%3E%3Ccircle cx='162.5' cy='183.5' r='65.5' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 34.835 45.392)'/%3E%3Cpath d='M159.5 136V86v50ZM159 230v50-50Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3Ccircle cx='159.5' cy='184.5' r='5.5' style='fill:%23fff' transform='translate(-84.175 -94.98) scale(1.52577)'/%3E%3Cpath d='M209 184h42-42Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 44.392)'/%3E%3Cpath d='M113 174.862H68A8.142 8.142 0 0 0 59.862 183 8.142 8.142 0 0 0 68 191.138h45a8.142 8.142 0 0 0 8.138-8.138 8.142 8.142 0 0 0-8.138-8.138Z' style='fill:%23fff' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.DestroyPortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23b7222a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23b7222a'/%3E%3Ccircle cx='162.5' cy='183.5' r='65.5' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 34.835 45.392)'/%3E%3Cpath d='M159.5 136V86v50ZM159 230v50-50Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3Ccircle cx='159.5' cy='184.5' r='5.5' style='fill:%23fff' transform='translate(-84.175 -94.98) scale(1.52577)'/%3E%3Cpath d='M209 184h42-42Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 44.392)'/%3E%3Cpath d='M113 174.862H68A8.142 8.142 0 0 0 59.862 183 8.142 8.142 0 0 0 68 191.138h45a8.142 8.142 0 0 0 8.138-8.138 8.142 8.142 0 0 0-8.138-8.138Z' style='fill:%23fff' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.DestroyPortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23b7222a'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23b7222a'/%3E%3Ccircle cx='162.5' cy='183.5' r='65.5' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 34.835 45.392)'/%3E%3Cpath d='M159.5 136V86v50ZM159 230v50-50Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3Ccircle cx='159.5' cy='184.5' r='5.5' style='fill:%23fff' transform='translate(-84.175 -94.98) scale(1.52577)'/%3E%3Cpath d='M209 184h42-42Z' style='fill:none;stroke:%23fff;stroke-width:16.28px' transform='matrix(.76289 0 0 .76289 37.124 44.392)'/%3E%3Cpath d='M113 174.862H68A8.142 8.142 0 0 0 59.862 183 8.142 8.142 0 0 0 68 191.138h45a8.142 8.142 0 0 0 8.138-8.138 8.142 8.142 0 0 0-8.138-8.138Z' style='fill:%23fff' transform='matrix(.76289 0 0 .76289 37.124 45.392)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.FarmPortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23f17030'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23f17030'/%3E%3Cuse xlink:href='%23a' x='70' y='120' width='176' height='143'/%3E%3Cpath d='M122.538 112.791c-1.934-12.24 28.787-17.533 17.117.729 0 0 23.934-9.799 15.114 10.82-5.029 24.429-43.717.032-43.957-1.575-21.691-16.796 3.509-30.807 11.726-9.974Z' style='fill:%23fff'/%3E%3Cdefs%3E%3Cimage id='a' width='176' height='143' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACPCAYAAABam1EmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ1klEQVR4nO2dedwV1XnHvw+iKC8WxQVCYhAKDcSdYMEalQgYo2JKjBo1bqVaozVLmyZ2S6JNPs2KbTaN1hibj4qaD6BJRQRJlGjcUbHRmmgScQGXClYQZfn1jzP39Xq5+8ycMzN3vp/PeN93tue5w8/znjnnOc9j5AxJI4GxwGCgL9oGA08Dd5rZ2oDulXjGQjvQCkkG7AscC3wYeF+T07cADwPLgDuAW8xsXepOlpTUImmgpPMl/V7d86ykUyUNCP19SnoISdMkPRpDuLXcJ+ng0N+rpOBI2lPSvASFW8t1kiarbJFLkiYS1sspireaVZKukDRL0pDQ370k50j6kKR1nsRbywZJCyWdKWmb0M+iJGdIOk3SpkDireUBSQeFfiYlOUHSX4ZWbAN+KGn30M+npDXBxoEl7Q/cA2wXyocWrAHONLMFoR0paUwQAUvaEbgf+JMQ9jtgI3C0mS0O7UhJfbwPJ8nNrH2f7IsXYFtgvqQ/De1ISX1CjId+PNryQh9ws6QJoR0p2RqvXQhJ2wG/BfbwaTchHgX2M7MtoR0peQvfLfBJ5FO8AHsDx4d2ouTteGuB5aZvHwXy/Kf4cWBvM9sc2pESh88W+BjyLV6A8cDJoZ3IK5L+LLQPXSFpmFxEWJIsUBTLEH0uSPj+jXgk9PPMI5ImStoo6dTQvrSNpD5J/yBpTcIiuknSuBpb46L9PhgZ6pnmEUmDJT0WPbt1yvqIjqTtJJ0rF/WVNK9IOqaB3WOi42mTn1YkA0j6Ts3zWyFpcGi/tkLSAEknS3oyRfFc38KH61O0XeEqX88070g6ssEz/FQS90/kJU6SSToKeBC4GhiTxH0b8MuYx5NgutyMYkkTJO0KXNng8ElJ2IgtYLn+4GLgv4D9YnvUmgdjHk+CkcA7PNjJLdH/4JcBIxqcMlnS6Lh2YglY0gzgIWBaXEc64DcxjyfFKE928soZwKwW53wsrpGuBCxpG0kXAouA3eI60SEvxjyeFKWAGyBpFPDvbZwaW8ADO71A0ghcP/fwuMa7ZDdgdYvjPigFXAe5GdcrgR3bOH0fSX1xcnd01AJLmgosJ5x4AcbFPJ4UpYDr89fAB9o814D3xDHWtoAlnQfcRuNOuS8mxjyeFMM92ckNksYDX+vwsvfGsdmWgCXNBr7b7vkp8/6Yx5NikCc7uUDSQOAqYPsOL401K9dSkJI+Blwex0jCzFCTmThghic/SgG/nQuAblaupNcCSzoW+DHZSgK4E3C26sRCAGdHx31QCjhC0gHAF7u8/N1xbDcchZA0Hbih2TkBmQlsiaZ0F+Na3dOj/b4oBQxI+iPgOrrXyc5x7NdtWeUS4d2Ky7tbUp+HzOyA0E6EJJptu4Z447lrzKxrEW/VhZA0FjctXIq3OWULDGcRfzJiqGIkW3zbhZIG4f4cDI3pVC/Q0wKWtB/w7QRuZcTQW63yv4m/cdS807MClktMcz3JPYP4ApZ0HG4WpaQ9elLAUb/3UpJNTNPXht1xkg6T9LZx5gHRwTHAFQk61Av0pICB2SS/sLXh+5akkZIWAU8AvwAWStq2cnyAXLKRuZT93k4Zoh7LJyxpH+A7Kdy6bgss6UBc0Z4jqnZPBQ6r/DIA+CpwYApOFR3D36RJcKLVFfPpfKq4HbYScBTs/jNg1zrnf7Tyg0Xdh2E122hgCjApJYeLwnvM7InQTqRN1O9cAqRVKOcEM7uhyt4w4C4aR6q9CAw3Mw00s6eAp+qdFfU19sOJeQruC+yZoON5Z5fQDqRNVXxvmlWe+lvgaCh3Hs3DLHcDdgDWN53+M7ONuDy+9+Oi0ZD0LuAQ4NDoc684nuecwgsYuJAEVk60oA/6Rzh+SFUftwmDaSXgepjZM8C10VbpGx3MW4KeCPTKy82w0A6kiaQzgH/yYGqfSLxfpv0RjsGQQKCOmb0E3BhtyJWtOoi3BD2Z4vajC9sCSzocf2G0x+NWencSjJWMgGsxs9dwEWKLof8F4C6giIEvhRSwXOqnefiLRBxG55GEg8HDCgsz24Ab/C5iStLCdSEkDQduJvvzAjuApyVCZrYc+LoPW54pVAssqQ/XFdwzsCvt4KcFruIi3HRgkRgf2oGkkLQTLgZ8cmhf2sSvgKu6EkVi32gUJtfIFXX8OZCnBNTeW2DM7Je4YPkiMTW0A3GQtAdwB7B/aF86ZED/fzyTRBB0lgiZ5CUW0eqbZcRMLhKIYAJejCuWUhRm5DHVqqS9ceLNa4ahMAI2M5FOSF4oxuIK2OSGKEzxdsJnWYpDsBYY4D+BNwLZToOL4ixM9EmU324p+R/DDifgaLbugRC2U2J/4M9DO9EKSbOAhcCQ0L4kQNAWGOBXAW2nwYXVS12yhFzRnTm46eGixKX0QVgB3x3QdhrsDVyZta5ElGz6DuAzoX1JmNEQVsD3BLSdFqcA38vKqISkmbh8znmZXeuEsRBWwM8HtJ0m5wBfDSliSe+UNBe4iZi5xzLMWAicdVLSJoob/H41cEG0AMALUR/8fNwqiiK8qDVjIzA4tIBfo42kFjnmdeAbwDeikZdUiFr7GcC3cH3xXmFM6BeODYHtp80OwBeAJyTNjlarJIak7SWdicudsIjeEi/A2JD9tAHAenorw80m3OjLUly9kbvN7M1ObhC1tuNwCy3PA3ZP2skccW5IAY+guC9y7bIeVxr3YeAVYE3VZ/XPA3ErdadH2x4hnM0gc0IKeArFm8wo8cuCkH3gPQPaLikGQ0IKeJ+AtkuKwfYhBXxIQNslxWBQEAFH+a+6qSlWUlJNsBb4QHpr+KwkHYIJeHoguyXFIpiAPxzIbkmxGOR9HDiKT/29b7slheTVEC1w2foWm00ebQ0MIeDMrx0r6ZpVwDqP9l7yKuCo9sGhPm2WeOXXnu2t9t0CH01xA9hL/K9z9C7gsv9bXIQrBuOTF7wJOCqoeKQveyXeudPMfuvZptcWeBLFXj7U6/wogE2vAp7q0VaJX1bi0oX5xquA26n9VZJPLotqCvpmtZeZuGi59yuUXYgi8howOiq3hqQ1+CsQM8pXC/w+SvEWlR9UxOuZVcBKXwKe6slOiV/WEy7X891m5i0R3VRPdkr88kUz+0Pll2io1FdGoHvAQ260qP+bZqXzkjAsAebU7BuLv5lWPwLGVbMvep6uXuNFYLaZbanZ7yvru4D7wY+A81pEpKQ+a4FjzOzpOsd8rTT/bzP7P/Aj4Hd6sFHihzeBj5jZvQ2O+4o07M8t7UPA7/JgoyR9NgKnmNnSegclVdJf+aA/o1Mp4JJ22AScbGY/aXLOscA7PPiyGZe4G/Aj4EJVdO9BNgAnthAvwN/7cAZYYmYvVn4Z6MHgZg82StLhOeA4M2saqC7pA7hoQx/Mrf7Fh4BDBHmUxOcpYKqZrWx2kqRtgEv8uMSbwILqHT66EKWA88dS2hBvxOfwVyx8oZmtqd7hQ8AdZSAvCcrzwGxgRjvilTQB+OfUvXqLubU7fHQhXvdgo1N+g+vflTHKjjW4aeGL2y1GE4UIXIOrA+KD9cBPa3f6EPCTHmx0yu7ks9DiRiDJcrbPAJcC3zWztR1e+y+4GtG++KmZbZVzwkcXwneugHYYipsS/QpuXj8vLAV+QrzsNy/gRDsNGGVmX+lUvJKm4fq+Prms3s7UV2RIGkM2W+ElZjZD0o7A8biKPxMD+9SKN3DxBmuB04FP0t5E0bPArbh1a8vMrOuhzSg5zUP4LTRzLzDFzFR7wIeAt8EtO8lalXQBh5nZMugvX3UqcDH+oqq64RYz+xD0+zwaNwNWry/6GvA7M1udlHFJ8/GfHuwjZja/3gFfa+KW47e/1C6PAQeY2RuVHZL6cDXYzsJlkc9E4e4aJjcJqEkNSbOB//Bs9nFgrzqhm4C/Yt/3e7LTKROAL1XvMLN1ZnaFmU3BtW4X497Ss8S5Po1JMkl/B/zAp92IrzUSrzckzVR22SKpacYgSUMlXSJpY1hX+9ksabKnf7v3SvpZoO+5Um6ZUkN8tcBLcON4WcSAuZIaBmOb2Voz+wTuJe8q/ObArccA4Li0bi5pmKQTJc3FVRE9Oi1bLfhmq1K83vp3kuYBs3zZ64KngYPN7JlWJ0r6Y+CvgNOA4Wk71oBLzCxWV0LSLsABuCLh44Ax0edo/DVujXgZN8zXNN+wj4mMCjeSbQG/G7hZ0lQz+99mJ5rZk8DnJH0eV+/uU7h4WJ/Pc6shpYYnulmzybj8HJOAg8iGSJvxb63EC35b4F1wg+hZfmgAD+JiAZqKuJbo+30GJ+a0F7HeDJxRHRfbwKe9gBOAs4ERKfuUJH8AJphZyzAEr0NEkm4FZvi02SVdiRhA0s64PMjnkXyM7HPAp83shjb8GEr2Rk/a5Tgzm9fOib4F/EHgFp82Y9C1iCvIzUKeBpxBvNXZq4Dv4f6sthtsk1cBLwGOqDfrVg/fAjbcNOS+Pu3GILaIK0iaBBwFfBT30tTs2T8LPAK8hIt/uLZ6sqVNe3kU8CZgXzN7rN0LQtSJ+zjwY992Y5CYiH0iF6ubxUCqZnzLzD7byQUhXqiuwyVEzgsTgcVyQSx5YmZoBzpkFXBRpxd5F3CUCLk2p1bWmQjcLikXKQIkDcDFcuSJz5vZq51eFCRQRdIQ3MTBziHsx2AlcJSZPRrakWZIOp0wNSu65VfA+7uJeQgyJhu9SX89hO2Y7AHcISmzS5Hk4jouDe1HB7wJnNNtwE7ISYU5uFC5vLEzcKukL0vytR6sLSTNBOaTvdjrZvyjmT3S7cVBY10lHQ7cFtKHmDyNW5b0o1ZBJ2kj6ZO4RiFPlVB/AUyLEy4ZPFhb0rW4API88xzwfeByM3vBp2FJI4Bv45ZF5Ym1uDHfemla2yYLAh6J60rsGNqXBHgDmIcbKlxayWGbBpJ2BS7ABbdnqivTJqeY2TVxbxJcwACSPo1b+VAkNuGKX98GLAMeTqKaTxQ09Angs/grZ5U0c83spCRulBUBDwQeID9TzN3yHLACN028Itp+3ar/HIn2aNw09JEkmxvCN8/gug6vJHGzTAgYQG6JzO3AoNC+eGYTbhaq0crh4bhVx3l6OWvGdDNL7MU9MwIGkHQELnlxr4m4V5hjZn+b5A0zJWDoD7m8kVLEReMK4NykhxsztzrCzBbhEmd0FD5Yklk2A+cDZ6UxVp65FrhCNCW6gLIlzjMvAyc0KgyTBJlrgSuY2S24xYeZDpwpacgK4MA0xQsZFjCAmS3HrSv7VyBsdpaSdnkVN0Y9ycx+l7axzHYhaomG2a7CXzr7ks7YAlwOfMHndHqmW+BqzOweXBKOiykrH2WNn+OSJJ7jOxYkNy1wNZJG4xIs/wXQNHdWSaoswgUSLWx3FXHS5FLAFaJAoL8BzgH6ArvTK6wFrsSltnoitDO5FnCFKFbgfFzG8rwtU8oLK3C5Ka5uNzeFDwoh4AqSBuOCXk6MPvO0MiGLPIabFV0A3Buqm9CMQgm4GrnaF8figuU/SL4juHwhXAjoAuBGM/ufwP60pLACribKVzYLlyvhEMoC5NU8C9yJywB0k5k9H9ifjugJAVcT5UwYjxPyIcCh+K24E5LNwHLgrsrWZjnZzNJzAq6HpFE4MR+Eq5sxgXylI63HGlwf9vHo8z7gvnZy7uaJUsANkLQTbtZvAq7FHh/9PJrs9KfX4oLhn8IJtXp7MYsvXUlTCrhDogybQ3ErJYbjytbWfg7DTbAMqvms/nlbXMjo68CG6PP1Or+/hBNp7bbazDak/X2zzv8DaocFDs5vmOIAAAAASUVORK5CYII='/%3E%3C/defs%3E%3C/svg%3E\")}.wasabee-marker-icon.FarmPortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23f17030'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23f17030'/%3E%3Cuse xlink:href='%23a' x='70' y='120' width='176' height='143'/%3E%3Cpath d='M122.538 112.791c-1.934-12.24 28.787-17.533 17.117.729 0 0 23.934-9.799 15.114 10.82-5.029 24.429-43.717.032-43.957-1.575-21.691-16.796 3.509-30.807 11.726-9.974Z' style='fill:%23fff'/%3E%3Cdefs%3E%3Cimage id='a' width='176' height='143' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACPCAYAAABam1EmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ1klEQVR4nO2dedwV1XnHvw+iKC8WxQVCYhAKDcSdYMEalQgYo2JKjBo1bqVaozVLmyZ2S6JNPs2KbTaN1hibj4qaD6BJRQRJlGjcUbHRmmgScQGXClYQZfn1jzP39Xq5+8ycMzN3vp/PeN93tue5w8/znjnnOc9j5AxJI4GxwGCgL9oGA08Dd5rZ2oDulXjGQjvQCkkG7AscC3wYeF+T07cADwPLgDuAW8xsXepOlpTUImmgpPMl/V7d86ykUyUNCP19SnoISdMkPRpDuLXcJ+ng0N+rpOBI2lPSvASFW8t1kiarbJFLkiYS1sspireaVZKukDRL0pDQ370k50j6kKR1nsRbywZJCyWdKWmb0M+iJGdIOk3SpkDireUBSQeFfiYlOUHSX4ZWbAN+KGn30M+npDXBxoEl7Q/cA2wXyocWrAHONLMFoR0paUwQAUvaEbgf+JMQ9jtgI3C0mS0O7UhJfbwPJ8nNrH2f7IsXYFtgvqQ/De1ISX1CjId+PNryQh9ws6QJoR0p2RqvXQhJ2wG/BfbwaTchHgX2M7MtoR0peQvfLfBJ5FO8AHsDx4d2ouTteGuB5aZvHwXy/Kf4cWBvM9sc2pESh88W+BjyLV6A8cDJoZ3IK5L+LLQPXSFpmFxEWJIsUBTLEH0uSPj+jXgk9PPMI5ImStoo6dTQvrSNpD5J/yBpTcIiuknSuBpb46L9PhgZ6pnmEUmDJT0WPbt1yvqIjqTtJJ0rF/WVNK9IOqaB3WOi42mTn1YkA0j6Ts3zWyFpcGi/tkLSAEknS3oyRfFc38KH61O0XeEqX88070g6ssEz/FQS90/kJU6SSToKeBC4GhiTxH0b8MuYx5NgutyMYkkTJO0KXNng8ElJ2IgtYLn+4GLgv4D9YnvUmgdjHk+CkcA7PNjJLdH/4JcBIxqcMlnS6Lh2YglY0gzgIWBaXEc64DcxjyfFKE928soZwKwW53wsrpGuBCxpG0kXAouA3eI60SEvxjyeFKWAGyBpFPDvbZwaW8ADO71A0ghcP/fwuMa7ZDdgdYvjPigFXAe5GdcrgR3bOH0fSX1xcnd01AJLmgosJ5x4AcbFPJ4UpYDr89fAB9o814D3xDHWtoAlnQfcRuNOuS8mxjyeFMM92ckNksYDX+vwsvfGsdmWgCXNBr7b7vkp8/6Yx5NikCc7uUDSQOAqYPsOL401K9dSkJI+Blwex0jCzFCTmThghic/SgG/nQuAblaupNcCSzoW+DHZSgK4E3C26sRCAGdHx31QCjhC0gHAF7u8/N1xbDcchZA0Hbih2TkBmQlsiaZ0F+Na3dOj/b4oBQxI+iPgOrrXyc5x7NdtWeUS4d2Ky7tbUp+HzOyA0E6EJJptu4Z447lrzKxrEW/VhZA0FjctXIq3OWULDGcRfzJiqGIkW3zbhZIG4f4cDI3pVC/Q0wKWtB/w7QRuZcTQW63yv4m/cdS807MClktMcz3JPYP4ApZ0HG4WpaQ9elLAUb/3UpJNTNPXht1xkg6T9LZx5gHRwTHAFQk61Av0pICB2SS/sLXh+5akkZIWAU8AvwAWStq2cnyAXLKRuZT93k4Zoh7LJyxpH+A7Kdy6bgss6UBc0Z4jqnZPBQ6r/DIA+CpwYApOFR3D36RJcKLVFfPpfKq4HbYScBTs/jNg1zrnf7Tyg0Xdh2E122hgCjApJYeLwnvM7InQTqRN1O9cAqRVKOcEM7uhyt4w4C4aR6q9CAw3Mw00s6eAp+qdFfU19sOJeQruC+yZoON5Z5fQDqRNVXxvmlWe+lvgaCh3Hs3DLHcDdgDWN53+M7ONuDy+9+Oi0ZD0LuAQ4NDoc684nuecwgsYuJAEVk60oA/6Rzh+SFUftwmDaSXgepjZM8C10VbpGx3MW4KeCPTKy82w0A6kiaQzgH/yYGqfSLxfpv0RjsGQQKCOmb0E3BhtyJWtOoi3BD2Z4vajC9sCSzocf2G0x+NWencSjJWMgGsxs9dwEWKLof8F4C6giIEvhRSwXOqnefiLRBxG55GEg8HDCgsz24Ab/C5iStLCdSEkDQduJvvzAjuApyVCZrYc+LoPW54pVAssqQ/XFdwzsCvt4KcFruIi3HRgkRgf2oGkkLQTLgZ8cmhf2sSvgKu6EkVi32gUJtfIFXX8OZCnBNTeW2DM7Je4YPkiMTW0A3GQtAdwB7B/aF86ZED/fzyTRBB0lgiZ5CUW0eqbZcRMLhKIYAJejCuWUhRm5DHVqqS9ceLNa4ahMAI2M5FOSF4oxuIK2OSGKEzxdsJnWYpDsBYY4D+BNwLZToOL4ixM9EmU324p+R/DDifgaLbugRC2U2J/4M9DO9EKSbOAhcCQ0L4kQNAWGOBXAW2nwYXVS12yhFzRnTm46eGixKX0QVgB3x3QdhrsDVyZta5ElGz6DuAzoX1JmNEQVsD3BLSdFqcA38vKqISkmbh8znmZXeuEsRBWwM8HtJ0m5wBfDSliSe+UNBe4iZi5xzLMWAicdVLSJoob/H41cEG0AMALUR/8fNwqiiK8qDVjIzA4tIBfo42kFjnmdeAbwDeikZdUiFr7GcC3cH3xXmFM6BeODYHtp80OwBeAJyTNjlarJIak7SWdicudsIjeEi/A2JD9tAHAenorw80m3OjLUly9kbvN7M1ObhC1tuNwCy3PA3ZP2skccW5IAY+guC9y7bIeVxr3YeAVYE3VZ/XPA3ErdadH2x4hnM0gc0IKeArFm8wo8cuCkH3gPQPaLikGQ0IKeJ+AtkuKwfYhBXxIQNslxWBQEAFH+a+6qSlWUlJNsBb4QHpr+KwkHYIJeHoguyXFIpiAPxzIbkmxGOR9HDiKT/29b7slheTVEC1w2foWm00ebQ0MIeDMrx0r6ZpVwDqP9l7yKuCo9sGhPm2WeOXXnu2t9t0CH01xA9hL/K9z9C7gsv9bXIQrBuOTF7wJOCqoeKQveyXeudPMfuvZptcWeBLFXj7U6/wogE2vAp7q0VaJX1bi0oX5xquA26n9VZJPLotqCvpmtZeZuGi59yuUXYgi8howOiq3hqQ1+CsQM8pXC/w+SvEWlR9UxOuZVcBKXwKe6slOiV/WEy7X891m5i0R3VRPdkr88kUz+0Pll2io1FdGoHvAQ260qP+bZqXzkjAsAebU7BuLv5lWPwLGVbMvep6uXuNFYLaZbanZ7yvru4D7wY+A81pEpKQ+a4FjzOzpOsd8rTT/bzP7P/Aj4Hd6sFHihzeBj5jZvQ2O+4o07M8t7UPA7/JgoyR9NgKnmNnSegclVdJf+aA/o1Mp4JJ22AScbGY/aXLOscA7PPiyGZe4G/Aj4EJVdO9BNgAnthAvwN/7cAZYYmYvVn4Z6MHgZg82StLhOeA4M2saqC7pA7hoQx/Mrf7Fh4BDBHmUxOcpYKqZrWx2kqRtgEv8uMSbwILqHT66EKWA88dS2hBvxOfwVyx8oZmtqd7hQ8AdZSAvCcrzwGxgRjvilTQB+OfUvXqLubU7fHQhXvdgo1N+g+vflTHKjjW4aeGL2y1GE4UIXIOrA+KD9cBPa3f6EPCTHmx0yu7ks9DiRiDJcrbPAJcC3zWztR1e+y+4GtG++KmZbZVzwkcXwneugHYYipsS/QpuXj8vLAV+QrzsNy/gRDsNGGVmX+lUvJKm4fq+Prms3s7UV2RIGkM2W+ElZjZD0o7A8biKPxMD+9SKN3DxBmuB04FP0t5E0bPArbh1a8vMrOuhzSg5zUP4LTRzLzDFzFR7wIeAt8EtO8lalXQBh5nZMugvX3UqcDH+oqq64RYz+xD0+zwaNwNWry/6GvA7M1udlHFJ8/GfHuwjZja/3gFfa+KW47e/1C6PAQeY2RuVHZL6cDXYzsJlkc9E4e4aJjcJqEkNSbOB//Bs9nFgrzqhm4C/Yt/3e7LTKROAL1XvMLN1ZnaFmU3BtW4X497Ss8S5Po1JMkl/B/zAp92IrzUSrzckzVR22SKpacYgSUMlXSJpY1hX+9ksabKnf7v3SvpZoO+5Um6ZUkN8tcBLcON4WcSAuZIaBmOb2Voz+wTuJe8q/ObArccA4Li0bi5pmKQTJc3FVRE9Oi1bLfhmq1K83vp3kuYBs3zZ64KngYPN7JlWJ0r6Y+CvgNOA4Wk71oBLzCxWV0LSLsABuCLh44Ax0edo/DVujXgZN8zXNN+wj4mMCjeSbQG/G7hZ0lQz+99mJ5rZk8DnJH0eV+/uU7h4WJ/Pc6shpYYnulmzybj8HJOAg8iGSJvxb63EC35b4F1wg+hZfmgAD+JiAZqKuJbo+30GJ+a0F7HeDJxRHRfbwKe9gBOAs4ERKfuUJH8AJphZyzAEr0NEkm4FZvi02SVdiRhA0s64PMjnkXyM7HPAp83shjb8GEr2Rk/a5Tgzm9fOib4F/EHgFp82Y9C1iCvIzUKeBpxBvNXZq4Dv4f6sthtsk1cBLwGOqDfrVg/fAjbcNOS+Pu3GILaIK0iaBBwFfBT30tTs2T8LPAK8hIt/uLZ6sqVNe3kU8CZgXzN7rN0LQtSJ+zjwY992Y5CYiH0iF6ubxUCqZnzLzD7byQUhXqiuwyVEzgsTgcVyQSx5YmZoBzpkFXBRpxd5F3CUCLk2p1bWmQjcLikXKQIkDcDFcuSJz5vZq51eFCRQRdIQ3MTBziHsx2AlcJSZPRrakWZIOp0wNSu65VfA+7uJeQgyJhu9SX89hO2Y7AHcISmzS5Hk4jouDe1HB7wJnNNtwE7ISYU5uFC5vLEzcKukL0vytR6sLSTNBOaTvdjrZvyjmT3S7cVBY10lHQ7cFtKHmDyNW5b0o1ZBJ2kj6ZO4RiFPlVB/AUyLEy4ZPFhb0rW4API88xzwfeByM3vBp2FJI4Bv45ZF5Ym1uDHfemla2yYLAh6J60rsGNqXBHgDmIcbKlxayWGbBpJ2BS7ABbdnqivTJqeY2TVxbxJcwACSPo1b+VAkNuGKX98GLAMeTqKaTxQ09Angs/grZ5U0c83spCRulBUBDwQeID9TzN3yHLACN028Itp+3ar/HIn2aNw09JEkmxvCN8/gug6vJHGzTAgYQG6JzO3AoNC+eGYTbhaq0crh4bhVx3l6OWvGdDNL7MU9MwIGkHQELnlxr4m4V5hjZn+b5A0zJWDoD7m8kVLEReMK4NykhxsztzrCzBbhEmd0FD5Yklk2A+cDZ6UxVp65FrhCNCW6gLIlzjMvAyc0KgyTBJlrgSuY2S24xYeZDpwpacgK4MA0xQsZFjCAmS3HrSv7VyBsdpaSdnkVN0Y9ycx+l7axzHYhaomG2a7CXzr7ks7YAlwOfMHndHqmW+BqzOweXBKOiykrH2WNn+OSJJ7jOxYkNy1wNZJG4xIs/wXQNHdWSaoswgUSLWx3FXHS5FLAFaJAoL8BzgH6ArvTK6wFrsSltnoitDO5FnCFKFbgfFzG8rwtU8oLK3C5Ka5uNzeFDwoh4AqSBuOCXk6MPvO0MiGLPIabFV0A3Buqm9CMQgm4GrnaF8figuU/SL4juHwhXAjoAuBGM/ufwP60pLACribKVzYLlyvhEMoC5NU8C9yJywB0k5k9H9ifjugJAVcT5UwYjxPyIcCh+K24E5LNwHLgrsrWZjnZzNJzAq6HpFE4MR+Eq5sxgXylI63HGlwf9vHo8z7gvnZy7uaJUsANkLQTbtZvAq7FHh/9PJrs9KfX4oLhn8IJtXp7MYsvXUlTCrhDogybQ3ErJYbjytbWfg7DTbAMqvms/nlbXMjo68CG6PP1Or+/hBNp7bbazDak/X2zzv8DaocFDs5vmOIAAAAASUVORK5CYII='/%3E%3C/defs%3E%3C/svg%3E\")}.wasabee-marker-icon.FarmPortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23f17030'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23f17030'/%3E%3Cuse xlink:href='%23a' x='70' y='120' width='176' height='143'/%3E%3Cpath d='M122.538 112.791c-1.934-12.24 28.787-17.533 17.117.729 0 0 23.934-9.799 15.114 10.82-5.029 24.429-43.717.032-43.957-1.575-21.691-16.796 3.509-30.807 11.726-9.974Z' style='fill:%23fff'/%3E%3Cdefs%3E%3Cimage id='a' width='176' height='143' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACPCAYAAABam1EmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ1klEQVR4nO2dedwV1XnHvw+iKC8WxQVCYhAKDcSdYMEalQgYo2JKjBo1bqVaozVLmyZ2S6JNPs2KbTaN1hibj4qaD6BJRQRJlGjcUbHRmmgScQGXClYQZfn1jzP39Xq5+8ycMzN3vp/PeN93tue5w8/znjnnOc9j5AxJI4GxwGCgL9oGA08Dd5rZ2oDulXjGQjvQCkkG7AscC3wYeF+T07cADwPLgDuAW8xsXepOlpTUImmgpPMl/V7d86ykUyUNCP19SnoISdMkPRpDuLXcJ+ng0N+rpOBI2lPSvASFW8t1kiarbJFLkiYS1sspireaVZKukDRL0pDQ370k50j6kKR1nsRbywZJCyWdKWmb0M+iJGdIOk3SpkDireUBSQeFfiYlOUHSX4ZWbAN+KGn30M+npDXBxoEl7Q/cA2wXyocWrAHONLMFoR0paUwQAUvaEbgf+JMQ9jtgI3C0mS0O7UhJfbwPJ8nNrH2f7IsXYFtgvqQ/De1ISX1CjId+PNryQh9ws6QJoR0p2RqvXQhJ2wG/BfbwaTchHgX2M7MtoR0peQvfLfBJ5FO8AHsDx4d2ouTteGuB5aZvHwXy/Kf4cWBvM9sc2pESh88W+BjyLV6A8cDJoZ3IK5L+LLQPXSFpmFxEWJIsUBTLEH0uSPj+jXgk9PPMI5ImStoo6dTQvrSNpD5J/yBpTcIiuknSuBpb46L9PhgZ6pnmEUmDJT0WPbt1yvqIjqTtJJ0rF/WVNK9IOqaB3WOi42mTn1YkA0j6Ts3zWyFpcGi/tkLSAEknS3oyRfFc38KH61O0XeEqX88070g6ssEz/FQS90/kJU6SSToKeBC4GhiTxH0b8MuYx5NgutyMYkkTJO0KXNng8ElJ2IgtYLn+4GLgv4D9YnvUmgdjHk+CkcA7PNjJLdH/4JcBIxqcMlnS6Lh2YglY0gzgIWBaXEc64DcxjyfFKE928soZwKwW53wsrpGuBCxpG0kXAouA3eI60SEvxjyeFKWAGyBpFPDvbZwaW8ADO71A0ghcP/fwuMa7ZDdgdYvjPigFXAe5GdcrgR3bOH0fSX1xcnd01AJLmgosJ5x4AcbFPJ4UpYDr89fAB9o814D3xDHWtoAlnQfcRuNOuS8mxjyeFMM92ckNksYDX+vwsvfGsdmWgCXNBr7b7vkp8/6Yx5NikCc7uUDSQOAqYPsOL401K9dSkJI+Blwex0jCzFCTmThghic/SgG/nQuAblaupNcCSzoW+DHZSgK4E3C26sRCAGdHx31QCjhC0gHAF7u8/N1xbDcchZA0Hbih2TkBmQlsiaZ0F+Na3dOj/b4oBQxI+iPgOrrXyc5x7NdtWeUS4d2Ky7tbUp+HzOyA0E6EJJptu4Z447lrzKxrEW/VhZA0FjctXIq3OWULDGcRfzJiqGIkW3zbhZIG4f4cDI3pVC/Q0wKWtB/w7QRuZcTQW63yv4m/cdS807MClktMcz3JPYP4ApZ0HG4WpaQ9elLAUb/3UpJNTNPXht1xkg6T9LZx5gHRwTHAFQk61Av0pICB2SS/sLXh+5akkZIWAU8AvwAWStq2cnyAXLKRuZT93k4Zoh7LJyxpH+A7Kdy6bgss6UBc0Z4jqnZPBQ6r/DIA+CpwYApOFR3D36RJcKLVFfPpfKq4HbYScBTs/jNg1zrnf7Tyg0Xdh2E122hgCjApJYeLwnvM7InQTqRN1O9cAqRVKOcEM7uhyt4w4C4aR6q9CAw3Mw00s6eAp+qdFfU19sOJeQruC+yZoON5Z5fQDqRNVXxvmlWe+lvgaCh3Hs3DLHcDdgDWN53+M7ONuDy+9+Oi0ZD0LuAQ4NDoc684nuecwgsYuJAEVk60oA/6Rzh+SFUftwmDaSXgepjZM8C10VbpGx3MW4KeCPTKy82w0A6kiaQzgH/yYGqfSLxfpv0RjsGQQKCOmb0E3BhtyJWtOoi3BD2Z4vajC9sCSzocf2G0x+NWencSjJWMgGsxs9dwEWKLof8F4C6giIEvhRSwXOqnefiLRBxG55GEg8HDCgsz24Ab/C5iStLCdSEkDQduJvvzAjuApyVCZrYc+LoPW54pVAssqQ/XFdwzsCvt4KcFruIi3HRgkRgf2oGkkLQTLgZ8cmhf2sSvgKu6EkVi32gUJtfIFXX8OZCnBNTeW2DM7Je4YPkiMTW0A3GQtAdwB7B/aF86ZED/fzyTRBB0lgiZ5CUW0eqbZcRMLhKIYAJejCuWUhRm5DHVqqS9ceLNa4ahMAI2M5FOSF4oxuIK2OSGKEzxdsJnWYpDsBYY4D+BNwLZToOL4ixM9EmU324p+R/DDifgaLbugRC2U2J/4M9DO9EKSbOAhcCQ0L4kQNAWGOBXAW2nwYXVS12yhFzRnTm46eGixKX0QVgB3x3QdhrsDVyZta5ElGz6DuAzoX1JmNEQVsD3BLSdFqcA38vKqISkmbh8znmZXeuEsRBWwM8HtJ0m5wBfDSliSe+UNBe4iZi5xzLMWAicdVLSJoob/H41cEG0AMALUR/8fNwqiiK8qDVjIzA4tIBfo42kFjnmdeAbwDeikZdUiFr7GcC3cH3xXmFM6BeODYHtp80OwBeAJyTNjlarJIak7SWdicudsIjeEi/A2JD9tAHAenorw80m3OjLUly9kbvN7M1ObhC1tuNwCy3PA3ZP2skccW5IAY+guC9y7bIeVxr3YeAVYE3VZ/XPA3ErdadH2x4hnM0gc0IKeArFm8wo8cuCkH3gPQPaLikGQ0IKeJ+AtkuKwfYhBXxIQNslxWBQEAFH+a+6qSlWUlJNsBb4QHpr+KwkHYIJeHoguyXFIpiAPxzIbkmxGOR9HDiKT/29b7slheTVEC1w2foWm00ebQ0MIeDMrx0r6ZpVwDqP9l7yKuCo9sGhPm2WeOXXnu2t9t0CH01xA9hL/K9z9C7gsv9bXIQrBuOTF7wJOCqoeKQveyXeudPMfuvZptcWeBLFXj7U6/wogE2vAp7q0VaJX1bi0oX5xquA26n9VZJPLotqCvpmtZeZuGi59yuUXYgi8howOiq3hqQ1+CsQM8pXC/w+SvEWlR9UxOuZVcBKXwKe6slOiV/WEy7X891m5i0R3VRPdkr88kUz+0Pll2io1FdGoHvAQ260qP+bZqXzkjAsAebU7BuLv5lWPwLGVbMvep6uXuNFYLaZbanZ7yvru4D7wY+A81pEpKQ+a4FjzOzpOsd8rTT/bzP7P/Aj4Hd6sFHihzeBj5jZvQ2O+4o07M8t7UPA7/JgoyR9NgKnmNnSegclVdJf+aA/o1Mp4JJ22AScbGY/aXLOscA7PPiyGZe4G/Aj4EJVdO9BNgAnthAvwN/7cAZYYmYvVn4Z6MHgZg82StLhOeA4M2saqC7pA7hoQx/Mrf7Fh4BDBHmUxOcpYKqZrWx2kqRtgEv8uMSbwILqHT66EKWA88dS2hBvxOfwVyx8oZmtqd7hQ8AdZSAvCcrzwGxgRjvilTQB+OfUvXqLubU7fHQhXvdgo1N+g+vflTHKjjW4aeGL2y1GE4UIXIOrA+KD9cBPa3f6EPCTHmx0yu7ks9DiRiDJcrbPAJcC3zWztR1e+y+4GtG++KmZbZVzwkcXwneugHYYipsS/QpuXj8vLAV+QrzsNy/gRDsNGGVmX+lUvJKm4fq+Prms3s7UV2RIGkM2W+ElZjZD0o7A8biKPxMD+9SKN3DxBmuB04FP0t5E0bPArbh1a8vMrOuhzSg5zUP4LTRzLzDFzFR7wIeAt8EtO8lalXQBh5nZMugvX3UqcDH+oqq64RYz+xD0+zwaNwNWry/6GvA7M1udlHFJ8/GfHuwjZja/3gFfa+KW47e/1C6PAQeY2RuVHZL6cDXYzsJlkc9E4e4aJjcJqEkNSbOB//Bs9nFgrzqhm4C/Yt/3e7LTKROAL1XvMLN1ZnaFmU3BtW4X497Ss8S5Po1JMkl/B/zAp92IrzUSrzckzVR22SKpacYgSUMlXSJpY1hX+9ksabKnf7v3SvpZoO+5Um6ZUkN8tcBLcON4WcSAuZIaBmOb2Voz+wTuJe8q/ObArccA4Li0bi5pmKQTJc3FVRE9Oi1bLfhmq1K83vp3kuYBs3zZ64KngYPN7JlWJ0r6Y+CvgNOA4Wk71oBLzCxWV0LSLsABuCLh44Ax0edo/DVujXgZN8zXNN+wj4mMCjeSbQG/G7hZ0lQz+99mJ5rZk8DnJH0eV+/uU7h4WJ/Pc6shpYYnulmzybj8HJOAg8iGSJvxb63EC35b4F1wg+hZfmgAD+JiAZqKuJbo+30GJ+a0F7HeDJxRHRfbwKe9gBOAs4ERKfuUJH8AJphZyzAEr0NEkm4FZvi02SVdiRhA0s64PMjnkXyM7HPAp83shjb8GEr2Rk/a5Tgzm9fOib4F/EHgFp82Y9C1iCvIzUKeBpxBvNXZq4Dv4f6sthtsk1cBLwGOqDfrVg/fAjbcNOS+Pu3GILaIK0iaBBwFfBT30tTs2T8LPAK8hIt/uLZ6sqVNe3kU8CZgXzN7rN0LQtSJ+zjwY992Y5CYiH0iF6ubxUCqZnzLzD7byQUhXqiuwyVEzgsTgcVyQSx5YmZoBzpkFXBRpxd5F3CUCLk2p1bWmQjcLikXKQIkDcDFcuSJz5vZq51eFCRQRdIQ3MTBziHsx2AlcJSZPRrakWZIOp0wNSu65VfA+7uJeQgyJhu9SX89hO2Y7AHcISmzS5Hk4jouDe1HB7wJnNNtwE7ISYU5uFC5vLEzcKukL0vytR6sLSTNBOaTvdjrZvyjmT3S7cVBY10lHQ7cFtKHmDyNW5b0o1ZBJ2kj6ZO4RiFPlVB/AUyLEy4ZPFhb0rW4API88xzwfeByM3vBp2FJI4Bv45ZF5Ym1uDHfemla2yYLAh6J60rsGNqXBHgDmIcbKlxayWGbBpJ2BS7ABbdnqivTJqeY2TVxbxJcwACSPo1b+VAkNuGKX98GLAMeTqKaTxQ09Angs/grZ5U0c83spCRulBUBDwQeID9TzN3yHLACN028Itp+3ar/HIn2aNw09JEkmxvCN8/gug6vJHGzTAgYQG6JzO3AoNC+eGYTbhaq0crh4bhVx3l6OWvGdDNL7MU9MwIGkHQELnlxr4m4V5hjZn+b5A0zJWDoD7m8kVLEReMK4NykhxsztzrCzBbhEmd0FD5Yklk2A+cDZ6UxVp65FrhCNCW6gLIlzjMvAyc0KgyTBJlrgSuY2S24xYeZDpwpacgK4MA0xQsZFjCAmS3HrSv7VyBsdpaSdnkVN0Y9ycx+l7axzHYhaomG2a7CXzr7ks7YAlwOfMHndHqmW+BqzOweXBKOiykrH2WNn+OSJJ7jOxYkNy1wNZJG4xIs/wXQNHdWSaoswgUSLWx3FXHS5FLAFaJAoL8BzgH6ArvTK6wFrsSltnoitDO5FnCFKFbgfFzG8rwtU8oLK3C5Ka5uNzeFDwoh4AqSBuOCXk6MPvO0MiGLPIabFV0A3Buqm9CMQgm4GrnaF8figuU/SL4juHwhXAjoAuBGM/ufwP60pLACribKVzYLlyvhEMoC5NU8C9yJywB0k5k9H9ifjugJAVcT5UwYjxPyIcCh+K24E5LNwHLgrsrWZjnZzNJzAq6HpFE4MR+Eq5sxgXylI63HGlwf9vHo8z7gvnZy7uaJUsANkLQTbtZvAq7FHh/9PJrs9KfX4oLhn8IJtXp7MYsvXUlTCrhDogybQ3ErJYbjytbWfg7DTbAMqvms/nlbXMjo68CG6PP1Or+/hBNp7bbazDak/X2zzv8DaocFDs5vmOIAAAAASUVORK5CYII='/%3E%3C/defs%3E%3C/svg%3E\")}.wasabee-marker-icon.FarmPortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23f17030'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23f17030'/%3E%3Cuse xlink:href='%23a' x='70' y='120' width='176' height='143'/%3E%3Cpath d='M122.538 112.791c-1.934-12.24 28.787-17.533 17.117.729 0 0 23.934-9.799 15.114 10.82-5.029 24.429-43.717.032-43.957-1.575-21.691-16.796 3.509-30.807 11.726-9.974Z' style='fill:%23fff'/%3E%3Cdefs%3E%3Cimage id='a' width='176' height='143' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACPCAYAAABam1EmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ1klEQVR4nO2dedwV1XnHvw+iKC8WxQVCYhAKDcSdYMEalQgYo2JKjBo1bqVaozVLmyZ2S6JNPs2KbTaN1hibj4qaD6BJRQRJlGjcUbHRmmgScQGXClYQZfn1jzP39Xq5+8ycMzN3vp/PeN93tue5w8/znjnnOc9j5AxJI4GxwGCgL9oGA08Dd5rZ2oDulXjGQjvQCkkG7AscC3wYeF+T07cADwPLgDuAW8xsXepOlpTUImmgpPMl/V7d86ykUyUNCP19SnoISdMkPRpDuLXcJ+ng0N+rpOBI2lPSvASFW8t1kiarbJFLkiYS1sspireaVZKukDRL0pDQ370k50j6kKR1nsRbywZJCyWdKWmb0M+iJGdIOk3SpkDireUBSQeFfiYlOUHSX4ZWbAN+KGn30M+npDXBxoEl7Q/cA2wXyocWrAHONLMFoR0paUwQAUvaEbgf+JMQ9jtgI3C0mS0O7UhJfbwPJ8nNrH2f7IsXYFtgvqQ/De1ISX1CjId+PNryQh9ws6QJoR0p2RqvXQhJ2wG/BfbwaTchHgX2M7MtoR0peQvfLfBJ5FO8AHsDx4d2ouTteGuB5aZvHwXy/Kf4cWBvM9sc2pESh88W+BjyLV6A8cDJoZ3IK5L+LLQPXSFpmFxEWJIsUBTLEH0uSPj+jXgk9PPMI5ImStoo6dTQvrSNpD5J/yBpTcIiuknSuBpb46L9PhgZ6pnmEUmDJT0WPbt1yvqIjqTtJJ0rF/WVNK9IOqaB3WOi42mTn1YkA0j6Ts3zWyFpcGi/tkLSAEknS3oyRfFc38KH61O0XeEqX88070g6ssEz/FQS90/kJU6SSToKeBC4GhiTxH0b8MuYx5NgutyMYkkTJO0KXNng8ElJ2IgtYLn+4GLgv4D9YnvUmgdjHk+CkcA7PNjJLdH/4JcBIxqcMlnS6Lh2YglY0gzgIWBaXEc64DcxjyfFKE928soZwKwW53wsrpGuBCxpG0kXAouA3eI60SEvxjyeFKWAGyBpFPDvbZwaW8ADO71A0ghcP/fwuMa7ZDdgdYvjPigFXAe5GdcrgR3bOH0fSX1xcnd01AJLmgosJ5x4AcbFPJ4UpYDr89fAB9o814D3xDHWtoAlnQfcRuNOuS8mxjyeFMM92ckNksYDX+vwsvfGsdmWgCXNBr7b7vkp8/6Yx5NikCc7uUDSQOAqYPsOL401K9dSkJI+Blwex0jCzFCTmThghic/SgG/nQuAblaupNcCSzoW+DHZSgK4E3C26sRCAGdHx31QCjhC0gHAF7u8/N1xbDcchZA0Hbih2TkBmQlsiaZ0F+Na3dOj/b4oBQxI+iPgOrrXyc5x7NdtWeUS4d2Ky7tbUp+HzOyA0E6EJJptu4Z447lrzKxrEW/VhZA0FjctXIq3OWULDGcRfzJiqGIkW3zbhZIG4f4cDI3pVC/Q0wKWtB/w7QRuZcTQW63yv4m/cdS807MClktMcz3JPYP4ApZ0HG4WpaQ9elLAUb/3UpJNTNPXht1xkg6T9LZx5gHRwTHAFQk61Av0pICB2SS/sLXh+5akkZIWAU8AvwAWStq2cnyAXLKRuZT93k4Zoh7LJyxpH+A7Kdy6bgss6UBc0Z4jqnZPBQ6r/DIA+CpwYApOFR3D36RJcKLVFfPpfKq4HbYScBTs/jNg1zrnf7Tyg0Xdh2E122hgCjApJYeLwnvM7InQTqRN1O9cAqRVKOcEM7uhyt4w4C4aR6q9CAw3Mw00s6eAp+qdFfU19sOJeQruC+yZoON5Z5fQDqRNVXxvmlWe+lvgaCh3Hs3DLHcDdgDWN53+M7ONuDy+9+Oi0ZD0LuAQ4NDoc684nuecwgsYuJAEVk60oA/6Rzh+SFUftwmDaSXgepjZM8C10VbpGx3MW4KeCPTKy82w0A6kiaQzgH/yYGqfSLxfpv0RjsGQQKCOmb0E3BhtyJWtOoi3BD2Z4vajC9sCSzocf2G0x+NWencSjJWMgGsxs9dwEWKLof8F4C6giIEvhRSwXOqnefiLRBxG55GEg8HDCgsz24Ab/C5iStLCdSEkDQduJvvzAjuApyVCZrYc+LoPW54pVAssqQ/XFdwzsCvt4KcFruIi3HRgkRgf2oGkkLQTLgZ8cmhf2sSvgKu6EkVi32gUJtfIFXX8OZCnBNTeW2DM7Je4YPkiMTW0A3GQtAdwB7B/aF86ZED/fzyTRBB0lgiZ5CUW0eqbZcRMLhKIYAJejCuWUhRm5DHVqqS9ceLNa4ahMAI2M5FOSF4oxuIK2OSGKEzxdsJnWYpDsBYY4D+BNwLZToOL4ixM9EmU324p+R/DDifgaLbugRC2U2J/4M9DO9EKSbOAhcCQ0L4kQNAWGOBXAW2nwYXVS12yhFzRnTm46eGixKX0QVgB3x3QdhrsDVyZta5ElGz6DuAzoX1JmNEQVsD3BLSdFqcA38vKqISkmbh8znmZXeuEsRBWwM8HtJ0m5wBfDSliSe+UNBe4iZi5xzLMWAicdVLSJoob/H41cEG0AMALUR/8fNwqiiK8qDVjIzA4tIBfo42kFjnmdeAbwDeikZdUiFr7GcC3cH3xXmFM6BeODYHtp80OwBeAJyTNjlarJIak7SWdicudsIjeEi/A2JD9tAHAenorw80m3OjLUly9kbvN7M1ObhC1tuNwCy3PA3ZP2skccW5IAY+guC9y7bIeVxr3YeAVYE3VZ/XPA3ErdadH2x4hnM0gc0IKeArFm8wo8cuCkH3gPQPaLikGQ0IKeJ+AtkuKwfYhBXxIQNslxWBQEAFH+a+6qSlWUlJNsBb4QHpr+KwkHYIJeHoguyXFIpiAPxzIbkmxGOR9HDiKT/29b7slheTVEC1w2foWm00ebQ0MIeDMrx0r6ZpVwDqP9l7yKuCo9sGhPm2WeOXXnu2t9t0CH01xA9hL/K9z9C7gsv9bXIQrBuOTF7wJOCqoeKQveyXeudPMfuvZptcWeBLFXj7U6/wogE2vAp7q0VaJX1bi0oX5xquA26n9VZJPLotqCvpmtZeZuGi59yuUXYgi8howOiq3hqQ1+CsQM8pXC/w+SvEWlR9UxOuZVcBKXwKe6slOiV/WEy7X891m5i0R3VRPdkr88kUz+0Pll2io1FdGoHvAQ260qP+bZqXzkjAsAebU7BuLv5lWPwLGVbMvep6uXuNFYLaZbanZ7yvru4D7wY+A81pEpKQ+a4FjzOzpOsd8rTT/bzP7P/Aj4Hd6sFHihzeBj5jZvQ2O+4o07M8t7UPA7/JgoyR9NgKnmNnSegclVdJf+aA/o1Mp4JJ22AScbGY/aXLOscA7PPiyGZe4G/Aj4EJVdO9BNgAnthAvwN/7cAZYYmYvVn4Z6MHgZg82StLhOeA4M2saqC7pA7hoQx/Mrf7Fh4BDBHmUxOcpYKqZrWx2kqRtgEv8uMSbwILqHT66EKWA88dS2hBvxOfwVyx8oZmtqd7hQ8AdZSAvCcrzwGxgRjvilTQB+OfUvXqLubU7fHQhXvdgo1N+g+vflTHKjjW4aeGL2y1GE4UIXIOrA+KD9cBPa3f6EPCTHmx0yu7ks9DiRiDJcrbPAJcC3zWztR1e+y+4GtG++KmZbZVzwkcXwneugHYYipsS/QpuXj8vLAV+QrzsNy/gRDsNGGVmX+lUvJKm4fq+Prms3s7UV2RIGkM2W+ElZjZD0o7A8biKPxMD+9SKN3DxBmuB04FP0t5E0bPArbh1a8vMrOuhzSg5zUP4LTRzLzDFzFR7wIeAt8EtO8lalXQBh5nZMugvX3UqcDH+oqq64RYz+xD0+zwaNwNWry/6GvA7M1udlHFJ8/GfHuwjZja/3gFfa+KW47e/1C6PAQeY2RuVHZL6cDXYzsJlkc9E4e4aJjcJqEkNSbOB//Bs9nFgrzqhm4C/Yt/3e7LTKROAL1XvMLN1ZnaFmU3BtW4X497Ss8S5Po1JMkl/B/zAp92IrzUSrzckzVR22SKpacYgSUMlXSJpY1hX+9ksabKnf7v3SvpZoO+5Um6ZUkN8tcBLcON4WcSAuZIaBmOb2Voz+wTuJe8q/ObArccA4Li0bi5pmKQTJc3FVRE9Oi1bLfhmq1K83vp3kuYBs3zZ64KngYPN7JlWJ0r6Y+CvgNOA4Wk71oBLzCxWV0LSLsABuCLh44Ax0edo/DVujXgZN8zXNN+wj4mMCjeSbQG/G7hZ0lQz+99mJ5rZk8DnJH0eV+/uU7h4WJ/Pc6shpYYnulmzybj8HJOAg8iGSJvxb63EC35b4F1wg+hZfmgAD+JiAZqKuJbo+30GJ+a0F7HeDJxRHRfbwKe9gBOAs4ERKfuUJH8AJphZyzAEr0NEkm4FZvi02SVdiRhA0s64PMjnkXyM7HPAp83shjb8GEr2Rk/a5Tgzm9fOib4F/EHgFp82Y9C1iCvIzUKeBpxBvNXZq4Dv4f6sthtsk1cBLwGOqDfrVg/fAjbcNOS+Pu3GILaIK0iaBBwFfBT30tTs2T8LPAK8hIt/uLZ6sqVNe3kU8CZgXzN7rN0LQtSJ+zjwY992Y5CYiH0iF6ubxUCqZnzLzD7byQUhXqiuwyVEzgsTgcVyQSx5YmZoBzpkFXBRpxd5F3CUCLk2p1bWmQjcLikXKQIkDcDFcuSJz5vZq51eFCRQRdIQ3MTBziHsx2AlcJSZPRrakWZIOp0wNSu65VfA+7uJeQgyJhu9SX89hO2Y7AHcISmzS5Hk4jouDe1HB7wJnNNtwE7ISYU5uFC5vLEzcKukL0vytR6sLSTNBOaTvdjrZvyjmT3S7cVBY10lHQ7cFtKHmDyNW5b0o1ZBJ2kj6ZO4RiFPlVB/AUyLEy4ZPFhb0rW4API88xzwfeByM3vBp2FJI4Bv45ZF5Ym1uDHfemla2yYLAh6J60rsGNqXBHgDmIcbKlxayWGbBpJ2BS7ABbdnqivTJqeY2TVxbxJcwACSPo1b+VAkNuGKX98GLAMeTqKaTxQ09Angs/grZ5U0c83spCRulBUBDwQeID9TzN3yHLACN028Itp+3ar/HIn2aNw09JEkmxvCN8/gug6vJHGzTAgYQG6JzO3AoNC+eGYTbhaq0crh4bhVx3l6OWvGdDNL7MU9MwIGkHQELnlxr4m4V5hjZn+b5A0zJWDoD7m8kVLEReMK4NykhxsztzrCzBbhEmd0FD5Yklk2A+cDZ6UxVp65FrhCNCW6gLIlzjMvAyc0KgyTBJlrgSuY2S24xYeZDpwpacgK4MA0xQsZFjCAmS3HrSv7VyBsdpaSdnkVN0Y9ycx+l7axzHYhaomG2a7CXzr7ks7YAlwOfMHndHqmW+BqzOweXBKOiykrH2WNn+OSJJ7jOxYkNy1wNZJG4xIs/wXQNHdWSaoswgUSLWx3FXHS5FLAFaJAoL8BzgH6ArvTK6wFrsSltnoitDO5FnCFKFbgfFzG8rwtU8oLK3C5Ka5uNzeFDwoh4AqSBuOCXk6MPvO0MiGLPIabFV0A3Buqm9CMQgm4GrnaF8figuU/SL4juHwhXAjoAuBGM/ufwP60pLACribKVzYLlyvhEMoC5NU8C9yJywB0k5k9H9ifjugJAVcT5UwYjxPyIcCh+K24E5LNwHLgrsrWZjnZzNJzAq6HpFE4MR+Eq5sxgXylI63HGlwf9vHo8z7gvnZy7uaJUsANkLQTbtZvAq7FHh/9PJrs9KfX4oLhn8IJtXp7MYsvXUlTCrhDogybQ3ErJYbjytbWfg7DTbAMqvms/nlbXMjo68CG6PP1Or+/hBNp7bbazDak/X2zzv8DaocFDs5vmOIAAAAASUVORK5CYII='/%3E%3C/defs%3E%3C/svg%3E\")}.wasabee-marker-icon.GotoPortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23e235a9'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23e235a9'/%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0ZM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80Z' style='fill:%23fff;fill-rule:nonzero' transform='matrix(.27734 0 0 .27734 106 116)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GotoPortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23e235a9'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23e235a9'/%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0ZM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80Z' style='fill:%23fff;fill-rule:nonzero' transform='matrix(.27734 0 0 .27734 106 116)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GotoPortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23e235a9'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23e235a9'/%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0ZM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80Z' style='fill:%23fff;fill-rule:nonzero' transform='matrix(.27734 0 0 .27734 106 116)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GotoPortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23e235a9'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23e235a9'/%3E%3Cpath d='M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0ZM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80Z' style='fill:%23fff;fill-rule:nonzero' transform='matrix(.27734 0 0 .27734 106 116)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GetKeyPortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GetKeyPortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GetKeyPortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.GetKeyPortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CreateLinkAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230a5d00'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230a5d00'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -160.998 89.266)'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -52.425 .075)'/%3E%3Cpath style='fill:%23fff' d='M94 230h135v9H94z' transform='matrix(.74708 -.61735 1.08552 1.31362 -210.742 -29.006)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CreateLinkAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230a5d00'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230a5d00'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -160.998 89.266)'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -52.425 .075)'/%3E%3Cpath style='fill:%23fff' d='M94 230h135v9H94z' transform='matrix(.74708 -.61735 1.08552 1.31362 -210.742 -29.006)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CreateLinkAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230a5d00'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230a5d00'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -160.998 89.266)'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -52.425 .075)'/%3E%3Cpath style='fill:%23fff' d='M94 230h135v9H94z' transform='matrix(.74708 -.61735 1.08552 1.31362 -210.742 -29.006)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.CreateLinkAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230a5d00'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230a5d00'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -160.998 89.266)'/%3E%3Ccircle cx='97.5' cy='232.5' r='17.5' style='fill:%23fff' transform='matrix(.91706 -.75782 .75782 .91706 -52.425 .075)'/%3E%3Cpath style='fill:%23fff' d='M94 230h135v9H94z' transform='matrix(.74708 -.61735 1.08552 1.31362 -210.742 -29.006)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.MeetAgentPortalMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%236b543d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%236b543d'/%3E%3Cpath d='M157.5 85c18.502 0 33.5 14.998 33.5 33.5 0 18.502-14.998 33.5-33.5 33.5-18.502 0-33.5-14.998-33.5-33.5 0-18.502 14.998-33.5 33.5-33.5ZM157.5 158c24.577 0 44.5 19.923 44.5 44.5v31c0 34.475 1.973 34.5-44.5 34.5-46.332 0-44.5 1.243-44.5-34.5v-31c0-24.577 19.923-44.5 44.5-44.5Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.MeetAgentPortalMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%236b543d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%236b543d'/%3E%3Cpath d='M157.5 85c18.502 0 33.5 14.998 33.5 33.5 0 18.502-14.998 33.5-33.5 33.5-18.502 0-33.5-14.998-33.5-33.5 0-18.502 14.998-33.5 33.5-33.5ZM157.5 158c24.577 0 44.5 19.923 44.5 44.5v31c0 34.475 1.973 34.5-44.5 34.5-46.332 0-44.5 1.243-44.5-34.5v-31c0-24.577 19.923-44.5 44.5-44.5Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.MeetAgentPortalMarker.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%236b543d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%236b543d'/%3E%3Cpath d='M157.5 85c18.502 0 33.5 14.998 33.5 33.5 0 18.502-14.998 33.5-33.5 33.5-18.502 0-33.5-14.998-33.5-33.5 0-18.502 14.998-33.5 33.5-33.5ZM157.5 158c24.577 0 44.5 19.923 44.5 44.5v31c0 34.475 1.973 34.5-44.5 34.5-46.332 0-44.5 1.243-44.5-34.5v-31c0-24.577 19.923-44.5 44.5-44.5Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.MeetAgentPortalMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%236b543d'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%236b543d'/%3E%3Cpath d='M157.5 85c18.502 0 33.5 14.998 33.5 33.5 0 18.502-14.998 33.5-33.5 33.5-18.502 0-33.5-14.998-33.5-33.5 0-18.502 14.998-33.5 33.5-33.5ZM157.5 158c24.577 0 44.5 19.923 44.5 44.5v31c0 34.475 1.973 34.5-44.5 34.5-46.332 0-44.5 1.243-44.5-34.5v-31c0-24.577 19.923-44.5 44.5-44.5Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.OtherPortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233c3c3c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233c3c3c'/%3E%3Cpath d='M230 126 86 186.891 87 194l54 21 21 55 8-1 60-143Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.OtherPortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233c3c3c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233c3c3c'/%3E%3Cpath d='M230 126 86 186.891 87 194l54 21 21 55 8-1 60-143Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.OtherPortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233c3c3c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233c3c3c'/%3E%3Cpath d='M230 126 86 186.891 87 194l54 21 21 55 8-1 60-143Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.OtherPortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233c3c3c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233c3c3c'/%3E%3Cpath d='M230 126 86 186.891 87 194l54 21 21 55 8-1 60-143Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.RechargePortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233dcdff'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233dcdff'/%3E%3Cpath d='M118 109v89h24l-1 81 57-105h-32l34-86-82 21Z' style='fill:%23fff' transform='translate(0 8)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.RechargePortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233dcdff'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233dcdff'/%3E%3Cpath d='M118 109v89h24l-1 81 57-105h-32l34-86-82 21Z' style='fill:%23fff' transform='translate(0 8)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.RechargePortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233dcdff'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233dcdff'/%3E%3Cpath d='M118 109v89h24l-1 81 57-105h-32l34-86-82 21Z' style='fill:%23fff' transform='translate(0 8)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.RechargePortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%233dcdff'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%233dcdff'/%3E%3Cpath d='M118 109v89h24l-1 81 57-105h-32l34-86-82 21Z' style='fill:%23fff' transform='translate(0 8)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UpgradePortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23298566'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23298566'/%3E%3Cpath d='M190 267h-65v-84l-50 10 82.5-115L240 193l-50-10v84Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UpgradePortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23298566'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23298566'/%3E%3Cpath d='M190 267h-65v-84l-50 10 82.5-115L240 193l-50-10v84Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UpgradePortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23298566'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23298566'/%3E%3Cpath d='M190 267h-65v-84l-50 10 82.5-115L240 193l-50-10v84Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UpgradePortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%23298566'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%23298566'/%3E%3Cpath d='M190 267h-65v-84l-50 10 82.5-115L240 193l-50-10v84Z' style='fill:%23fff'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UseVirusPortalAlert{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%238920c3'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%238920c3'/%3E%3Cpath d='m113 207-24 24-3 20 36-35 15.397 15.397 4.93.242 65.382-66.348s10.22 6.78 14.935 2.065S219 155 219 155l-17-19 10-11 12 11 8-9-32-32-9 9 11 12-10 10-18-17c-6.2-4.349-10.056-8.171-14.342-4.312-4.831 4.35 1.936 14.395 2.891 15.763l-65.19 65.19.309 5.175L113 207Z' style='fill:%23fff' transform='translate(6 10)'/%3E%3Cpath d='m176 123 28 27-31 31-26-28 29-30Z' style='fill:%238920c3' transform='translate(-29 46)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(15 2)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(4 13)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UseVirusPortalAlert.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%238920c3'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%238920c3'/%3E%3Cpath d='m113 207-24 24-3 20 36-35 15.397 15.397 4.93.242 65.382-66.348s10.22 6.78 14.935 2.065S219 155 219 155l-17-19 10-11 12 11 8-9-32-32-9 9 11 12-10 10-18-17c-6.2-4.349-10.056-8.171-14.342-4.312-4.831 4.35 1.936 14.395 2.891 15.763l-65.19 65.19.309 5.175L113 207Z' style='fill:%23fff' transform='translate(6 10)'/%3E%3Cpath d='m176 123 28 27-31 31-26-28 29-30Z' style='fill:%238920c3' transform='translate(-29 46)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(15 2)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(4 13)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UseVirusPortalAlert.wasabee-status-acknowledged{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%238920c3'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23ca8b28'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%238920c3'/%3E%3Cpath d='m113 207-24 24-3 20 36-35 15.397 15.397 4.93.242 65.382-66.348s10.22 6.78 14.935 2.065S219 155 219 155l-17-19 10-11 12 11 8-9-32-32-9 9 11 12-10 10-18-17c-6.2-4.349-10.056-8.171-14.342-4.312-4.831 4.35 1.936 14.395 2.891 15.763l-65.19 65.19.309 5.175L113 207Z' style='fill:%23fff' transform='translate(6 10)'/%3E%3Cpath d='m176 123 28 27-31 31-26-28 29-30Z' style='fill:%238920c3' transform='translate(-29 46)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(15 2)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(4 13)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.UseVirusPortalAlert.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%238920c3'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%238920c3'/%3E%3Cpath d='m113 207-24 24-3 20 36-35 15.397 15.397 4.93.242 65.382-66.348s10.22 6.78 14.935 2.065S219 155 219 155l-17-19 10-11 12 11 8-9-32-32-9 9 11 12-10 10-18-17c-6.2-4.349-10.056-8.171-14.342-4.312-4.831 4.35 1.936 14.395 2.891 15.763l-65.19 65.19.309 5.175L113 207Z' style='fill:%23fff' transform='translate(6 10)'/%3E%3Cpath d='m176 123 28 27-31 31-26-28 29-30Z' style='fill:%238920c3' transform='translate(-29 46)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(15 2)'/%3E%3Cpath d='m176 164 7 7-5 5-7-7 5-5Z' style='fill:%238920c3' transform='translate(4 13)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.ExcludeMarker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230d3188'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23f0f0f0'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230d3188'/%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8Zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200Zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(74.339 99.339) scale(.33266)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.ExcludeMarker.wasabee-status-acknowledged,.wasabee-marker-icon.ExcludeMarker.wasabee-status-assigned{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230d3188'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%23c92327'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230d3188'/%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8Zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200Zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(74.339 99.339) scale(.33266)'/%3E%3C/svg%3E\")}.wasabee-marker-icon.ExcludeMarker.wasabee-status-completed{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%230d3188'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%230d3188'/%3E%3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8Zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200Zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(74.339 99.339) scale(.33266)'/%3E%3C/svg%3E\")}.wasabee-defense-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 316 540' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3E%3Cpath d='m0 323 158 92 158-92-158 217L0 323Z' style='fill:%2378b32c'/%3E%3Cpath d='M160 0 1 92v183l158 92 157-92V91L160 0Z' style='fill:%233c3c3c'/%3E%3Cpath d='m40.242 115.042 118.585-69.383 119.007 67.372-.287 138.601-118.195 69.416-118.478-69.711-.632-136.295Z' style='fill:%2378b32c'/%3E%3Cpath d='M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A24.011 24.011 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001ZM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48Z' style='fill:%23fff;fill-rule:nonzero' transform='translate(92 115) scale(.26367)'/%3E%3C/svg%3E\");background-size:cover}.wasabee-anchor-icon{background-size:25px 41px}.wasabee-anchor-icon.wasabee-layer-main{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23dd3d45'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupa{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23f77d07'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupb{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23f3df47'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupc{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23ab9b6b'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupd{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%238546d8'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupe{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%2300d4b7'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-anchor-icon.wasabee-layer-groupf{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 41' style='fill:%23dc3d96'%3E%3Cpath d='m12 41-2-3V18h4v20Z' style='fill:%23b0b0b0'/%3E%3Cpath d='m12 41-2-3V18h2Z' style='fill:silver'/%3E%3Ccircle cx='12' cy='13' r='9'/%3E%3Ccircle cx='12' cy='13' r='7' style='fill:%23fff;fill-opacity:.1'/%3E%3Cpath d='M7 13a5 5 0 0 1 5-5' style='stroke:%23fff;stroke-opacity:.4;fill:none;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E\")}.wasabee-portal-comment,.wasabee-portal-hardness{font-size:smaller;font-weight:lighter;margin-left:12px}.wasabee-portal-hardness a{color:red!important}",""]),e.exports=n},241:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-pane{background:transparent;border:0;height:100%;left:0;overflow:auto;position:absolute;top:0;width:100%}.wasabee-pane.hidden{display:none}.wasabee-pane .wasabee-dialog .header{background-color:rgba(8,48,78,.9);border:1px solid #20a8b1;color:#ffce00;font-size:1.3em;font-weight:700;line-height:1.5em;position:sticky;text-align:center;top:0}.wasabee-pane .wasabee-dialog .content{overflow-y:hidden}.wasabee-pane .wasabee-dialog .buttonset{background-color:rgba(8,48,78,.9);border:1px solid #20a8b1;bottom:0;position:sticky;text-align:right}.wasabee-pane .wasabee-dialog .buttonset button{background-color:rgba(8,48,78,.9);border:1px solid #ffce00;color:#ffce00;margin:2px;min-width:40px;padding:2px 4px}",""]),e.exports=n},397:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-dialog-blockerlist.wasabee-small-screen .ui-dialog-content,.wasabee-dialog-checklist.wasabee-small-screen .ui-dialog-content{padding:0}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:first-child input{width:3em}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:nth-child(3) span{display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;width:5em}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:nth-child(2)>div,.wasabee-dialog-linklist.wasabee-small-screen .wasabee-table td:nth-child(2)>div{grid-column-gap:2px;align-items:center;display:grid;grid-template-columns:auto auto auto}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:nth-child(2) a.wasabee-portal,.wasabee-dialog-linklist.wasabee-small-screen .wasabee-table td:nth-child(2) a.wasabee-portal{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wasabee-dialog-checklist.wasabee-small-screen .wasabee-table td:nth-child(2)>a.wasabee-portal\n.wasabee-dialog-linklist.wasabee-small-screen .wasabee-table td:nth-child(2)>a.wasabee-portal{display:inline-block;vertical-align:bottom;width:calc(100vw - 13em - 24px)}.wasabee-dialog-blockerlist.wasabee-small-screen .wasabee-table a.wasabee-portal{display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;width:40vw}.leaflet-touch li.wasabee-subactions a{width:inherit}",""]),e.exports=n},850:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,".wasabee-buttons{display:block;position:relative;text-align:center;text-decoration:none}.wasabee-buttons .leaflet-bar{list-style:none;padding-left:0}.wasabee-buttons .leaflet-bar>li{position:relative}.leaflet-touch .wasabee-buttons .leaflet-bar>li>a,.wasabee-buttons .leaflet-bar>li>a{border-radius:unset}.wasabee-buttons .leaflet-bar>li>a{border-bottom:1px solid #ccc}.wasabee-buttons .leaflet-bar>li:first-child>a{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-touch .wasabee-buttons .leaflet-bar>li:first-child>a{border-top-left-radius:2px;border-top-right-radius:2px}.wasabee-buttons .leaflet-bar>li:last-child>a{border-bottom:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.leaflet-touch .wasabee-buttons .leaflet-bar>li:last-child>a{border-bottom:none;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.wasabee-actions{display:none;left:26px;list-style:none;margin:0;padding:0;position:absolute;top:0;white-space:nowrap}.leaflet-touch .wasabee-actions{left:30px}.wasabee-buttons.leaflet-control a.active{background-color:#3c9}.wasabee-buttons.leaflet-control a.wasabee-toolbar-quickdelete.active{background-color:#e66}.wasabee-buttons.leaflet-control a.wasabee-toolbar-quickdelete.active.blink{animation:blink 2s infinite}@keyframes blink{50%{background-color:red}}.wasabee-actions li{border-bottom:1px solid transparent;display:block}.wasabee-subactions li{vertical-align:middle}.wasabee-subactions a{background-color:rgba(30,130,76,.66);border-left:1px solid #aaa;color:#fff;min-width:50px;padding-left:8px;padding-right:8px;width:auto}.wasabee-subactions a:hover{background-color:#a0a098;width:auto}.wasabee-subactions li:first-child a{border-left:none}.wasabee-subactions li:last-child a{-webkit-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.wasabee-actions-image{text-align:center;vertical-align:middle}.wasabee-toolbar-wasabee{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 800 600' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:10'%3E%3Cpath d='m693.958 342.221 141.486 33.873-136.558 35.954-4.928-69.827Z' style='fill:%23f2e794' transform='translate(-110 -67)'/%3E%3Cpath d='M554.884 74.903c45.364 16.383 61.546 89.138 36.145 162.503-25.401 73.365-93.848 113.396-128.131 103.174-40.752-12.15-61.546-89.138-36.144-162.503 25.401-73.365 82.767-119.557 128.13-103.174Z' style='fill:%23b6b6b6' transform='translate(-110 -67)'/%3E%3Cpath d='M479.375 188.5c128.751 0 233.125 84.786 233.125 189.375S608.126 567.25 479.375 567.25 246.25 482.464 246.25 377.875 350.624 188.5 479.375 188.5Z' style='fill:%23f2e794' transform='translate(-110 -67)'/%3E%3Cpath d='M716.932 123.894c39.34 28.655 33.999 103.001-11.93 166.058-45.93 63.056-124.039 81.874-154.395 62.289-36.085-23.283-33.999-103.002 11.93-166.058 45.93-63.057 115.055-90.944 154.395-62.289Z' style='fill:%23d6d6d6' transform='translate(-110 -67)'/%3E%3Cpath d='M397.5 364.75c6.213 0 11.25 9.514 11.25 21.25s-5.037 21.25-11.25 21.25-11.25-9.514-11.25-21.25 5.037-21.25 11.25-21.25ZM288.75 356c6.213 0 11.25 9.514 11.25 21.25s-5.037 21.25-11.25 21.25-11.25-9.514-11.25-21.25S282.537 356 288.75 356Z' style='fill:%232b2b21' transform='translate(-110 -67)'/%3E%3Cpath d='M312.505 424.759c3.092 13.713 19.538 54.991 29.407 54.991 9.881-3.814 13.814-30.418 19.335-52.807-32.987 1.55-34.736-.313-48.742-2.184Z' style='fill:%232b2b21;fill-opacity:.6' transform='translate(-110 -67)'/%3E%3C/svg%3E\")}.wasabee-toolbar-wasabee.wasabee-logged-in{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 800 600' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:10'%3E%3Cpath d='m693.958 342.221 141.486 33.873-136.558 35.954-4.928-69.827Z' style='fill:%2333cb99' transform='translate(-110 -67)'/%3E%3Cpath d='M554.884 74.903c45.364 16.383 61.546 89.138 36.145 162.503-25.401 73.365-93.848 113.396-128.131 103.174-40.752-12.15-61.546-89.138-36.144-162.503 25.401-73.365 82.767-119.557 128.13-103.174Z' style='fill:%23b6b6b6' transform='translate(-110 -67)'/%3E%3Cpath d='M479.375 188.5c128.751 0 233.125 84.786 233.125 189.375S608.126 567.25 479.375 567.25 246.25 482.464 246.25 377.875 350.624 188.5 479.375 188.5Z' style='fill:%2333cb99' transform='translate(-110 -67)'/%3E%3Cpath d='M716.932 123.894c39.34 28.655 33.999 103.001-11.93 166.058-45.93 63.056-124.039 81.874-154.395 62.289-36.085-23.283-33.999-103.002 11.93-166.058 45.93-63.057 115.055-90.944 154.395-62.289Z' style='fill:%23d6d6d6' transform='translate(-110 -67)'/%3E%3Cpath d='M397.5 364.75c6.213 0 11.25 9.514 11.25 21.25s-5.037 21.25-11.25 21.25-11.25-9.514-11.25-21.25 5.037-21.25 11.25-21.25ZM288.75 356c6.213 0 11.25 9.514 11.25 21.25s-5.037 21.25-11.25 21.25-11.25-9.514-11.25-21.25S282.537 356 288.75 356Z' style='fill:%2327775b' transform='translate(-110 -67)'/%3E%3Cpath d='M312.505 424.759c3.092 13.713 19.538 54.991 29.407 54.991 9.881-3.814 13.814-30.418 19.335-52.807-32.987 1.55-34.736-.313-48.742-2.184Z' style='fill:%231f3d33;fill-opacity:.6' transform='translate(-110 -67)'/%3E%3Cpath d='m194.107 270.297 78.954 152.659 66.91-72.312-145.864-80.347' style='fill:%231f6d53;stroke:%23203e34;stroke-width:10.42px' transform='translate(-110 -67)'/%3E%3Cpath d='M520.629 305.114 402.867 437.686l-62.896-85.703 177.981-48.208' style='fill:%23206d53;stroke:%23203e34;stroke-width:10.42px' transform='translate(-110 -67)'/%3E%3Cpath d='M198.121 260.923c5.913 0 10.706 4.797 10.706 10.713 0 5.917-4.793 10.713-10.706 10.713-5.912 0-10.705-4.796-10.705-10.713 0-5.916 4.793-10.713 10.705-10.713Z' style='fill:%2307bd81' transform='translate(-110 -67)'/%3E%3Cpath d='M198.121 250.507c-11.663 0-21.122 9.458-21.122 21.129 0 11.672 9.459 21.13 21.122 21.13 11.664 0 21.123-9.458 21.123-21.13 0-11.671-9.459-21.129-21.123-21.129Zm0 10.416c5.913 0 10.706 4.797 10.706 10.713 0 5.917-4.793 10.713-10.706 10.713-5.912 0-10.705-4.796-10.705-10.713 0-5.916 4.793-10.713 10.705-10.713Z' style='fill:%23203e34' transform='translate(-110 -67)'/%3E%3Cpath d='M273.061 413.582c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%2308bd80' transform='translate(-110 -67)'/%3E%3Cpath d='M273.061 403.165c-11.664 0-21.123 9.458-21.123 21.13 0 11.671 9.459 21.129 21.123 21.129 11.663 0 21.122-9.458 21.122-21.129 0-11.672-9.459-21.13-21.122-21.13Zm0 10.417c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%23203e34' transform='translate(-110 -67)'/%3E%3Cpath d='M338.633 343.948c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%2307bd81' transform='translate(-110 -67)'/%3E%3Cpath d='M338.633 333.531c-11.664 0-21.122 9.458-21.122 21.13 0 11.671 9.458 21.129 21.122 21.129 11.663 0 21.122-9.458 21.122-21.129 0-11.672-9.459-21.13-21.122-21.13Zm0 10.417c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%23203e34' transform='translate(-110 -67)'/%3E%3Cpath d='M402.867 429.651c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%2307bd81' transform='translate(-110 -67)'/%3E%3Cpath d='M402.867 419.234c-11.664 0-21.123 9.459-21.123 21.13s9.459 21.129 21.123 21.129c11.663 0 21.122-9.458 21.122-21.129 0-11.671-9.459-21.13-21.122-21.13Zm0 10.417c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%23203e34' transform='translate(-110 -67)'/%3E%3Cpath d='M520.629 293.062c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%2307bd81' transform='translate(-110 -67)'/%3E%3Cpath d='M520.629 282.645c-11.664 0-21.123 9.458-21.123 21.13 0 11.671 9.459 21.129 21.123 21.129 11.663 0 21.122-9.458 21.122-21.129 0-11.672-9.459-21.13-21.122-21.13Zm0 10.417c5.912 0 10.705 4.796 10.705 10.713 0 5.916-4.793 10.713-10.705 10.713-5.913 0-10.706-4.797-10.706-10.713 0-5.917 4.793-10.713 10.706-10.713Z' style='fill:%231f3d33' transform='translate(-110 -67)'/%3E%3C/svg%3E\")}.wasabee-toolbar-op{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 191 152' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='M91 86h135' style='fill:none;stroke:%23000;stroke-width:10px' transform='translate(-48 -61)'/%3E%3Cpath d='M91 86h135' style='fill:none;stroke:%23000;stroke-width:10px' transform='translate(-48 -11)'/%3E%3Cpath d='M91 86h135' style='fill:none;stroke:%23000;stroke-width:10px' transform='translate(-48 39)'/%3E%3Ccircle cx='65' cy='84' r='6' style='stroke:%23000;stroke-opacity:0;stroke-width:10px' transform='translate(-51 -59)'/%3E%3Ccircle cx='65' cy='84' r='6' style='stroke:%23000;stroke-opacity:0;stroke-width:10px' transform='translate(-51 -9)'/%3E%3Ccircle cx='65' cy='84' r='6' style='stroke:%23000;stroke-opacity:0;stroke-width:10px' transform='translate(-51 41)'/%3E%3C/svg%3E\");background-size:60%}.wasabee-toolbar-quickdraw{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%3E%3Cpath d='M0 16 8.079 0 16 16H0Z' style='fill:none;stroke:%23000;stroke-width:.44px' transform='translate(4 5) scale(18.1875)'/%3E%3Cpath d='M8 294 151 66l143 229-284.144-3.959L151 169l141.159 123.051' style='fill:none;stroke:%23000;stroke-width:8.74px' transform='matrix(1 0 0 .82096 0 52.817)'/%3E%3C/svg%3E\");background-size:60%}.wasabee-toolbar-quickdelete{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='m5 7 3 15h10l3-15M5.5 9.5 20 12 6.5 14.5 19 17 7.5 19.5 18 22m2.5-12.5L6 12l13.5 2.5L7 17l11.5 2.5L8 22' fill='none' stroke='%23000'/%3E%3C/svg%3E\");background-size:60%}.wasabee-toolbar-link{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cg style='fill:none;stroke:%23000;stroke-width:2'%3E%3Cpath d='M9 13a4 4 90 1 0 4 4M13 9a4 4 90 1 1 4 4'/%3E%3C/g%3E%3Cpath stroke='%23000' stroke-width='2' stroke-linecap='round' d='m9 17 8-8'/%3E%3Cg style='stroke:%23000;stroke-width:2;stroke-linecap:square'%3E%3Cpath d='M20 18v4M18 20h4'/%3E%3C/g%3E%3C/svg%3E\")}.wasabee-toolbar-marker{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M6 8v6l5 3 5-3V8l-5-3v4a2 2-180 0 1 0 4 2 2-180 0 1 0-4V5'/%3E%3Cpath d='m6 16 5 3 5-3-5 7z'/%3E%3Cg style='stroke:%23000;stroke-width:2;stroke-linecap:square'%3E%3Cpath d='M19 17v4M17 19h4'/%3E%3C/g%3E%3C/svg%3E\")}.wasabee-toolbar-sync{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M11 8h4v4h3l-5 5-5-5h3z'/%3E%3Cpath stroke='%23000' stroke-linecap='round' d='M8 19h10'/%3E%3C/svg%3E\")}.wasabee-toolbar-sync.loading,.wasabee-toolbar-upload.loading{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==)}.wasabee-toolbar-upload{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M8 9a5 5 0 0 0 1 11h8l-2-2h-4v-4H8l5-5 5 5h-3v4l2 2a5 5 0 0 0 1-11A6 8 0 0 0 8 9'/%3E%3C/svg%3E\")}",""]),e.exports=n},868:(e,t,a)=>{var o=a(81),n=a(645)(o);n.push([e.id,'.wasabee-table tr{background:rgba(25,63,95,.75)}.wasabee-table tbody tr:nth-child(odd){background:rgba(8,48,78,.75)}.wasabee-table>thead .sortable:before{content:" ";display:inline-block;float:right;min-width:1em;text-align:right}.wasabee-table{border-collapse:collapse;clear:both;empty-cells:show;width:100%}.wasabee-table td,.wasabee-table th{border-style:solid;border-width:0 1px;padding:3px 4px;text-align:left;vertical-align:baseline}.wasabee-table td:first-child,.wasabee-table th:first-child{border-left-width:0}.wasabee-table td:last-child,.wasabee-table th:last-child{border-right-width:0}.wasabee-table>thead .sortable.asc:before{content:"\\25b2"}.wasabee-table>thead .sortable.desc:before{content:"\\25bc"}.wasabee-table input[type=color]{vertical-align:middle}.wasabee-dialog-agent ul{padding-left:0}.wasabee-dialog-agent li{list-style:none}.wasabee-agent-label a{color:#ffb;font-size:12px;line-height:16px;overflow:hidden;padding:2px;pointer-events:none;text-align:center;text-overflow:ellipsis;text-shadow:1px 1px #000,1px -1px #000,-1px 1px #000,-1px -1px #000,0 0 5px #000;white-space:nowrap}.wasabee-dialog .container{align-items:center}.wasabee-dialog input[type=checkbox]{margin:auto}.wasabee-dialog button.drawb:before{content:"🐝"}.wasabee-dialog-about{max-width:min-content}.wasabee-agent-menu{align-items:center}.wasabee-dialog-auth .content{display:grid}.wasabee-dialog-autodraws div.container{display:grid;grid-template-columns:1fr;padding:4px}.wasabee-dialog-autodraws a{grid-column-end:2;grid-column-start:1}.wasabee-dialog-confirm{align-items:center}.wasabee-dialog-wdkeys div.container{display:grid}.wasabee-dialog-wdkeys div.portal{padding:4px 0 8px}.wasabee-dialog-wdkeys input{padding:4px}.wasabee-dialog-export textarea{height:250px;resize:vertical;width:96%}.wasabee-dialog-import textarea{height:250px;resize:vertical;width:100%}.wasabee-dialog-keyslist .enough{color:#03fe03;font-weight:700}.wasabee-dialog-keyslist .notenough{color:#ffce00;font-weight:700}.wasabee-dialog-manageteam div.container{display:grid;grid-template-columns:1fr 1fr 1fr}.wasabee-dialog-manageteam div.list{grid-column-end:4;grid-column-start:1}.wasabee-dialog-manageteam label{grid-column-end:2;grid-column-start:1}.wasabee-dialog-manageteam input{grid-column-end:3;grid-column-start:2;margin:2px}.wasabee-dialog-manageteam button{grid-column-end:4;grid-column-start:3}.wasabee-dialog-markeradd div.content{align-items:baseline;column-gap:8px;display:grid;grid-template-columns:repeat(2,auto);row-gap:8px}.wasabee-dialog-markeradd div.portal{grid-column:1/span 2}.wasabee-dialog-markeradd div.content button{border:2px solid #daa520;border-radius:35px;cursor:pointer;grid-column:1/span 2;margin:0 25px;padding:4px;text-align:center;text-decoration:underline}.wasabee-dialog-markeradd div.bulk{grid-column:2}.wasabee-dialog-markeradd div.content input{grid-column:1/span 2}.wasabee-dialog-op-settings .ui-tabs-panel{padding-top:12px}.wasabee-dialog-newop div.buttonset{display:grid;grid-template-columns:1fr}.wasabee-dialog-op-settings div.advanced,.wasabee-dialog-op-settings div.topset{align-items:center;display:grid;gap:4px 6px;grid-template-columns:auto auto}.wasabee-dialog-op-settings div.advanced .desc{font-weight:700;grid-column:1/3}.wasabee-dialog-op-settings div.advanced .checkbox{grid-column:1/3}.wasabee-dialog-op-settings div.advanced .checkbox input{margin-right:.5rem;vertical-align:middle}.wasabee-dialog-op-settings div.advanced .import{grid-column:2}.wasabee-dialog-op-settings div.advanced select{width:100%}.wasabee-dialog-op-settings textarea{height:50px;resize:vertical;width:auto}.wasabee-dialog-op-settings p.comment,.wasabee-dialog-op-settings textarea{grid-column-end:3;grid-column-start:1}.wasabee-dialog-op-settings input[type=color]{min-width:100%;-moz-transform:scale(1)}.wasabee-dialog-op-settings div.buttonset{display:grid;grid-template-columns:1fr}.wasabee-dialog-op-settings div.buttonset button{margin:4px;width:100%}.wasabee-dialog-op-settings .wasabee-table .actions{white-space:nowrap}.wasabee-dialog-op-settings .wasabee-table .actions a{padding:.25em}.wasabee-dialog-ops div.container{overflow-y:hidden}.wasabee-dialog-ops .wasabee-table .actions{white-space:nowrap}.wasabee-dialog-ops .wasabee-table .actions a{padding:.25em}.wasabee-dialog-ops .wasabee-table.hideOps .visibility{display:none}.wasabee-dialog-checklist .wasabee-table .actions{white-space:nowrap}.wasabee-dialog-checklist .wasabee-table .actions a{padding:.25em}.wasabee-dialog-checklist .wasabee-table .order input{width:4rem}.wasabee-dialog-perms .add-perm{display:grid;grid-template-columns:repeat(4,auto)}.wasabee-dialog-perms .add-perm select{width:100%}.wasabee-dialog-prompt .container{display:grid}.wasabee-dialog-prompt input,.wasabee-dialog-prompt label{padding:4px}.wasabee-dialog-setcomment .container{display:grid}.wasabee-dialog-setcomment div.desc{padding:4px}.wasabee-dialog-setcomment input{padding:4px;width:96%}.wasabee-dialog-settings div.container>*{display:block;margin:.3em 0;width:100%}.wasabee-dialog-settings div.container>:first-child{border:none;margin:0}.wasabee-dialog-settings label{border-top:1px solid #fff5;padding:.3em 0 0}.wasabee-dialog-settings label.checkbox input{margin-right:.5rem;vertical-align:middle}.wasabee-dialog-trawl div.container{display:grid;grid-template-columns:1fr}.wasabee-dialog-trawl div.container div{display:grid;grid-template-columns:auto auto}.wasabee-dialog-wasabee div.container{display:grid}.wasabee-dialog-wasabee button.sendloc,.wasabee-dialog-wasabee button.server{grid-column-start:1}.wasabee-dialog-skin div.content{display:grid;grid-template-columns:auto auto}.wasabee-dialog-skin div.desc{grid-column:1/span 2}.wasabee-dialog-skin ol.left{margin-right:1em}.wasabee-dialog-skin ol.left,.wasabee-dialog-skin ul.right{border:1px solid #fff;clear:both;padding-left:0}.wasabee-dialog-skin ul.right{list-style-type:none}.wasabee-dialog-skin li{border:1px solid #888;height:1.5em;list-style-position:inside;padding:3px}.wasabee-link-seperator{padding-left:.5em;padding-right:.5em}.CapturePortalMarker{color:#7d7d7d}.LetDecayPortalAlert{color:#000}.DestroyPortalAlert{color:#ce3b37}.FarmPortalMarker{color:#f17030}.GotoPortalMarker{color:#e235a9}.GetKeyPortalMarker{color:#78b32c}.CreateLinkAlert{color:#0a5d00}.MeetAgentPortalMarker{color:#6b553d}.OtherPortalAlert{color:#3c3c3c}.RechargePortalAlert,.UpgradePortalAlert{color:#298566}.UseVirusPortalAlert{color:#400080}.ExcludeMarker{color:#009}.field-count li.empty-field-link div{display:inline;padding-left:1em}.field-count li.inner-link>div{display:inline}.field-count ul{padding-left:1em}.wasabee-dialog-conflict .conflicts{background:#0004;border-collapse:collapse;clear:both;empty-cells:show;width:100%}.wasabee-dialog-conflict .conflicts tr:nth-child(odd){background:#0004}.wasabee-dialog-conflict .conflicts td,.wasabee-dialog-conflict .conflicts th{border-style:solid;border-width:0 1px;padding:3px 4px;text-align:left;vertical-align:baseline}.wasabee-dialog-conflict .conflicts td:first-child,.wasabee-dialog-conflict .conflicts th:first-child{border-left-width:0}.wasabee-dialog-conflict .conflicts td:last-child,.wasabee-dialog-conflict .conflicts th:last-child{border-right-width:0}.wasabee-dialog-conflict .conflicts th:nth-child(2),.wasabee-dialog-conflict .conflicts th:nth-child(3){width:2em}.wasabee-dialog-conflict .strike{padding-right:.5em;text-decoration:line-through red}.wasabee-dialog-conflict .diff-label{padding-right:.5em}#dialog-wasabee-filter{padding:0}#dialog-wasabee-filter .ui-tabs-panel{padding:12px}.wasabee-dialog-filter .tabs .nav{padding-left:12px}.wasabee-dialog-filter .filters,.wasabee-dialog-filter .filters .set-portal-small{grid-gap:.3em .6em;align-items:center;display:grid;grid-template-columns:auto auto}.wasabee-dialog-filter .filters .set-portal-small{grid-template-columns:auto min-content}.wasabee-dialog-filter .filters .apply{grid-column:1/3}.wasabee-dialog-filter .actions{grid-gap:.3em .6em;align-items:center;display:grid;grid-template-columns:auto auto auto}.wasabee-dialog-filter .actions .desc{grid-column:1/4}.wasabee-dialog-filter .filters .desc{grid-column:1/3}.wasabee-dialog-filter label.checkbox input{margin-right:.5rem}input[type=color].hidden-color-picker{border:0;height:0;margin:0;padding:0;visibility:hidden;width:0}',""]),e.exports=n},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a="",o=void 0!==t[5];return t[4]&&(a+="@supports (".concat(t[4],") {")),t[2]&&(a+="@media ".concat(t[2]," {")),o&&(a+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),a+=e(t),o&&(a+="}"),t[2]&&(a+="}"),t[4]&&(a+="}"),a})).join("")},t.i=function(e,a,o,n,i){"string"==typeof e&&(e=[[null,e,void 0]]);var r={};if(o)for(var s=0;s0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=i),a&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=a):d[2]=a),n&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=n):d[4]="".concat(n)),t.push(d))}},t}},81:e=>{"use strict";e.exports=function(e){return e[1]}},171:e=>{e.exports=function(e){return!(!e||"string"==typeof e)&&(e instanceof Array||Array.isArray(e)||e.length>=0&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&"String"!==e.constructor.name))}},158:e=>{e.exports='\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\n'},851:(e,t,a)=>{"use strict";var o=a(171),n=Array.prototype.concat,i=Array.prototype.slice,r=e.exports=function(e){for(var t=[],a=0,r=e.length;a{var o=a(426);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},419:(e,t,a)=>{var o=a(509);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},282:(e,t,a)=>{var o=a(283);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},525:(e,t,a)=>{var o=a(241);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},118:(e,t,a)=>{var o=a(397);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},835:(e,t,a)=>{var o=a(850);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},226:(e,t,a)=>{var o=a(868);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()}},t={};function a(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={id:o,exports:{}};return e[o](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var o in t)a.o(t,o)&&!a.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=a(226),t=a.n(e),o=a(840),n=a.n(o),i=a(835),r=a.n(i),s=a(282),l=a.n(s),c=a(525),d=a.n(c),u=a(118),p=a.n(u),m=a(419),h=a.n(m),g=a(158),f=a.n(g);const E={Deutsch:JSON.parse('{"ABOUT_WASABEE":"Über Wasabee","acknowledged":"Bestätigt","ADD LINK TITLE":"Dialog - Links hinzufügen","ADD MARKER TITLE":"Dialog - Markierung hinzufügen","ADD_AGENT":"Füge Agent hinzu:","ADD_BL":"Füge Portal zur Ankerkette hinzu:","ADD_BULK":"Bulk hinzufügen","ADD_BUTTON_LINKS":"Alle Links auf einmal hinzufügen.","ADD_LINKS":"Füge Links hinzu","ADD_MARKER":"Füge Markierung hinzu","ADD_NEW_OP":"Füge Op hinzu","ADD_SUCC_INSTR":"Erfolgreich hinzugefügt","ADD_ZONE":"Zone hinzufügen","ADD":"Hinzufügen","ADD1":"Ersten Link hinzufügen","ADD2":"Zweiten Link hinzufügen","AGENT_STATS":"Agent Stats","AGENT":"Agent","AGES":"vor langer Zeit","ALREADY_HAS_MARKER":"Dieses Portal hat bereits eine Markierung. Bitte wähle ein anderes Portal.","AMAZ_TEAM_NAME":"Toller Teamname","ANCHOR ASSIGNMENT":"Alle ausgehenden Links zuweisen an:","ANCHOR_GMAP":"Google Map","ANCHOR_PORTAL":"Anker Portal","ANCHOR_PORTAL2":"Anker Portal 2","ANCHOR_PORTAL3":"Anker Portal 3","ANCHOR1":"Anker 1","ANCHOR2":"Anker 2","ANCHOR3":"Anker 3","ANCHORS_AS_BOOKMARKS":"Anker als Lesezeichen","API_KEY":"Rocks API-Schlüssel:","ASS_TO":"Zugewiesen an","ASSIGN LINK PROMPT":"Link zugewiesenen von: {portalName}","ASSIGN MARKER PROMPT":"Markierung zugewiesenen von: {portalName}","ASSIGN OUTBOUND PROMPT":"Alle ausgehenden Links zugewiesenen von: {portalName}","ASSIGN OUTBOUND":"Ordne ausgehende Links zu","ASSIGN":"Zuweisen","ASSIGNED_ONLY_SHORT":"nz","ASSIGNED_ONLY":"Nur zugewiesen","assigned":"Zugewiesen","AUTH INCOMPAT":"Du hast ein Plugin aktiviert welches inkompatibel zu Wasabee ist.","AUTH REQUIRED":"Authorisierung benötigt","AUTH TOKEN REJECTED":"Senden des Autorisierungcodes ist fehlgeschlagen: {error}","AUTH_SELECT_ACCOUNT":"Benutzerkonto auswählen","AUTO_DRAWS":"Auto-draw","AUTODRAWS":"Wasabee Auto-draw Optionen","AUTODRAW_PORTALS_SET":"Portale","autodraw.common.draw_button":"Draw","autodraw.fanfield.result":"Fanfield hat {links} Links und {fields} Felder für {ap} AP gefunden","autodraw.flipflop.result":"Flip flop: hat {count} Links gefunden","autodraw.homogeneous.missing_split":"Konnte {count} Teilungen nicht finden, versuche weniger Tiefe oder eine andere Region","autodraw.homogeneous.order":"Ordnung","autodraw.homogeneous.portals_required":"{count} erforderlich","autodraw.madrid.auto_determined":"Automatisch bestimmt","autodraw.madrid.balanced":"Ausgeglichen","autodraw.madrid.result":"Madrid hat {count} Ebenen gefunden","autodraw.multimax.result":"Multimax hat {count} Ebenen gefunden","autodraw.multimax.result_both_side":"Multimax hat {count1} und {count2} Ebenen gefunden","autodraw.onion.variant":"Option","autodraw.onion.variant.equilateral":"~Gleichseitig","autodraw.onion.variant.grow":"Los!","autodraw.onion.variant.balanced":"Perfekt ausgeglichen","AUTOLOAD_RATE":"Portaldetail-Anfragerate (ms)","AUTOLOAD":"Fehlende Portal-Details automatisch laden","AUTOMARK STOP":"Automatische Markierung gestoppt - Portale nicht vollständig geladen.","AUTOMARK":"Auto-Markieren","BAT_TOAD":"Kampffrösche","BLOCKER LIST TITLE":"Zeige alle Blocker an","BLOCKER TITLE":"Blocker","CANCEL":"Abbrechen","CAPSULE":"Kapsel","CapturePortalMarker":"Capture","CHANGE SERVER PROMPT":"Neuer Wasabee Server","CHANGE SERVER":"Wechsle Server","CHANGE_WAS_SERVER":"Wechsle Wasabee Server","CHECKLIST BUTTON TITLE":"Checkliste Operationen","CHECKLIST BUTTON":"Checliste","CLEAR LINKS":"Links löschen","CLEAR MARKERS":"Markierung aufheben","CLEAR_EVERYTHING":"Lösche Portale/Links/Marker für aktuelle OP","CLEAROPS BUTTON TITLE":"Lösche alle Wasabee Daten","CLEAROPS BUTTON":"Lösche Wasabee Daten","CLEAROPS PROMPT":"Das wird alle Wasabee Daten Löschen. Bei dem nächsten Sync wird alles wiederhergestellt.","CLOSE":"Schließen","COMMENT":"Kommentar","COMPLETED BY":"Abgeschlossen von {agentName}","completed":"Abgeschlossen","CON_DEL":"Bestätige Löschen: {opName}","COUNT":"Anzahl","CREATE_NEW_TEAM":"Erstelle neues Team","CreateLinkAlert":"Link","CUR_USER_INFO":"Aktuelle Nutzer Informationen","D_SHOW_LIST":"Defensive Schlüssel eingeben","DEFAULT OP NAME":"Neue Operation: {date}","DELETE ANCHOR PROMPT":"Möchtest du den Anker mit allen zugewiesenen Links löschen? :","DELETE ANCHOR TITLE":"Anker löschen","DELETE MARKER PROMPT":"Möchtest du die Markierung löschen? :","DELETE MARKER TITLE":"Markierung löschen","DELETE_ANCHOR":"Löschen","DELETE_LINK":"Löschen","DELETE_OP":"Lösche {opName}","DESCRIP_PLACEHOLD":"Beschreibung (optional)","DestroyPortalAlert":"Zerstören","dialog.about.download_mobile_app":"

Wasabee App:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Kommentar für {agentName} einfügen","dialog.auth.ott.button":"Einmal-Token Login","dialog.auth.ott.text":"Holen Sie sich einen Token vom Wasabee Server, dann fügen Sie diesen hier ein","dialog.auth.ott.title":"Einmal-Token","dialog.blockers.clear_automark":"Automarkierung löschen","dialog.clear_all.text":"Möchten Sie {opName} zurücksetzen?","dialog.clear_all.title":"Clear: {opName}","dialog.clear_links.text":"Möchten Sie alle Links von {opName} entfernen?","dialog.clear_links.title":"Links löschen: {opName}","dialog.clear_markers.text":"Möchten Sie alle Markierungen von {opName} entfernen?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Count fields","dialog.checklist.count_fields.no_empty":"Found {fieldCount} fields and no empty field","dialog.checklist.count_fields.with_empty":"Found {fieldCount} fields and {emptyCount} empty field(s) on {linkCount} link(s)","dialog.checklist.count_fields.link_from_inside":"Found {count} links from covered portals","dialog.checklist.count_fields.link_from_inside.covered_at_order":" bei {order} per Link ","dialog.common.color":"Color","dialog.common.commands":"Befehle","dialog.common.commands_short":"Cmds","dialog.common.delete":"Löschen","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Name","dialog.common.off":"Aus","dialog.common.on":"Ein","dialog.common.owner":"Eigentümer","dialog.common.zone_all":"All","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Besuche {url} und drücke den Button, um Live-Updates zu autorisieren. Du musst IITC später neu laden.","dialog.import.url":"Von URL befüllen","dialog.import.success_message":"Import abgeschlossen. {count} Portale gefunden und {faked} gefälscht verwendet. Bitte nutze die Swap-Funktion, um gefälschte Portale zu den echten Portalen am gleichen Ort zu bewegen. Das Einzoomen der \'Laden\'-Portale in der Checkliste kann sie zum Laden zwingen.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"If you leave {teamName} you cannot rejoin unless the owner re-adds you.","dialog.leave_team.title":"Verlassen: {teamName}","dialog.link_list.length":"Länge","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Upload abbrechen","dialog.conflict.conflicts":"Konflikte:","dialog.conflict.local":"Lokale Kopie","dialog.conflict.server":"Server-Kopie","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Zuweisen:","dialog.conflict.prop.comment":"Kommentar:","dialog.conflict.prop.color":"Farbe:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"Von:","dialog.conflict.prop.hardness":"Schwiergkeitsgrad:","dialog.conflict.prop.order":"Reihenfolge:","dialog.conflict.prop.state":"Status:","dialog.conflict.prop.toPortal":"Nach:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Actions","dialog.online_agents.last_seen":"Zuletzt gesehen","dialog.online_agents.title":"Agenten online","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zonen","dialog.ops_list.background_disable":"Disable background","dialog.ops_list.background_enable":"Im Hintergrund anzeigen","dialog.ops_list.download":"{opName} herunterladen","dialog.ops_list.last_fetched":"Zuletzt abgerufen: {date}","dialog.ops_list.local_change":"Local has changed","dialog.ops_list.remote_change":"Remote has changed","dialog.ops_list.toggle_hide":"Ein-/Ausblenden umschalten","dialog.ops_list.unhide_ops":"Alle OPs anzeigen","dialog.remove_agent.text":"Möchten Sie {agentName} aus {teamName} entfernen?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Schwierigkeitsgrad","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"W-D-Schlüssel laden","dialog.team_list.share_wd_keys":"W-D Schlüssel teilen","dialog.team_manage.join_link":"Beitrittslink","dialog.team_manage.join_link.create":"Erzeugen","dialog.team_manage.join_link.revoke":"Widerrufen","dialog.team_members.location":"Standort wird geteilt","dialog.team_members.wd_keys":"W-D Schlüssel teilen","dialog.team_message":"Teamankündigung: „{message}“ von {sender}","dialog.update_warning":"Wasabee ist veraltet. Bitte aktualisiere über deinen Plugin Manager oder gehe zu https://wasabee.rocks","dialog.zone_color.title":"Zonenfarbe","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Farbe","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zonen","DRAW TOOLS FORMAT":"Draw Tools Format","DUPE_OP":"Dupliziere Operation","END_PORT":"Endportal","ExcludeMarker":"Von Auto-Draw/Markieren ausschließen","EXPORT OP TITLE":"Exportiere aktuelle Operation ","EXPORT OP":"Exportiere Op","EXPORT":"Exportieren:","FAKED":"Gefaked: [{portalId}]","FANFIELD":"Fächerfeld!","FANFIELD2":"Fächerfeld","FarmPortalMarker":"Farm","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Findet für einen gegebenen Anker, eine Reihe von sichtbaren Portalen und einer Anzahl von SBUL ein Fächer-Feld, um Portale vom Anker in absteigender Reihenfolge (nach Distanz) anzulinken, um die Suche nach dem nächsten korrekten Schlüssel zu vermeiden.","FLIP_FLOP_INSTRUCTION":"Wähle ein Portal aus, zoome nach genug, um genug Portale zu sehen und klicke auf Zeichnen. Sobald ein Fächer-Feld gefunden wurde, kannst du nach anderen Ankern für einen darauf folgenden Wiederaufbau suchen","FLIP_FLOP_FIND_ANCHORS":"Finde andere Anker","FROM_1-2":"von Basis 1-2","FROM_1-3":"von Basis 1-3","FROM_2-3":"von Basis 2-3","FROM_DEPTH":"von innen heraus","FROM_PORT":"Von Portal","GET DT":"Existierenden DrawTools Draw erhalten","GetKeyPortalMarker":"Schlüssel beziehen","GotoPortalMarker":"Gehe zu","H-GEN_INST":"Portale für das äußere Layer festlegen. Wähle die Anzahl der Aufteilungen. Klicke auf Zeichnen","HF_DEEP_SEARCH":"Ausführliche Suche","HF_DRAW_BUTTON":"Zeichnen","HF_REDRAW_BUTTON":"Neu zeichnen","HG":"Homogenes Feld","HOURS":"vor ({hours} Stunden)","HOW_TO_VIDS":"

Erklärungsvideos:

","IMP_NOPE":"Import Fehlgeschlagen: {error}","IMP_WAS_OP":"Importiere Wasabee Operation","IMPORT_OP_SUCCESS":"Importierte Operation: {opName}. Erfolgreich.","IMPORT_OP_TITLE":"Importierte Op: {date}","IMPORT_OP":"Importiere Operation","IMPOSSIBLE":"Unmöglich","INGNAME_GID":"Ingress name oder GoogleID","INPUT_DT_KEY_COUNT":"Eingabe defensiver Schlüssel","INVALID REQUEST":"Ungültige Anfrage","IOS NEED FAKE UA":"Du musst \'Custom UserAgent for Webviews\' in den IITC-Mobile Einstellungen aktivieren der Login wird fehlgeschlagen","KEY_LIST2":"Schlüsselliste: {opName}","KEYS":"Schlüssel","KNOWN_BLOCK":"Bekannte Blocker: {opName}","LA DESC":"Ausgehend von der Anzahl und Typ von Link-Amps könnte ein niedrigeres Portallevel ausreichen","LA":"L8+ einige LA","LANG":"Sprache","LEAVE":"Verlassen","LetDecayPortalAlert":"Decayen lassen","LINK ASSIGNMENT":"Link zuweisen an:","LINK STATE PROMPT":"Linkstatus","LINK STATE":"Linkstatus festlegen:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Portale laden","LOADING":"[laden]","LOADING1":"Lade: [{portalGuid}]","LOC_PROC":"Standort verarbeitet","LOCATION SUB":"Standort registriert","LOCFRMSER":" (lokal und vom Server)","LOG IN":"Einloggen","LOG_OUT":"Ausloggen","MADRID_SET_1":"Wähle die Region für den Baselink-Anker 2 zu Anker 3","MADRID_SET_2":"Wähle die Region für den Baselink-Anker 3 zu Anker 1","MADRID_SET_3":"Wähle die Region für den Baselink-Anker 1 zu Anker 2","MADRID_TITLE":"Madrid Protokoll","MADRID_WAS_TAKEN":"Madrid Protokoll","MADRID":"Zeichnen","MANAGE_TEAM":"Verwalten {teamName}","MANAGE":"Verwalten","MARKER ASSIGNMENT":"Marker zuweisen an:","MARKER LIST TITLE":"Liste der Markierungen","MARKER LIST":"Markierungen","MARKER STATE PROMPT":"Marker Status","MARKER STATE":"Marker-Status setzen:","MARKER_LIST":"Liste Makerierungen: {opName}","MARKERS BUTTON TITLE":"Markierungen","MAX_SPLITS":"Max. Aufteilungen","MAX":"Fächerfeld","MeetAgentPortalMarker":"Treffe Agenten","MERGE ON UPDATE":"Beim Update zusammenführen","MERGE_CHANGES_LOCAL":"Lokale Änderungen","MERGE_CHANGES_MERGE":"Ergebnis zusammenführen","MERGE_CHANGES_REMOTE":"Änderungen Dritter","MERGE_LOCAL":"Lokal speichern","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, replace the local version with the server version, or cancel?","MERGE_REBASE":"Rebase","MERGE_REPLACE":"Replace","MERGE_TITLE":"Lokal&Remote-OP zusammenführen","MIN_SRC_PORT_LVL":"Minimaler benötigter Level im Ausgangsportal","MINUTES":"vor ({minutes} Minuten)","MM":"Maximale Feldanzahl","MM_BOTH_SIDE":"Benutze beide Basisseiten","MM_INSERT_ORDER":"Am Ende einfügen","MM_SET_ALL_PORTALS":"Alle sichtbaren Portale","MM_SET_ALL_KEYS":"All GetKey Markers","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Spine","MULTI_M_TITLE":"Draw Max Layers","MULTI_M":"Maximale Feldanzahl","MUST_NOT_BE_EMPTY":"Darf nicht leer sein.","MY_CAP_ID":"Kapsel ID","MY_COUNT":"Meine Anzahl","NAME_REQ":"Name benötigt","NAME":"Name:","NEW_OP":"Neue Operation","NEW_TEAM_NAME":"Neuer Teamname","NEW_TEAM":"New Team","NEW_WAS_SERVER":"Neuer Wasabee Server","NEWOP BUTTON TITLE":"Neue Operation erstellen","NEWOP BUTTON":"Neue Op","NO_DT_ITEMS":"Keine DrawTools Daten erkannt","NO_LABEL":"No label set","NO_STOCK_INTEL":"Wasabee unterstützt keine Standard Intel imports","NO_TITLE":"No title set","NO LONGER AVAILABLE":"Ressource vom Server entfernt: {error}","NO LONGER AVAILABLE SHORT":"Ressource vom Server entfernt","NOT LOGGED IN SHORT":"Nicht eingeloggt.","NOT LOGGED IN":"Nicht eingeloggt: {error}","NOT_LOADED":"Nicht vollständig geladen - bitte erneut probieren.","NOT_SET":"nicht gesetzt","NTNAME":"Name","OK":"OK","ON_HAND":"Verfügbar","ONION_WAS_TAKEN":"Zwiebel","ONION":"Zeichnen","ONLY_DT_IMP":" (nur für DrawTools imports)","OP DELETED":"Operation vom Server entfernt: {opID}","OP PERM DENIED":"Keine Berechtigung für Operation: {opID}","OP_CHECKLIST":"Operation Checkliste: {opName}","OP_NAME_UNSET":"Operationsname ist leer.","OP_PERMS":"OP-Berechtigungen","OP_SETTINGS_BUTTON":"OP ⚙","OP_SETTINGS_TITLE":"Operationseinstellungen","OPEN_REQUEST":"[öffne Anfrage]","OPER_COLOR":"Operation Color:","OPER_NAME":"Operation Name:","OPERATIONS":"Operationen","OPS BUTTON TITLE":"Operationen","OPS BUTTON":"Ops","ORDER":"Reihenfolge","OtherPortalAlert":"Sonstiges","PASTE_INSTRUCT":"Füge einen Wasabee Drawtools export hier ein.\\n\\nWasabee kann nicht mit dem Standard intel format umgehen.\\n\\nEs gibt einen Experimentellen Import vom IITC-DrawTools format.\\n\\n Vor dem Importieren bitte sicherstellen das alles geladen ist und die IITC es zwischengespeichert hat. Jedes nicht zwischengespeicherte Portal wird verfälscht. \\n\\nDu musst die \'Wechsel\' Funktion verwenden um die verfälschten Portale zu korrigieren. (Sie sollten bereits an der richtigen Position sein - aber dem falschen Portal zugeordnet).","pending":"Ausstehend","PERM DENIED":"Keine Berechtigung: {error}","PERM DENIED SHORT":"Keine Berechtigung","PERMS":"{opName} Berechtigungen","PLEASE_SELECT_PORTAL":"Bitte wähle ein Portal","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Schlüssel: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Status setzen","PORTAL KEY LIST":"Schlüsselliste für Portal {portalName}","PORTAL_COUNT":"{count} Portale","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Klicken, um die nächste Linkfarbe zu ändern","QD BUTTON END":"Klicken um das Feld zeichnen zu beenden","QD BUTTON TOGGLE MODE":"Klicken, um den Zeichenmodus zu ändern","QD CHANGE COLOR":"Farbe ändern","QD END":"Ende","QD TITLE":"Schnelle Layer Zeichnung","QD TOGGLE MODE":"Modus ändern","QDBASE":"Basis Link","QDCONT":"Klicke auf ein Portal der Kette.","QDNEXT":"Klicke auf das zweite Ankerportal.","QDSTART":"Klicke auf das erste Ankerportal.","READ_SHORT":"RO","READ":"lesen","RechargePortalAlert":"Aufladen","REFERENCE_TIME":"Reference Time:","REM_LOC_CP":"Lokale Kopie von {opName} entfernen","REMOVE_TEAM_CONFIRM_LABEL":"Möchtest du {teamName} permanent vom Server entfernen?","REMOVE_TEAM_CONFIRM_TITLE":"Entferne Team {teamName}","REMOVE_TEAM":"Team entfernen:","REMOVE":"Entfernen","RENAME_TEAM":"Team umbenennen:","RENAME":"Umbenennen","REQUIRED":"Benötigt","RESET":"Reset","REVERSE":"Umkehren","ROCKS_COM":"enl.rocks community:","ROLE":"Rolle","SAVELINKS TITLE":"Links speichern","SAVELINKS_DRAW":"Links speichern","SAVELINKS":"Links speichern","SECONDS":"vor ({seconds} Sekunden)","SEL_SB_ANCHOR":"Wähle einen Anker, Zomme in das Areal und füge es zum Starburst hinzu.","SEL_SB_ANCHOR2":"Zoomen Sie heraus. Stellen Sie sicher, dass Portale alle geladen sind, und klicken Sie dann auf zeichnen.","SEL_SL_ANCHOR":"Select the portal to save the links of. Click save links button and look at checklist.","SEL_SRC_ANC2":"Lege Quelle und Anker 2 fest","SEL_SRC_PORT":"Wähle ein Quellportal","SELECT PORTAL":"Portal zum senden auswählen","SELECT_FAN_PORTALS":"Wähle ein Ankerportal, wähle ein Startportal und ein Endportal, danach zoome in die Gegend des Fächers. Warte bis alle Portale geladen sind. Drücke anschließend den \'Fächerfeld\' Knopf.","SELECT_FAN_PORTALS2":"Warten Sie, bis alle Portale geladen wurden, und klicken Sie dann auf Zeichen.","SELECT_INSTRUCTIONS":"Wähle zwei Ankerportale. Zoome in die Gegend der Portalkette - warte bis die Portale geladen sind und drücke den \'Maximale Feldanzahl\' Knopf.","SELECT_ONION_PORTALS":"Layers build from the inside out. Zoom in to center and select starting portal, then zoom out to area.","SELF SWAP":"Du kannst das Portal nicht mit sich selbst tauschen - Wähle ein anderes.","SEND ANALYTICS":"Anonymisierte Analysedaten senden","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Select target recipient","SEND TARGET CONFIRM":"Möchtest du {portalName} an {agent} senden?","SEND TARGET":"Sende Ziel","SEND_LOC":"Sende Standort","SET_3_PORT":"Bitte wähle zuerst drei Portale!","SET_COMMENT":"Füge Kommentar hinzu","SET_LCOMMENT":"Setze Kommentar für Link:","SET_LINK_COMMENT":"Set comment for link:","SET_LINKS_ZONES":"Set Links to Zones","SET_MARKER_COMMENT":"Set comment for marker on:","SET_MARKER_TYPE_TITLE":"Markierungstyp ändern","SET_MARKERS_ZONES":"Set Markers to Zones","SET_MCOMMENT":"Setze Kommentar für Markierung: {portalName}","SET_NEW_OP":"Bitte gebe einen neuen Operationnamen ein","SET_PCOMMENT":"Setze Kommentar für Portal: {portalName}","SET_PORT_COMMENT":"Set comment for portal:","SET_PORTAL_COMMENT":"Portalkommentar festlegen","SET":"setzen","SETTINGS_TOOLBOX":"Wasabee-Einstellungen","SETTINGS_TITLE":"Erweiterte Einstellungen","SKINS_AVAILABLE":"Es gibt {count} verfügbare Skins.","SKINS_BUTTON":"Skins konfigurieren","SKINS_DESCRIPTION":"Verfügbare Skins befinden sich in der rechten Spalte. Verschieben Sie Skins, die Sie verwenden möchten, auf die linke Spalte.","SKINS_MANAGE_TITLE":"Skins verwalten","SKIP_CONFIRM_ALWAYS":"Nie nachfragen (mit Vorsicht zu verwenden)","SKIP_CONFIRM_ENTITY":"Nur nach Team/Op fragen","SKIP_CONFIRM_NEVER":"Immer nachfragen","SKIP_CONFIRM":"Bestätigung überspringen","SOURCE_PORT":"Quellportal","STARBURST TITLE":"Starburst ","STARBURST_DRAW":"Zeichnen","STARBURST":"Linkstern","START_PORT":"Startportal","STATE":"Status","SUPPORT_INSTRUCT":"Für Hilfe trete bitte der Telegram Gruppe bei The Wasabee User Telegram Channel ","SWAP PROMPT":"Möchtest du tauschen?:","SWAP TITLE":"Portale tauschen","SWAP WITH":" mit ","SWAP":"Wechseln","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Download abgeschlossen
Klicken Sie HIER für Hinweise, Tipps und Dokumentation.","SYNC":"Download verfügbarer Operationen","TARGET SENT":"Ziel gesendet","TEAM STATE":"Standort teilen","TEAM_CREATED":"Team {teamName} erstellt.","TEAM_NAME":"Team-Name","TEAM":"Team","TEAMS BUTTON TITLE":"Auflistung Wasabee Teams","TEAMS BUTTON":"Teams","TO_PORT":"zu Portal","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Übernehmen","toolbar.quick_delete.apply.title":"Ausgewählte Links/Marker löschen","toolbar.quick_delete.cancel.text":"Abbrechen","toolbar.quick_delete.cancel.title":"Abbrechen","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stoppen","toolbar.quick_delete.stop.title":"Löschmodus beenden","toolbar.quick_delete.title":"Schnell-Löschen","toolbar.quick_delete.tooltip.toggle_mode":"Auf Objekte klicken um diese zur Löschung zu markieren","toolbar.quick_delete.tooltip.quick_mode":"Klicken Sie auf Objekte um diese sofort zu löschen","toolbar.quick_draw.tooltip.star_mode.anchor":"Wählen Sie den Linkstern-Anker","toolbar.quick_draw.tooltip.star_mode.portal":"Ein Portal auswählen","toolbar.quick_draw.tooltip.single_mode.first":"Erstes Portal anklicken","toolbar.quick_draw.tooltip.single_mode.next":"Nächstes Portal anklicken","toolbar.quick_draw.tooltip.portal_fail":"Portaldaten nicht geladen, bitte versuchen Sie es erneut","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Einstellungen","toolbox.teammates":"Teammitglieder online","TRAWL SKIP TILES":"Trawl Skip Tiles","TRAWL TITLE":"Trawl Lanes","TRAWL WARNING":"Dies wird die Daten alle Quadranten unter allen gezeichneten Links laden. Dies ist ein langsamer Prozess.","TRAWL_AUTOMARK":"Blocker nach Suche automatisch markieren","TRAWL_BULK_LOAD_WARNING":"Diese Methode lädt die Daten der Quadranten so schnell wie möglich. Die Verwendung erfolgt auf eigene Gefahr.","TRAWL_BULK_LOAD":"Bulk Load Tile Data","TRAWL_CLEAR_MARKERS":"Clear virus/destroy markers before trawling","TRAWL_REMAINING":"Noch {count} Quadranten","TRAWL":"Suche nach Blockern","TRAWLING":"Suche die Linkschneisen nach Blockern ab, schließen Sie diesen Dialog um abzubrechen","TYPE":"Typ","UNASSIGNED":"Nicht zugewiesenen","UNKNOWN":"Unbekannt","UPDATE HOVER":"UPDATE {opName} auf dem Server","UPDATE PERM DENIED":"You do not have permission to update","UPDATE_CONFLICT_DESC":"The OP has been modified on server since last sync. Do you want to replace the server version by the current one?","UPDATE_CONFLICT_TITLE":"Konflikt mit Server gefunden","UPDATE_COUNT":"Aktualisiere Anzahl","UPDATED":"Erfolgreich aktualisiert","UpgradePortalAlert":"Upgrade","UPLOAD BUTTON HOVER":"UPLOAD {opName} (aktuell nicht auf dem Server)","UPLOADED":"Erfolgreich hochgeladen","USE PANES ON MOBILE":"Use panes (need reload)","USE_VALID_NAME":"Bitte verwende einen gültigen Operationsnamen","UseVirusPortalAlert":"Virus benutzen","VRLA DESC":"Ausgehend von der Anzahl und Typ von Link-Amps könnte ein niedrigeres Portallevel ausreichen","VRLA":"L8+ einige VRLA","WASABEE BUTTON TITLE":"Wasabee: Es ist grün und bringt Schlümpfe zum heulen.","WASABEE_D_LIST":"Eingabe defensiver Schlüssel","WD BUTTON TITLE":"Speicher Verteidigungs Schlüssel","WD BUTTON":"W-D Schlüssel","WRITE_SHORT":"RW","WRITE":"schreiben","WSERVER":"Server: {url}","YESNO_DEL":"Bist du dir sicher das du {opName} löschen willst?","ZONE_DRAW":"Click to set the zone boundaries","ZONE":"Zoniert","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Markierungen"}}'),Espanol:JSON.parse('{"ABOUT_WASABEE":"Acerca de Wasabee","acknowledged":"Recibido","ADD LINK TITLE":"Añadir enlaces","ADD MARKER TITLE":"Texto de Añadir Marcadores","ADD_AGENT":"Añadir agente:","ADD_BL":"Añadir enlaces anidados:","ADD_BULK":"Añadir masivamente","ADD_BUTTON_LINKS":"Añadir todos los enlaces a la vez.","ADD_LINKS":"Añadir enlaces","ADD_MARKER":"Añadir marcador","ADD_NEW_OP":"Añadir nueva Op","ADD_SUCC_INSTR":"Agente añadido correctamente","ADD_ZONE":"Añadir Zona","ADD":"Agregar","ADD1":"Añadir primer enlace","ADD2":"Añadir segundo enlace","AGENT_STATS":"Estadísticas de agente","AGENT":"Agente","AGES":"(Hace demasiado tiempo)","ALREADY_HAS_MARKER":"Este portal ya tiene un marcador. Elige un portal diferente.","AMAZ_TEAM_NAME":"Excelente nombre de equipo","ANCHOR ASSIGNMENT":"Assign all outbound links to:","ANCHOR_GMAP":"Google Map","ANCHOR_PORTAL":"Portal Ancla","ANCHOR_PORTAL2":"Portal Ancla 2","ANCHOR_PORTAL3":"Portal Ancla 3","ANCHOR1":"Ancla 1","ANCHOR2":"Ancla 2","ANCHOR3":"Ancla 3","ANCHORS_AS_BOOKMARKS":"Anclas a Marcadores","API_KEY":"Rocks API key:","ASS_TO":"Asignado A","ASSIGN LINK PROMPT":"Asignar link de {portalName}","ASSIGN MARKER PROMPT":"Asignar marcador de {portalName}","ASSIGN OUTBOUND PROMPT":"Asignar todos los links de salida de {portalName}","ASSIGN OUTBOUND":"Asignar Links de salida","ASSIGN":"Asignar","ASSIGNED_ONLY_SHORT":"SA","ASSIGNED_ONLY":"Sólo asignados","assigned":"Asignado","AUTH INCOMPAT":"Has activado un plugin en TamperMonkey que es incompatible con Wasabee","AUTH REQUIRED":"Autenticación Requerida","AUTH TOKEN REJECTED":"Envío de token de autorización al servidor rechazado: {error}","AUTH_SELECT_ACCOUNT":"Seleccionar cuenta","AUTO_DRAWS":"Autodibujar","AUTODRAWS":"Opciones de dibujo automático de Wasabee","AUTODRAW_PORTALS_SET":"Portales","autodraw.common.draw_button":"Dibujar","autodraw.fanfield.result":"Fanfield ha encontrado {links} enlaces y {fields} campos para {ap} AP","autodraw.flipflop.result":"Flip flop: encontró {count} enlaces","autodraw.homogeneous.missing_split":"Imposible encontrar {count} divisiones, prueba menos nivel o una región diferente","autodraw.homogeneous.order":"Orden","autodraw.homogeneous.portals_required":"{count} requeridos","autodraw.madrid.auto_determined":"Auto-determinado","autodraw.madrid.balanced":"Equilibrado","autodraw.madrid.result":"Madrid ha encontrado {count} capas","autodraw.multimax.result":"Multimax ha encontrado {count} capas","autodraw.multimax.result_both_side":"Multimax encontró {count1} y {count2} capas","autodraw.onion.variant":"Opción","autodraw.onion.variant.equilateral":"~Equilátero","autodraw.onion.variant.grow":"Permitir que crezca","autodraw.onion.variant.balanced":"Equilibrio perfecto","AUTOLOAD_RATE":"Tasa de solicitud de detalles de portales (ms)","AUTOLOAD":"Cargar automáticamente los detalles del portal faltante","AUTOMARK STOP":"El Marcado-Automático se detuvo debido a que los portales no estaban cargado","AUTOMARK":"Automarcar","BAT_TOAD":"Sapitos de Batalla","BLOCKER LIST TITLE":"Mostrar todos los bloqueos","BLOCKER TITLE":"Bloqueos","CANCEL":"Cancelar","CAPSULE":"Cápsula","CapturePortalMarker":"Capturar","CHANGE SERVER PROMPT":"Nuevo Servidor Wasabee","CHANGE SERVER":"Cambiar Servidor","CHANGE_WAS_SERVER":"Cambiar Servidor de Wasabee","CHECKLIST BUTTON TITLE":"Lista de Verificación de la Operación","CHECKLIST BUTTON":"Lista de Verificación","CLEAR LINKS":"Borrar Enlaces","CLEAR MARKERS":"Borrar marcadores","CLEAR_EVERYTHING":"Borrar Portales/Links/Marcadores","CLEAROPS BUTTON TITLE":"Borrar TODOS los Datos de Wasabee","CLEAROPS BUTTON":"Borrar Datos de Wasabee","CLEAROPS PROMPT":"Esta opción borrará todas las OPS y datos relacionados a Wasabee. Todo será restaurado desde el servidor en la próxima sincronización.","CLOSE":"Cerrar","COMMENT":"Comentario","COMPLETED BY":"Completado por {agentName}","completed":"Completo","CON_DEL":"Confirmar Borrado {opName}","COUNT":"Contar","CREATE_NEW_TEAM":"Crear Nuevo Equipo","CreateLinkAlert":"Linkear","CUR_USER_INFO":"Información Actual de Usuario","D_SHOW_LIST":"Ingresar Llaves de Defensa","DEFAULT OP NAME":"Nueva Op: {date}","DELETE ANCHOR PROMPT":"Quisieras borrar esta ancla y todos los links asociados","DELETE ANCHOR TITLE":"Borrar Ancla","DELETE MARKER PROMPT":"Quisieras borrar este marcador","DELETE MARKER TITLE":"Borrar Marcador","DELETE_ANCHOR":"Borrar","DELETE_LINK":"Borrar","DELETE_OP":"Borrar {opName}","DESCRIP_PLACEHOLD":"Descripción (opcional)","DestroyPortalAlert":"Destruir","dialog.about.download_mobile_app":"

Aplicación Wasabee:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Establecer comentario para {agentName}","dialog.auth.ott.button":"Inicio de sesión con token de un único uso","dialog.auth.ott.text":"Obtén un token en el Servidor Wasabee y pégalo aquí después","dialog.auth.ott.title":"Token de un sólo uso","dialog.blockers.clear_automark":"Limpiar Automarcado","dialog.clear_all.text":"¿Quieres reiniciar {opName}?","dialog.clear_all.title":"Limpiar: {opName}","dialog.clear_links.text":"¿Quieres eliminar todos los enlaces de {opName}?","dialog.clear_links.title":"Eliminar enlaces: {opName}","dialog.clear_markers.text":"¿Quieres eliminar todos los marcadores de {opName}?","dialog.clear_markers.title":"Eliminar marcadores: {opName}","dialog.checklist.count_fields":"Contar campos","dialog.checklist.count_fields.no_empty":"Se encontraron {fieldCount} campos y ningún campo vacío","dialog.checklist.count_fields.with_empty":"Se encontraron {fieldCount} campos y {emptyCount} campo(s) vacío(s) con {linkCount} enlace(s)","dialog.checklist.count_fields.link_from_inside":"Se han encontrado {count} enlaces desde portales cubiertos","dialog.checklist.count_fields.link_from_inside.covered_at_order":" en {order} por el enlace ","dialog.common.color":"Color","dialog.common.commands":"Acciones","dialog.common.commands_short":"Acns","dialog.common.delete":"Borrar","dialog.common.links":"Enlaces","dialog.common.markers":"Marcadores","dialog.common.name":"Nombre","dialog.common.off":"Desactivado","dialog.common.on":"Activado","dialog.common.owner":"Propietario","dialog.common.zone_all":"Todas","dialog.filter.actions.description":"Aplicar un cambio a todas las tareas visibles","dialog.filter.actions.delete_visible":"Borrar","dialog.filter.actions.delete_hidden":"Borrar las demás tareas","dialog.filter.actions.shift.label":"Desplazamiento","dialog.filter.actions.shift.button":"Cambiar","dialog.filter.actions.title":"Acciones","dialog.filter.filters.apply":"Aplicar filtros","dialog.filter.filters.description":"Seleccione las propiedades para filtrar las tareas que desea ver y cambiar.","dialog.filter.filters.field.task":"Tarea","dialog.filter.filters.field.min_order":"Orden mínimo","dialog.filter.filters.field.max_order":"Orden máximo","dialog.filter.filters.title":"Filtros","dialog.filter.title":"Filtros y acciones","dialog.firebase.setup":"Visita {url} y pulsa el botón para autorizar las actualizaciones en vivo. Necesitarás recargar IITC después.","dialog.import.url":"Importar desde URL","dialog.import.success_message":"Importación completada. Se encontraron {count} portales y se usaron {faked} portales falsos. Utilice la función de intercambio para mover portales falsos a los portales reales en la misma ubicación. Acercar el zoom en los portales \'Cargando\' de la lista de verificación podría conseguir que se carguen.","dialog.keys.update_error":"El portal no está en la op todavía, por favor sincroniza al servidor primero","dialog.leave_team.text":"Si abandonas {teamName} no puedes volver a unirte a menos que el propietario te vuelva a añadir.","dialog.leave_team.title":"Abandonar: {teamName}","dialog.link_list.length":"Longitud","dialog.link_list.level":"Nivel min.","dialog.link_list.all_from":"Poner todo saliente","dialog.link_list.all_to":"Poner todos entrantes","dialog.conflict.cancel_upload":"Cancelar subida","dialog.conflict.conflicts":"Conflictos:","dialog.conflict.local":"Copia local","dialog.conflict.server":"Copia del servidor","dialog.conflict.zone":"Zona: {name}","dialog.conflict.prop.assignedTo":"Asignar:","dialog.conflict.prop.comment":"Comentario:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"Desde:","dialog.conflict.prop.hardness":"Dificultad:","dialog.conflict.prop.order":"Orden:","dialog.conflict.prop.state":"Estado:","dialog.conflict.prop.toPortal":"Hasta:","dialog.conflict.prop.zone":"Zona:","dialog.conflict.prop.zone_points":"La forma ha cambiado","dialog.online_agents.actions":"Acciones","dialog.online_agents.last_seen":"Visto por última vez","dialog.online_agents.title":"Agentes activos","dialog.op_settings.advanced":"Avanzadas","dialog.op_settings.import.desc":"Importar enlaces/marcadores/zonas de otra OP","dialog.op_settings.import.collision_default":"En caso de conflictos, se preferirán los enlaces o marcadores de la OP importada","dialog.op_settings.import.select_op":"Seleccione OP","dialog.op_settings.import.select_color":"Color enlaces OP","dialog.op_settings.import.button":"Importar","dialog.op_settings.setting":"Ajustes","dialog.op_settings.zones":"Zonas","dialog.ops_list.background_disable":"Desactivar mostrar por detrás","dialog.ops_list.background_enable":"Mostrar por detrás","dialog.ops_list.download":"Descargar {opName}","dialog.ops_list.last_fetched":"Última recuperación: {date}","dialog.ops_list.local_change":"OP local ha cambiado","dialog.ops_list.remote_change":"OP remota ha cambiado","dialog.ops_list.toggle_hide":"Mostrar / Ocultar","dialog.ops_list.unhide_ops":"Mostrar todas las OPs","dialog.remove_agent.text":"¿Quieres retirar a {agentName} de {teamName}?","dialog.remove_agent.title":"Retirar: {agentName}","dialog.setcomment.portal_hardness":"Dificultad","dialog.settings.disable_live_updates":"Desactivar actualizaciones en vivo","dialog.settings.populate_opportals":"Mostrar portales de la OP en el mapa","dialog.team_list.load_wd_keys":"Cargar llaves W-D","dialog.team_list.share_wd_keys":"Compartir llaves W-D","dialog.team_manage.join_link":"Enlace de unión","dialog.team_manage.join_link.create":"Crear","dialog.team_manage.join_link.revoke":"Anular","dialog.team_members.location":"Compartir ubicación","dialog.team_members.wd_keys":"Compartir llaves W-D","dialog.team_message":"Anuncio de equipo: “{message}” de {sender}","dialog.update_warning":"Wasabee está desactualizado. Por favor, actualice usando su gestor de complementos o vaya a https://wasabee.rocks","dialog.zone_color.title":"Color para la zona","dialog.zone_color.text":"Establecer el color de todos los enlaces de la zona {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Colorear enlaces","dialog.zones.delete.title":"Eliminar la zona {zoneName}","dialog.zones.delete.text":"¿Quieres eliminar la zona “{zoneName}” ?","dialog.zones.delete_zone_shape":"Restablecer la forma","dialog.zones.draw_zone_shape":"Dibujar límites de zona","dialog.zones.id":"ID","dialog.zones.jump_to":"Ir a la zona","dialog.zones.stop_drawing":"Finalizar dibujo","dialog.zones.title":"Zonas","DRAW TOOLS FORMAT":"Formato Draw Tools","DUPE_OP":"Duplicar Operación","END_PORT":"Portal de Fin","ExcludeMarker":"Excluir del Dibujo/Marcado Automático","EXPORT OP TITLE":"Exportar Op actual","EXPORT OP":"Exportar Op","EXPORT":"Exportar","FAKED":"Virtual: [{portalId}]","FANFIELD":"¡Dibujar!","FANFIELD2":"Fanfield","FarmPortalMarker":"Farmear","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Dados un ancla determinado, un conjunto de portales visibles y una cantidad de SBUL, encuentra un fanfield para lanzar enlaces desde el ancla en orden de distancia descendente para evitar buscar llaves.","FLIP_FLOP_INSTRUCTION":"Selecciona un portal, acércate para ver suficientes portales y pulsa Dibujar. Cuando se encuentre un campo de fanfield, puedes buscar otros ancls para relanzar consecutivamente","FLIP_FLOP_FIND_ANCHORS":"Encontrar otros anclas","FROM_1-2":"desde la base 1-2","FROM_1-3":"desde la base 1-3","FROM_2-3":"desde la base 2-3","FROM_DEPTH":"desde el interior","FROM_PORT":"Desde el Portal","GET DT":"Obtener el dibujo existente de DrawTools","GetKeyPortalMarker":"Obtener Keys","GotoPortalMarker":"Ir A","H-GEN_INST":"Establece portales para la capa exterior. Elige el número de divisiones. Haz clic en dibujar","HF_DEEP_SEARCH":"Búsqueda exhaustiva","HF_DRAW_BUTTON":"Dibujar","HF_REDRAW_BUTTON":"Redibujar","HG":"Campo homogéneo","HOURS":"(Hace {hours} horas)","HOW_TO_VIDS":"

Videos de Cómo Se Hace:

","IMP_NOPE":"Importación Falló: {error}","IMP_WAS_OP":"Importar Operación Wasabee","IMPORT_OP_SUCCESS":"Operación {opName} Importada Exitosamente.","IMPORT_OP_TITLE":"Importar Op {date}","IMPORT_OP":"Importar Operación","IMPOSSIBLE":"Imposible","INGNAME_GID":"Nombre de Ingress o GoogleID","INPUT_DT_KEY_COUNT":"Ingresa el Conteo de Llaves Defensivas","INVALID REQUEST":"Solicitud No Válida","IOS NEED FAKE UA":"Debes configurar un \'UsuarioAgente Personalizado para Vista Web\' en las opciones de configuración de IITC-Mobile o el inicio de sesión fallará","KEY_LIST2":"Lista de Llaves {opName}","KEYS":"Llaves","KNOWN_BLOCK":"Bloqueos Conocidos {opName}","LA DESC":"Dependiendo del número y tipo de Link Amps usados, un portal de origen de menor nivel puede ser suficiente.","LA":"L8+ algunos LA","LANG":"Idioma","LEAVE":"Salir","LetDecayPortalAlert":"Dejar Decaer","LINK ASSIGNMENT":"Assign link to:","LINK STATE PROMPT":"Estado del Link","LINK STATE":"Set link status:","LINKS BUTTON TITLE":"Enlaces","LINKS":"Enlaces","LINKS2":"{portalName}: Enlaces ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Cargar Portales","LOADING":"[cargando]","LOADING1":"Cargando: [{portalGuid}]","LOC_PROC":"ubicación procesada","LOCATION SUB":"Ubicación registrada","LOCFRMSER":"(localmente y del servidor)","LOG IN":"Iniciar Sesión","LOG_OUT":"Cerrar sesión","MADRID_SET_1":"Selecciona el área para el link base del Ancla 2 al Ancla 3","MADRID_SET_2":"Selecciona el área para el link base del Ancla 3 al Ancla 1","MADRID_SET_3":"Selecciona el área para el link base del Ancla 1 al Ancla 2","MADRID_TITLE":"Protocolo Madrid","MADRID_WAS_TAKEN":"Protocolo Madrid","MADRID":"Dibujar","MANAGE_TEAM":"Gestionar {teamName}","MANAGE":"Gestionar","MARKER ASSIGNMENT":"Assign marker to:","MARKER LIST TITLE":"Lista de Marcadores","MARKER LIST":"Marcadores","MARKER STATE PROMPT":"Estado Del Marcador","MARKER STATE":"Set marker state:","MARKER_LIST":"Listad de Marcadores {opName}","MARKERS BUTTON TITLE":"Marcadores","MAX_SPLITS":"Divisiones máximas","MAX":"Fan Field","MeetAgentPortalMarker":"Encontrar Agent","MERGE ON UPDATE":"Combinar al actualizar","MERGE_CHANGES_LOCAL":"Cambios locales","MERGE_CHANGES_MERGE":"Combinar resultado","MERGE_CHANGES_REMOTE":"Cambios remotos","MERGE_LOCAL":"Mantener local","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, replace the local version with the server version, or cancel?","MERGE_REBASE":"Rebase","MERGE_REPLACE":"Replace","MERGE_TITLE":"Combinar OP local y remota","MIN_SRC_PORT_LVL":"Nivel mínimo requerido para el portal fuente","MINUTES":"(Hace {minutes} minutos)","MM":"Multimax","MM_BOTH_SIDE":"Usar ambos lados de la base","MM_INSERT_ORDER":"Insertar al final","MM_SET_ALL_PORTALS":"Todos los portales visibles","MM_SET_ALL_KEYS":"Todos los marcadores de Obtener llave","MM_SET_KEYS_ZONE":"Obtener llave: {zoneName}","MM_SPINE":"Espinazo","MULTI_M_TITLE":"Dibujar Máximas Capas","MULTI_M":"Multimax","MUST_NOT_BE_EMPTY":"No Debe Quedar Vacío","MY_CAP_ID":"ID de Mi Cápsula","MY_COUNT":"Mi Conteo","NAME_REQ":"Requiere Nombre","NAME":"Nombre","NEW_OP":"Nueva Operación","NEW_TEAM_NAME":"Nuevo Nombre de Equipo","NEW_TEAM":"Nuevo equipo","NEW_WAS_SERVER":"Nuevo Servidor de Wasabee","NEWOP BUTTON TITLE":"Crear una nueva Operación","NEWOP BUTTON":"Nueva Op","NO_DT_ITEMS":"No se detectó elementos dibujados con DrawTools","NO_LABEL":"Sin etiqueta definida","NO_STOCK_INTEL":"Wasabee no soporta la importación de dibujos trazados en intel regular","NO_TITLE":"Sin título definido","NO LONGER AVAILABLE":"Recurso eliminado del servidor: {error}","NO LONGER AVAILABLE SHORT":"Recurso eliminado del servidor","NOT LOGGED IN SHORT":"Sesión No Iniciada","NOT LOGGED IN":"Sesión No Iniciada: {error}","NOT_LOADED":"No está cargado completamente, intentar de nuevo.","NOT_SET":"no definido","NTNAME":"Nombre","OK":"Aceptar","ON_HAND":"En Mano","ONION_WAS_TAKEN":"Onion","ONION":"Dibujar","ONLY_DT_IMP":"(solo para importaciones de DrawTools)","OP DELETED":"Operación eliminada del servidor: {opID}","OP PERM DENIED":"Permiso denegado a la operación: {opID}","OP_CHECKLIST":"Lista de Verificación de la Operación {opName}","OP_NAME_UNSET":"Se Removió el Nombre de Operación","OP_PERMS":"Permisos para la Op","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Ajustes de Operación","OPEN_REQUEST":"[abrir solicitud]","OPER_COLOR":"Color de la Operación","OPER_NAME":"Nombre de la Operación","OPERATIONS":"Operaciones","OPS BUTTON TITLE":"Operaciones","OPS BUTTON":"Ops","ORDER":"Orden","OtherPortalAlert":"Otro","PASTE_INSTRUCT":"Pega un dibujo exportado de Wasabee aquí.\\n\\nWasabee no puede importar del formato normal de intel.\\n\\nHay soporte experimental para importar del formato DrawTools de IITC.\\n\\nAntes de importar del formato DrawTools, revise las áreas y asegúrese que todos los portales carguen para que estén en la caché de IITC. Cualquier portal que no haya estado pre-cargado será falsificado. Tendrás que usar la opción \'intercambiar\' para mover las anclas de los portales falsos a los portales reales (estarán en la ubicación correcta, pero no asociados con el portal.\\n\\nPortales en la caché puede que no estén nombrados correctamente.","pending":"Pendiente","PERM DENIED":"Permiso denegado: {error}","PERM DENIED SHORT":"Permiso denegado","PERMS":"{opName} permisos","PLEASE_SELECT_PORTAL":"Por favor, seleccionar un portal","popup.anchor.duplicate":"Duplicar","popup.anchor.keys":"Llaves: {onHand} / {required}","popup.anchor.keys_mycount":"Yo: {myCount} / {required}","popup.marker.state_button":"Establecer el estado","PORTAL KEY LIST":"Lista de Llaves del Portal {portalName}","PORTAL_COUNT":"{count} portales","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Haz clic para cambiar el color de los siguientes enlaces","QD BUTTON END":"Dar click para detener dibujo de campos","QD BUTTON TOGGLE MODE":"Haz clic para cambiar el modo de dibujo","QD CHANGE COLOR":"Cambiar color","QD END":"Finalizar","QD TITLE":"Dibujar Capas Rápido","QD TOGGLE MODE":"Cambiar modo","QDBASE":"Link Base","QDCONT":"Dar click a un portal anidado para dibujar el campo.","QDNEXT":"Dar click al segundo portal ancla.","QDSTART":"Dar click al primer portal ancla.","READ_SHORT":"SL","READ":"Leer","RechargePortalAlert":"Recargar","REFERENCE_TIME":"Hora de referencia:","REM_LOC_CP":"Borrar copia local de {opName}","REMOVE_TEAM_CONFIRM_LABEL":"¿Deseas remover {teamName} permanentemente del Servidor Wasabee?","REMOVE_TEAM_CONFIRM_TITLE":"Remover Equipo {teamName}","REMOVE_TEAM":"Remover Equipo","REMOVE":"Remover","RENAME_TEAM":"Renombrar Equipo","RENAME":"Renombrar","REQUIRED":"Requeridas","RESET":"Restablecer","REVERSE":"Invertir","ROCKS_COM":"comunidad enl.rocks","ROLE":"Rol","SAVELINKS TITLE":"Guardar Enlaces","SAVELINKS_DRAW":"Guardar Enlaces","SAVELINKS":"Guardar Enlaces","SECONDS":"(Hace {seconds} segundos)","SEL_SB_ANCHOR":"Selecciona el área del ancla para hacer acercamiento para añadir a la supernova.","SEL_SB_ANCHOR2":"Aleja el zoom. Asegúrate de que los portales se han cargado completamente y haz clic en Dibujar.","SEL_SL_ANCHOR":"Selecciona el portal del que quieres guardar los enlaces. Haz clic en el botón de Guardar Enlaces y revisa la lista de comprobación.","SEL_SRC_ANC2":"Selecciona tanto la Fuente como el Ancla 2","SEL_SRC_PORT":"Selecciona un portal fuente","SELECT PORTAL":"Seleccionar un portal para enviar","SELECT_FAN_PORTALS":"Selecciona un portal ancla, un portal de inicio y un portal de fin, luego haz un acercamiento en el área para el fan field. Espera hasta que los portales hayan cargado (los portales deben estar en la pantalla para ser considerados) y presiona el botón Fanfield.","SELECT_FAN_PORTALS2":"Espera a que todos los portales se carguen. Luego haz clic en dibujar.","SELECT_INSTRUCTIONS":"Selecciona dos portales ancla, luego luego haz un acercamiento en el área para los nodos de las capas. Espera hasta que los portales hayan cargado (los portales deben estar en la pantalla para ser considerados) y presiona el botón Multimax.","SELECT_ONION_PORTALS":"Las capas se hacen de dentro hacia afuera. Acércate al centro y selecciona el portal de inicio. Luego aléjate para ver un área mayor.","SELF SWAP":"¡No se puede intercambiar un portal consigo mismo! Selecciona un portal diferente.","SEND ANALYTICS":"Enviar analíticas anónimas","SEND LOCATION":"Compartir ubicación (sólo cuando IITC está en primer plano)","SEND TARGET AGENT":"Selecciona un destinatario","SEND TARGET CONFIRM":"¿Quieres enviar el {portalName} objetivo a {agent}?","SEND TARGET":"Enviar Objetivo","SEND_LOC":"Enviar Ubicación","SET_3_PORT":"¡Por favor, primero define los tres portales!","SET_COMMENT":"Definir Comentario","SET_LCOMMENT":"Definir Comentario de Link","SET_LINK_COMMENT":"Definir comentario para el link","SET_LINKS_ZONES":"Asignar enlaces a zonas","SET_MARKER_COMMENT":"Definir comentario para el marcador en","SET_MARKER_TYPE_TITLE":"Cambiar tipo de marcador","SET_MARKERS_ZONES":"Asignar marcadores a zonas","SET_MCOMMENT":"Definir Comentario de Marcador {portalName}","SET_NEW_OP":"Por favor, define el Nuevo Nombre de la Operación","SET_PCOMMENT":"Definir Comentario de Portal {portalName}","SET_PORT_COMMENT":"Definir comentario para el portal","SET_PORTAL_COMMENT":"Definir comentarios del portal","SET":"definir","SETTINGS_TOOLBOX":"Ajustes de Wasabee","SETTINGS_TITLE":"Ajustes avanzados","SKINS_AVAILABLE":"Hay {count} skins disponibles.","SKINS_BUTTON":"Configurar skins","SKINS_DESCRIPTION":"Las skins disponibles se encuentran en las columnas de la derecha. Mueve las skins que desees aplicar a las columnas de la izquierda.","SKINS_MANAGE_TITLE":"Gestionar skins","SKIP_CONFIRM_ALWAYS":"Nunca preguntar (usar con precaución)","SKIP_CONFIRM_ENTITY":"Sólo pedir equipo/op","SKIP_CONFIRM_NEVER":"Preguntar siempre","SKIP_CONFIRM":"Omitir confirmación","SOURCE_PORT":"Portal de origen","STARBURST TITLE":"Supernova","STARBURST_DRAW":"Dibujar","STARBURST":"Supernova","START_PORT":"Portal de Inicio","STATE":"Estado","SUPPORT_INSTRUCT":"Para soporte, por favor únete al Canal de Telegram de Usuarios de Wasabee","SWAP PROMPT":"Quisieras intercambiar","SWAP TITLE":"Intercambiar Portales","SWAP WITH":"con","SWAP":"Intercambiar","swap.marker.title":"Intercambiar marcador","swap.marker.prompt":"¿Quieres cambiar el marcador:","SYNC DONE":"Descarga Completa
Haga clic AQUÍ para obtener sugerencias, consejos y documentación.","SYNC":"Descargar Operaciones Disponibles","TARGET SENT":"Objetivo enviado","TEAM STATE":"Compartir ubicación","TEAM_CREATED":"Equipo {teamName} creado","TEAM_NAME":"Nombre de Equipo","TEAM":"Equipo","TEAMS BUTTON TITLE":"Listar Equipos Wasabee","TEAMS BUTTON":"Equipos","TO_PORT":"Hacia el Portal","toolbar.op.filter":"Filtros","toolbar.op.redo":"Rehacer","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Deshacer","toolbar.quick_delete.apply.text":"Aplicar","toolbar.quick_delete.apply.title":"Eliminar los enlaces/marcadores seleccionados","toolbar.quick_delete.cancel.text":"Cancelar","toolbar.quick_delete.cancel.title":"Cancelar","toolbar.quick_delete.clear.text":"Limpiar todo","toolbar.quick_delete.clear.title":"Borrar todos los enlaces y marcadores","toolbar.quick_delete.stop.text":"Parar","toolbar.quick_delete.stop.title":"Salir del modo borrar","toolbar.quick_delete.title":"Borrado rápido","toolbar.quick_delete.tooltip.toggle_mode":"Haz clic en los objetos que quieres marcar para eliminar","toolbar.quick_delete.tooltip.quick_mode":"Haz clic en los objetos para eliminar inmediatamente","toolbar.quick_draw.tooltip.star_mode.anchor":"Seleccione el ancla de la estrella","toolbar.quick_draw.tooltip.star_mode.portal":"Selecciona un portal","toolbar.quick_draw.tooltip.single_mode.first":"Haz clic en el primer portal","toolbar.quick_draw.tooltip.single_mode.next":"Haz clic en el siguiente portal","toolbar.quick_draw.tooltip.portal_fail":"Datos del portal no cargados, por favor inténtalo de nuevo","toolbar.quick_draw.tooltip.burst.portal":"Selecciona un portal","toolbar.quick_draw.toggle.text":"Modo: {mode}","toolbar.quick_draw.mode.burst":"Estallido","toolbar.quick_draw.mode.multilayer":"Multicapa","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Estrella","toolbar.wasabee.settings":"Ajustes","toolbox.teammates":"Compañeros en línea","TRAWL SKIP TILES":"Bloques a saltar al recorrer","TRAWL TITLE":"Recorrer corredores de enlace","TRAWL WARNING":"Se cargarán los datos de todos los bloques bajo todos los enlaces dibujados. Es un proceso lento.","TRAWL_AUTOMARK":"Automarcar los bloqueos tras recorrer","TRAWL_BULK_LOAD_WARNING":"Este método carga los datos de los bloques de golpe. Úsalo bajo tu propio riesgo.","TRAWL_BULK_LOAD":"Carga masiva de datos de bloques","TRAWL_CLEAR_MARKERS":"Limpiar marcadores de virus/destruir antes de recorrer","TRAWL_REMAINING":"{count} bloques restantes","TRAWL":"Recorrer buscando bloqueos","TRAWLING":"Recorriendo los corredores buscando bloqueos. Cierra esta ventana para detenerlo","TYPE":"Tipo","UNASSIGNED":"No Asignado","UNKNOWN":"Desconocido","UPDATE HOVER":"{opName} en el servidor","UPDATE PERM DENIED":"Permiso para acutalizar denegado","UPDATE_CONFLICT_DESC":"The OP has been modified on server since last sync. Do you want to replace the server version by the current one?","UPDATE_CONFLICT_TITLE":"Conflicto detectado con el servidor","UPDATE_COUNT":"Actualizar Conteo","UPDATED":"Actualizado exitosamente","UpgradePortalAlert":"Actualizar","UPLOAD BUTTON HOVER":"CARGAR {opName} (no se encuentra actualmente en el servidor)","UPLOADED":"Cargado exitosamente","USE PANES ON MOBILE":"Usar paneles (es necesario recargar)","USE_VALID_NAME":"Por favor, utiliza un nombre de operación válido","UseVirusPortalAlert":"Usar Virus","VRLA DESC":"Dependiendo del número y tipo de Link Amps usados, un portal de origen de menor nivel puede ser suficiente.","VRLA":"L8+ algunos VRLA","WASABEE BUTTON TITLE":"Wasabee es verde y hace llorar a los pitufos.","WASABEE_D_LIST":"Ingresar Conteo de Llaves de Defensa","WD BUTTON TITLE":"Registrar Llaves de Defensa","WD BUTTON":"Llaves W-D","WRITE_SHORT":"LE","WRITE":"escribir","WSERVER":"Servidor {url}","YESNO_DEL":"Estás seguro de querer borrar {opName}","ZONE_DRAW":"Haga clic para establecer los límites de la zona","ZONE":"Zona","smallScreen":{"ADD_LINKS":"+ Enlaces","ADD_MARKER":"+ Marcador"}}'),English:JSON.parse('{"ABOUT_WASABEE":"About Wasabee","acknowledged":"Acknowledged","ADD LINK TITLE":"Add Links","ADD MARKER TITLE":"Add Markers","ADD_AGENT":"Add Agent:","ADD_BL":"Add Back Links:","ADD_BULK":"Bulk add","ADD_BUTTON_LINKS":"Add all links at once","ADD_LINKS":"Add Links","ADD_MARKER":"Add Marker","ADD_NEW_OP":"Add New Op","ADD_SUCC_INSTR":"Add agent successful","ADD_ZONE":"Add Zone","ADD":"Add","ADD1":"Add first link","ADD2":"Add second link","AGENT_STATS":"Agent Stats","AGENT":"Agent","AGES":" (ages ago)","ALREADY_HAS_MARKER":"This portal already has a marker. Choose a different portal.","AMAZ_TEAM_NAME":"Amazing Team Name","ANCHOR ASSIGNMENT":"Assign all outbound links to:","ANCHOR_GMAP":"Google Map","ANCHOR_PORTAL":"Anchor Portal","ANCHOR_PORTAL2":"Anchor Portal 2","ANCHOR_PORTAL3":"Anchor Portal 3","ANCHOR1":"Anchor 1","ANCHOR2":"Anchor 2","ANCHOR3":"Anchor 3","ANCHORS_AS_BOOKMARKS":"Anchors as bookmarks","API_KEY":"Rocks API key:","ASS_TO":"Assigned To","ASSIGN LINK PROMPT":"Assign link from: {portalName}","ASSIGN MARKER PROMPT":"Assign marker from: {portalName}","ASSIGN OUTBOUND PROMPT":"Assign all outbound links from: {portalName}","ASSIGN OUTBOUND":"Assign Outbound Links","ASSIGN":"Assign","ASSIGNED_ONLY_SHORT":"AO","ASSIGNED_ONLY":"Assigned Only","assigned":"Assigned","AUTH INCOMPAT":"You have activated a plugin in TamperMonkey that is incompatable with Wasabee","AUTH REQUIRED":"Authentication Required","AUTH TOKEN REJECTED":"Sending auth token to server rejected: {error}","AUTH_SELECT_ACCOUNT":"Select account","AUTO_DRAWS":"Auto-draw","AUTODRAWS":"Wasabee Auto-draw Options","AUTODRAW_PORTALS_SET":"Portals","autodraw.common.draw_button":"Draw","autodraw.fanfield.result":"Fanfield found {links} links and {fields} fields for {ap} AP","autodraw.flipflop.result":"Flip flop: found {count} links","autodraw.homogeneous.missing_split":"Unable to find {count} splits, try less depth or a different region","autodraw.homogeneous.order":"Order","autodraw.homogeneous.portals_required":"{count} required","autodraw.madrid.auto_determined":"Auto-determined","autodraw.madrid.balanced":"Balanced","autodraw.madrid.result":"Madrid found {count} layers","autodraw.multimax.result":"Multimax found {count} layers","autodraw.multimax.result_both_side":"Multimax found {count1} and {count2} layers","autodraw.onion.variant":"Option","autodraw.onion.variant.equilateral":"~Equilateral","autodraw.onion.variant.grow":"Let it grow","autodraw.onion.variant.balanced":"Perfectly balanced","AUTOLOAD_RATE":"Portal Detail Request Rate (ms)","AUTOLOAD":"Automatically Load Missing Portal Details","AUTOMARK STOP":"Auto-Mark stopped due to portals not being loaded","AUTOMARK":"Auto-Mark","BAT_TOAD":"Battle Toads","BLOCKER LIST TITLE":"Show all blockers","BLOCKER TITLE":"Blockers","CANCEL":"Cancel","CAPSULE":"Capsule","CapturePortalMarker":"Capture","CHANGE SERVER PROMPT":"New Wasabee Server","CHANGE SERVER":"Change Server","CHANGE_WAS_SERVER":"Change Wasabee Server","CHECKLIST BUTTON TITLE":"Operation Checklist","CHECKLIST BUTTON":"Checklist","CLEAR LINKS":"Clear Links","CLEAR MARKERS":"Clear Markers","CLEAR_EVERYTHING":"Clear Portals/Links/Markers for current OP","CLEAROPS BUTTON TITLE":"Clear Data","CLEAROPS BUTTON":"Clear Data","CLEAROPS PROMPT":"Clear all local OPS. Ops will be restored at next download. Wasabee will be disabled until next page reload.","CLOSE":"Close","COMMENT":"Comment","COMPLETED BY":"Completed by {agentName}","completed":"Completed","CON_DEL":"Confirm Delete: {opName}","COUNT":"Count","CREATE_NEW_TEAM":"Create New Team","CreateLinkAlert":"Link","CUR_USER_INFO":"Current User Information","D_SHOW_LIST":"Input Defensive Keys","DEFAULT OP NAME":"New Op: {date}","DELETE ANCHOR PROMPT":"Do you want to delete this anchor and all associated links:","DELETE ANCHOR TITLE":"Delete Anchor","DELETE MARKER PROMPT":"Do you want to delete this marker:","DELETE MARKER TITLE":"Delete Marker","DELETE_ANCHOR":"Delete","DELETE_LINK":"Delete","DELETE_OP":"Delete {opName}","DESCRIP_PLACEHOLD":"Description (optional)","DestroyPortalAlert":"Destroy","dialog.about.download_mobile_app":"

Wasabee App:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Set comment for {agentName}","dialog.auth.ott.button":"One Time Token Login","dialog.auth.ott.text":"Get a token from the Wasabee Server, then paste it here","dialog.auth.ott.title":"One Time Token","dialog.blockers.clear_automark":"Clear Automark","dialog.clear_all.text":"Do you want to reset {opName}?","dialog.clear_all.title":"Clear: {opName}","dialog.clear_links.text":"Do you want to remove all links from {opName}?","dialog.clear_links.title":"Clear Links: {opName}","dialog.clear_markers.text":"Do you want to remove all markers from {opName}?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Count fields","dialog.checklist.count_fields.no_empty":"Found {fieldCount} fields and no empty field","dialog.checklist.count_fields.with_empty":"Found {fieldCount} fields and {emptyCount} empty field(s) on {linkCount} link(s)","dialog.checklist.count_fields.link_from_inside":"Found {count} links from covered portals","dialog.checklist.count_fields.link_from_inside.covered_at_order":" at {order} by link ","dialog.common.color":"Color","dialog.common.commands":"Commands","dialog.common.commands_short":"Cmds","dialog.common.delete":"Delete","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Name","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Owner","dialog.common.zone_all":"All","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Visit {url} and press the button to authorize live updates. You will need to reload IITC afterward.","dialog.import.url":"Fill from URL","dialog.import.success_message":"Import Complete. Found {count} portals and used {faked} faked. Please use the swap feature to move faked portals to the real portals at the same location. Zooming in on the \'Loading\' portals in the checklist might force them to load.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"If you leave {teamName} you cannot rejoin unless the owner re-adds you.","dialog.leave_team.title":"Leave: {teamName}","dialog.link_list.length":"Length","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Cancel upload","dialog.conflict.conflicts":"Conflicts:","dialog.conflict.local":"Local copy","dialog.conflict.server":"Server copy","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Assign:","dialog.conflict.prop.comment":"Comment:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"From:","dialog.conflict.prop.hardness":"Hard:","dialog.conflict.prop.order":"Order:","dialog.conflict.prop.state":"State:","dialog.conflict.prop.toPortal":"To:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Actions","dialog.online_agents.last_seen":"Last Seen","dialog.online_agents.title":"Online Agents","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zones","dialog.ops_list.background_disable":"Disable background","dialog.ops_list.background_enable":"Show in background","dialog.ops_list.download":"Download {opName}","dialog.ops_list.last_fetched":"Last fetched: {date}","dialog.ops_list.local_change":"Local has changed","dialog.ops_list.remote_change":"Remote has changed","dialog.ops_list.toggle_hide":"Toggle Show/Hide","dialog.ops_list.unhide_ops":"Unhide all OPs","dialog.remove_agent.text":"Do you want to remove {agentName} from {teamName}?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Hardness","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"Load W-D Keys","dialog.team_list.share_wd_keys":"Share W-D Keys","dialog.team_manage.join_link":"Join Link","dialog.team_manage.join_link.create":"Create","dialog.team_manage.join_link.revoke":"Revoke","dialog.team_members.location":"Sharing Location","dialog.team_members.wd_keys":"Sharing W-D Keys","dialog.team_message":"Team announcement: “{message}” from {sender}","dialog.update_warning":"Wasabee is out of date. Please update using your plugin manager or by going to https://wasabee.rocks","dialog.zone_color.title":"Zone Color","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Draw Tools Format","DUPE_OP":"Duplicate Operation","END_PORT":"End Portal","ExcludeMarker":"Exclude from Auto-Draw/Mark","EXPORT OP TITLE":"Export current Op","EXPORT OP":"Export Op","EXPORT":"Export:","FAKED":"Faked: [{portalId}]","FANFIELD":"Draw","FANFIELD2":"Draw Fan Field","FarmPortalMarker":"Farm","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"From a given anchor, a set of visible portal and a number of SBUL, find a fanfield to throw links from the anchor by decreasing distance to avoid searching keys.","FLIP_FLOP_INSTRUCTION":"Select a portal, zoom to see enough portals and press Draw. Once a fanfield is found, you can search for other anchors for consecutive rethrow","FLIP_FLOP_FIND_ANCHORS":"Find other anchors","FROM_1-2":"from base 1-2","FROM_1-3":"from base 1-3","FROM_2-3":"from base 2-3","FROM_DEPTH":"from the depth","FROM_PORT":"From Portal","GET DT":"Get existing DrawTools draw","GetKeyPortalMarker":"Get Keys","GotoPortalMarker":"Go To","H-GEN_INST":"Set portals for the outside layer. Choose number of splits. Click draw","HF_DEEP_SEARCH":"Exhaustive search","HF_DRAW_BUTTON":"Draw","HF_REDRAW_BUTTON":"Redraw","HG":"Homogeneous Field","HOURS":" ({hours} hours ago)","HOW_TO_VIDS":"

How-To Videos:

","IMP_NOPE":"Import Failed: {error}","IMP_WAS_OP":"Import Wasabee Operation","IMPORT_OP_SUCCESS":"Imported Operation: {opName} successfuly.","IMPORT_OP_TITLE":"Import Op: {date}","IMPORT_OP":"Import Operation","IMPOSSIBLE":"Impossible","INGNAME_GID":"Ingress name or GoogleID","INPUT_DT_KEY_COUNT":"Input Defensive Key Count","INVALID REQUEST":"Invalid Request","IOS NEED FAKE UA":"You must set a \'Custom UserAgent for Webviews\' in the IITC-Mobile settings or login will fail","KEY_LIST2":"Key List for Operation: {opName}","KEYS":"Keys","KNOWN_BLOCK":"Known Blockers: {opName}","LA DESC":"Depending on the number and type of Link Amps used, a lower source portal level might suffice.","LA":"L8+ some LA","LANG":"Language","LEAVE":"Leave","LetDecayPortalAlert":"Let Decay","LINK ASSIGNMENT":"Assign link to:","LINK STATE PROMPT":"Link State","LINK STATE":"Set link status:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Load Portals","LOADING":"[loading]","LOADING1":"Loading: [{portalGuid}]","LOC_PROC":"location processed","LOCATION SUB":"Location registered","LOCFRMSER":" (locally and from server)","LOG IN":"Log In","LOG_OUT":"Log Out","MADRID_SET_1":"Select the region for baselink Anchor 2 to Anchor 3","MADRID_SET_2":"Select the region for baselink Anchor 3 to Anchor 1","MADRID_SET_3":"Select the region for baselink Anchor 1 to Anchor 2","MADRID_TITLE":"Madrid Protocol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Draw","MANAGE_TEAM":"Manage {teamName}","MANAGE":"Manage","MARKER ASSIGNMENT":"Assign marker to:","MARKER LIST TITLE":"Marker List","MARKER LIST":"Markers","MARKER STATE PROMPT":"Marker Status","MARKER STATE":"Set marker state:","MARKER_LIST":"Marker List: {opName}","MARKERS BUTTON TITLE":"Markers","MAX_SPLITS":"Max Splits","MAX":"Fan Field","MeetAgentPortalMarker":"Meet Agent","MERGE ON UPDATE":"Merge on update","MERGE_CHANGES_LOCAL":"Local changes","MERGE_CHANGES_MERGE":"Merge result","MERGE_CHANGES_REMOTE":"Remote changes","MERGE_LOCAL":"Keep local","MERGE_MESSAGE":"Local and server modifications are clashing. You need to resolve the conflicts that Wasabee failed to resolve itself. Select which version in the following list to keep for every unresolved conflicts. You can also ignore all conflicts and use the server copy, or you can just keep the local copy intact.","MERGE_REBASE":"Merge","MERGE_REPLACE":"Use server","MERGE_TITLE":"Merge local&remote OP","MIN_SRC_PORT_LVL":"Minimum level required on source portal","MINUTES":" ({minutes} minutes ago)","MM":"Multimax","MM_BOTH_SIDE":"Use both base sides","MM_INSERT_ORDER":"Insert at the end","MM_SET_ALL_PORTALS":"All visible portals","MM_SET_ALL_KEYS":"All GetKey Markers","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Spine","MULTI_M_TITLE":"Draw Max Layers","MULTI_M":"Draw","MUST_NOT_BE_EMPTY":"Must Not Be Empty","MY_CAP_ID":"My Capsule ID","MY_COUNT":"My Count","NAME_REQ":"Name Required","NAME":"Name:","NEW_OP":"New Operation","NEW_TEAM_NAME":"New Team Name","NEW_TEAM":"New Team","NEW_WAS_SERVER":"New Wasabee Server","NEWOP BUTTON TITLE":"Create a new Operation","NEWOP BUTTON":"New Op","NO_DT_ITEMS":"No DrawTools drawn items detected","NO_LABEL":"No label set","NO_STOCK_INTEL":"Wasabee doesn\'t support stock intel draw imports","NO_TITLE":"No title set","NO LONGER AVAILABLE":"Resource removed from server: {error}","NO LONGER AVAILABLE SHORT":"Resource removed from server","NOT LOGGED IN SHORT":"Not Logged in","NOT LOGGED IN":"Not Logged in: {error}","NOT_LOADED":"Not fully loaded, try again.","NOT_SET":"not set","NTNAME":"Name","OK":"OK","ON_HAND":"On Hand","ONION_WAS_TAKEN":"Onion","ONION":"Draw","ONLY_DT_IMP":" (only for DrawTools imports)","OP DELETED":"Operation removed from server: {opID}","OP PERM DENIED":"Permission denied to operation: {opID}","OP_CHECKLIST":"Operation Checklist: {opName}","OP_NAME_UNSET":"Operation Name was Unset","OP_PERMS":"Op Permissions","OP_SETTINGS_BUTTON":"Op Settings","OP_SETTINGS_TITLE":"Operation Settings","OPEN_REQUEST":"[open request]","OPER_COLOR":"Operation Color:","OPER_NAME":"Operation Name:","OPERATIONS":"Operations","OPS BUTTON TITLE":"Operations List","OPS BUTTON":"Select OP","ORDER":"Order","OtherPortalAlert":"Other","PASTE_INSTRUCT":"Paste a Wasabee draw export here.\\n\\nWasabee cannot import the stock intel format.\\n\\nThere is experimental support for importing the IITC DrawTools format.\\n\\nBefore importing DrawTools format, preview the areas and make sure all the portals load so IITC has them cached. Any portals that are not pre-cached will be faked.\\n\\nYou will need to use the \'swap\' feature to move anchors from the faked portals to the real portals (they should be in the correct location, just not associated with the portal.\\n\\nCached portals might not be properly named.","pending":"Pending","PERM DENIED":"Permission denied: {error}","PERM DENIED SHORT":"Permission denied","PERMS":"{opName} permissions","PLEASE_SELECT_PORTAL":"Please select a portal","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Keys: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Set State","PORTAL KEY LIST":"Key list for portal {portalName}","PORTAL_COUNT":"{count} portals","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Click to change next links color","QD BUTTON END":"Click to stop drawing fields","QD BUTTON TOGGLE MODE":"Click to change draw mode","QD CHANGE COLOR":"Change color","QD END":"End","QD TITLE":"Quick Draw Layers","QD TOGGLE MODE":"Change mode","QDBASE":"Base Link","QDCONT":"Click a spine portal to draw a field.","QDNEXT":"Click the second anchor portal.","QDSTART":"Click the first anchor portal.","READ_SHORT":"RO","READ":"Read","RechargePortalAlert":"Recharge","REFERENCE_TIME":"Reference Time:","REM_LOC_CP":"Remove local copy of {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Do you want to permenantly remove {teamName} from the Wasabee Server?","REMOVE_TEAM_CONFIRM_TITLE":"Remove Team {teamName}","REMOVE_TEAM":"Remove Team:","REMOVE":"Remove","RENAME_TEAM":"Rename Team:","RENAME":"Rename","REQUIRED":"Required","RESET":"Reset","REVERSE":"Reverse","ROCKS_COM":"enl.rocks community:","ROLE":"Role","SAVELINKS TITLE":"Save Links","SAVELINKS_DRAW":"Save Links","SAVELINKS":"Save Links","SECONDS":" ({seconds} seconds ago)","SEL_SB_ANCHOR":"Select the anchor.","SEL_SB_ANCHOR2":"Zoom out. Make sure portals have all loaded, then click draw.","SEL_SL_ANCHOR":"Select the portal to save the links of. Click save links button and look at checklist.","SEL_SRC_ANC2":"Select both Source and Anchor 2","SEL_SRC_PORT":"Select a source portal","SELECT PORTAL":"Please select a portal first","SELECT_FAN_PORTALS":"Select an anchor portal, a start portal, and an end portal, then position the view over the field area.","SELECT_FAN_PORTALS2":"Wait for all portals to load, then click draw.","SELECT_INSTRUCTIONS":"Select two anchor portals, then zoom over the spine area.","SELECT_ONION_PORTALS":"Layers build from the inside out. Zoom in to center and select starting portal, then zoom out to area.","SELF SWAP":"Cannot swap a portal with itself! Select a different portal.","SEND ANALYTICS":"Send Anonymous Analytics","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Select target recipient","SEND TARGET CONFIRM":"Do you want to send {portalName} target to {agent}?","SEND TARGET":"Send Target","SEND_LOC":"Send Location","SET_3_PORT":"Please set the three portals first!","SET_COMMENT":"Set Comment","SET_LCOMMENT":"Set Link Comment","SET_LINK_COMMENT":"Set comment for link:","SET_LINKS_ZONES":"Set Links to Zones","SET_MARKER_COMMENT":"Set comment for marker on:","SET_MARKER_TYPE_TITLE":"Change marker type","SET_MARKERS_ZONES":"Set Markers to Zones","SET_MCOMMENT":"Set Marker Comment: {portalName}","SET_NEW_OP":"Please Set the New Operation Name","SET_PCOMMENT":"Set Portal Comment: {portalName}","SET_PORT_COMMENT":"Set comment for portal:","SET_PORTAL_COMMENT":"Set Portal Comment","SET":"set","SETTINGS_TOOLBOX":"Wasabee Settings","SETTINGS_TITLE":"Advanced Settings","SKINS_AVAILABLE":"There are {count} available skins.","SKINS_BUTTON":"Configure Skins","SKINS_DESCRIPTION":"Available skin packs are located in the right columns. Move skins you wish to use to the left columns.","SKINS_MANAGE_TITLE":"Manage skins","SKIP_CONFIRM_ALWAYS":"Never ask (use with caution)","SKIP_CONFIRM_ENTITY":"Only ask for team/op","SKIP_CONFIRM_NEVER":"Always ask","SKIP_CONFIRM":"Skip confirmation","SOURCE_PORT":"Source Portal","STARBURST TITLE":"Starburst","STARBURST_DRAW":"Draw","STARBURST":"Starburst","START_PORT":"Start Portal","STATE":"State","SUPPORT_INSTRUCT":"For support, please join the Wasabee User Telegram Channel","SWAP PROMPT":"Do you want to swap:","SWAP TITLE":"Swap Portals","SWAP WITH":" with ","SWAP":"Swap","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Download Complete
Click HERE for hints, tips, and documentation.","SYNC":"Download Available Operations","TARGET SENT":"Target sent","TEAM STATE":"Share Location","TEAM_CREATED":"Team {teamName} created","TEAM_NAME":"Team Name","TEAM":"Team","TEAMS BUTTON TITLE":"List Wasabee Teams","TEAMS BUTTON":"Teams","TO_PORT":"To Portal","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Apply","toolbar.quick_delete.apply.title":"Delete selected links/markers","toolbar.quick_delete.cancel.text":"Cancel","toolbar.quick_delete.cancel.title":"Cancel","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Exit delete mode","toolbar.quick_delete.title":"Quick delete","toolbar.quick_delete.tooltip.toggle_mode":"Click on features to mark for deletion","toolbar.quick_delete.tooltip.quick_mode":"Click on features to delete instantly","toolbar.quick_draw.tooltip.star_mode.anchor":"Select the star anchor","toolbar.quick_draw.tooltip.star_mode.portal":"Select a portal","toolbar.quick_draw.tooltip.single_mode.first":"Click first portal","toolbar.quick_draw.tooltip.single_mode.next":"Click next portal","toolbar.quick_draw.tooltip.portal_fail":"Portal data not loaded, please try again","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Settings","toolbox.teammates":"Teammates Online","TRAWL SKIP TILES":"Trawl Skip Tiles","TRAWL TITLE":"Trawl Lanes","TRAWL WARNING":"This will load the tile data under all drawn links. This is a slow process.","TRAWL_AUTOMARK":"Auto-mark blockers after trawling","TRAWL_BULK_LOAD_WARNING":"This method loads the tile data as quickly as possible. Use at your own risk.","TRAWL_BULK_LOAD":"Bulk Load Tile Data","TRAWL_CLEAR_MARKERS":"Clear virus/destroy markers before trawling","TRAWL_REMAINING":"{count} tiles remaining","TRAWL":"Trawl for Blockers","TRAWLING":"Trawling the lanes for blockers, close this dialog to stop","TYPE":"Type","UNASSIGNED":"Unassigned","UNKNOWN":"Unknown","UPDATE HOVER":"UPDATE {opName} on the server","UPDATE PERM DENIED":"You do not have permission to update","UPDATE_CONFLICT_DESC":"The OP has been modified on the server since last sync. Do you want to replace the server version with the current one?","UPDATE_CONFLICT_TITLE":"Conflict detected with server","UPDATE_COUNT":"Update Count","UPDATED":"Successfully updated","UpgradePortalAlert":"Upgrade","UPLOAD BUTTON HOVER":"UPLOAD {opName} (not currently on server)","UPLOADED":"Successfully uploaded","USE PANES ON MOBILE":"Use panes (need reload)","USE_VALID_NAME":"Please use a valid operation name","UseVirusPortalAlert":"Use Virus","VRLA DESC":"Depending on the number and type of Link Amps used, a lower source portal level might suffice.","VRLA":"L8+some VRLA","WASABEE BUTTON TITLE":"Wasabee: It is green and makes smurfs cry.","WASABEE_D_LIST":"Input Defensive Key Count","WD BUTTON TITLE":"Log Defensive Keys","WD BUTTON":"W-D Keys","WRITE_SHORT":"RW","WRITE":"write","WSERVER":"Server: {url}","YESNO_DEL":"Are you sure you want to delete {opName}?","ZONE_DRAW":"Click to set the zone boundaries","ZONE":"Zone","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Marker"}}'),Italiano:JSON.parse('{"ABOUT_WASABEE":"Info su Wasabee","acknowledged":"Ricevuto","ADD LINK TITLE":"Aggiunta Link","ADD MARKER TITLE":"Aggiunta Marker","ADD_AGENT":"Aggiungi Agente:","ADD_BL":"Aggiungi Link all\'indietro:","ADD_BULK":"Aggiungi in blocco","ADD_BUTTON_LINKS":"Aggiungi tutti i link assieme.","ADD_LINKS":"Aggiungi Link","ADD_MARKER":"+ Marker","ADD_NEW_OP":"Aggiungi Nuova Op","ADD_SUCC_INSTR":"Aggiunto con successo","ADD_ZONE":"Aggiungi Zona","ADD":"Aggiungi","ADD1":"Aggiungi primo link","ADD2":"Aggiungi secondo link","AGENT_STATS":"Statistiche Agente","AGENT":"Agente","AGES":" (epoche fa)","ALREADY_HAS_MARKER":"Questo portale ha già un marker. Scegli un altro portale.","AMAZ_TEAM_NAME":"Fantastico Nome del Team.","ANCHOR ASSIGNMENT":"Assegna tutti i link in uscita a:","ANCHOR_GMAP":"Mappa Google","ANCHOR_PORTAL":"Portale Ancora","ANCHOR_PORTAL2":"Portale Ancora 2","ANCHOR_PORTAL3":"Portale Ancora 3","ANCHOR1":"Ancora 1","ANCHOR2":"Ancora 2","ANCHOR3":"Ancora 3","ANCHORS_AS_BOOKMARKS":"Ancore come bookmark","API_KEY":"Chiave API Rocks:","ASS_TO":"Assegnato a","ASSIGN LINK PROMPT":"Assegna link da: {portalName}","ASSIGN MARKER PROMPT":"Assegna marker da: {portalName}","ASSIGN OUTBOUND PROMPT":"Assegna tutti i link in uscita da: {portalName}","ASSIGN OUTBOUND":"Assegna Link in uscita","ASSIGN":"Assegna","ASSIGNED_ONLY_SHORT":"SA","ASSIGNED_ONLY":"Solo Assegnati","assigned":"Assegnato","AUTH INCOMPAT":"Hai attivato un plugin in TamperMonkey incompatibile con Wasabee","AUTH REQUIRED":"Autenticazione Richiesta","AUTH TOKEN REJECTED":"Invio token di autenticazione rifiutato: {error}","AUTH_SELECT_ACCOUNT":"Seleziona account","AUTO_DRAWS":"Auto-disegna","AUTODRAWS":"Opzioni Wasabee Auto-draw","AUTODRAW_PORTALS_SET":"Portali","autodraw.common.draw_button":"Disegna","autodraw.fanfield.result":"Fanfield ha trovato {links} link e {fields} field per {ap} AP","autodraw.flipflop.result":"Flip flop: trovati {count} link","autodraw.homogeneous.missing_split":"Impossibile trovare {count} suddivisioni, prova meno profondità o una regione diversa","autodraw.homogeneous.order":"Ordina","autodraw.homogeneous.portals_required":"{count} richiesti","autodraw.madrid.auto_determined":"Auto-determinato","autodraw.madrid.balanced":"Bilanciato","autodraw.madrid.result":"Madrid ha trovato {count} strati","autodraw.multimax.result":"Multimax ha trovato {count} strati","autodraw.multimax.result_both_side":"Multimax ha trovato {count1} e {count2} strati","autodraw.onion.variant":"Alternativo","autodraw.onion.variant.equilateral":"~Equilatero","autodraw.onion.variant.grow":"Lascia che cresca","autodraw.onion.variant.balanced":"Perfettamente bilanciato","AUTOLOAD_RATE":"Frequenza Richiesta dettagli Portali (ms)","AUTOLOAD":"Carica Automaticamente Dettagli dei Portali Mancanti","AUTOMARK STOP":"Auto-Mark interrotto, i portali non sono caricati","AUTOMARK":"Auto-Segna","BAT_TOAD":"Rospi da Battaglia","BLOCKER LIST TITLE":"Mostra tutti i bloccanti","BLOCKER TITLE":"Bloccanti","CANCEL":"Annulla","CAPSULE":"Capsula","CapturePortalMarker":"Cattura","CHANGE SERVER PROMPT":"Nuovo Server Wasabee","CHANGE SERVER":"Cambia Server","CHANGE_WAS_SERVER":"Cambia Server Wasabee","CHECKLIST BUTTON TITLE":"Checklist Operazione","CHECKLIST BUTTON":"Checklist","CLEAR LINKS":"Elimina Link","CLEAR MARKERS":"Elimina Marker","CLEAR_EVERYTHING":"Elimina tutti i Portali/Link/Marker","CLEAROPS BUTTON TITLE":"Elimina TUTTI i dati di Wasabee","CLEAROPS BUTTON":"Elimina i dati di Wasabee","CLEAROPS PROMPT":"Questo eliminerà tutte le OP e i dati relativi a Wasabee. Saranno ripristinati alla prossima sincronizzazione.","CLOSE":"Chiudi","COMMENT":"Commento","COMPLETED BY":"Completato da {agentName}","completed":"Completato","CON_DEL":"Conferma eliminazione: {opName}","COUNT":"Conteggio","CREATE_NEW_TEAM":"Crea Nuovo Team","CreateLinkAlert":"Linkare","CUR_USER_INFO":"Informazioni utente attuale","D_SHOW_LIST":"Inserisci chiavi difensive","DEFAULT OP NAME":"Nuova Op: {date}","DELETE ANCHOR PROMPT":"Vuoi eliminare quest\'ancora e tutti i link associati:","DELETE ANCHOR TITLE":"Elimina Ancora","DELETE MARKER PROMPT":"Vuoi eliminare questo Marker:","DELETE MARKER TITLE":"Elimina Marker","DELETE_ANCHOR":"Elimina","DELETE_LINK":"Elimina","DELETE_OP":"Eliminare {opName}","DESCRIP_PLACEHOLD":"Descrizione (facoltativo)","DestroyPortalAlert":"Distruggere","dialog.about.download_mobile_app":"

App Wasabee:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Imposta commento per {agentName}","dialog.auth.ott.button":"Login con One Time Token","dialog.auth.ott.text":"Ottieni un token dal Server Wasabee, quindi incollalo qui","dialog.auth.ott.title":"One Time Token","dialog.blockers.clear_automark":"Pulisci Automark","dialog.clear_all.text":"Vuoi resettare {opName}?","dialog.clear_all.title":"Pulisci: {opName}","dialog.clear_links.text":"Vuoi rimuovere tutti i link da {opName}?","dialog.clear_links.title":"Pulisci link: {opName}","dialog.clear_markers.text":"Vuoi rimuovere tutti i marker da {opName}?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Conta field","dialog.checklist.count_fields.no_empty":"Trovati {fieldCount} field e nessun field vuoto","dialog.checklist.count_fields.with_empty":"Trovati {fieldCount} field e {emptyCount} field vuoti su {linkCount} link","dialog.checklist.count_fields.link_from_inside":"Trovati {count} link da portali coperti","dialog.checklist.count_fields.link_from_inside.covered_at_order":" a {order} tramite link ","dialog.common.color":"Color","dialog.common.commands":"Comandi","dialog.common.commands_short":"Cmd","dialog.common.delete":"Delete","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Nome","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Proprietario","dialog.common.zone_all":"Tutto","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Visita {url} e premi il pulsante per autorizzare gli aggiornamenti live. Dovrai ricaricare IITC.","dialog.import.url":"Importa da URL","dialog.import.success_message":"Importazione completata. Trovati {count} portali e usati {faked} finti. Si prega di utilizzare la funzione di scambio per spostare i portali finti sui portali reali alla stessa posizione. Zoomando sui portali \'Caricamento\' nella checklist potrebbe forzarne il caricamento.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"Se lasci {teamName} non potrai ricollegarti a meno che il proprietario non ti aggiunga nuovamente.","dialog.leave_team.title":"Lascia: {teamName}","dialog.link_list.length":"Lunghezza","dialog.link_list.level":"Livello minimo","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Cancel upload","dialog.conflict.conflicts":"Conflicts:","dialog.conflict.local":"Local copy","dialog.conflict.server":"Server copy","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Assign:","dialog.conflict.prop.comment":"Comment:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"From:","dialog.conflict.prop.hardness":"Hard:","dialog.conflict.prop.order":"Order:","dialog.conflict.prop.state":"State:","dialog.conflict.prop.toPortal":"To:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Azioni","dialog.online_agents.last_seen":"Ultimo accesso","dialog.online_agents.title":"Agenti Online","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zone","dialog.ops_list.background_disable":"Disabilita background","dialog.ops_list.background_enable":"Mostra in background","dialog.ops_list.download":"Scarica {opName}","dialog.ops_list.last_fetched":"Ultimo scarico: {date}","dialog.ops_list.local_change":"Locale modificato","dialog.ops_list.remote_change":"Remoto modificato","dialog.ops_list.toggle_hide":"Toggle Show/Hide","dialog.ops_list.unhide_ops":"Unhide all OPs","dialog.remove_agent.text":"Do you want to remove {agentName} from {teamName}?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Durezza","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"Load W-D Keys","dialog.team_list.share_wd_keys":"Share W-D Keys","dialog.team_manage.join_link":"Join Link","dialog.team_manage.join_link.create":"Create","dialog.team_manage.join_link.revoke":"Revoke","dialog.team_members.location":"Sharing Location","dialog.team_members.wd_keys":"Sharing W-D Keys","dialog.team_message":"Team announcement: “{message}” from {sender}","dialog.update_warning":"Wasabee is out of date. Please update using your plugin manager or by going to https://wasabee.rocks","dialog.zone_color.title":"Zone Color","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Formato Draw Tools","DUPE_OP":"Duplica Operazione","END_PORT":"Portale di fine ","ExcludeMarker":"Escludi da Auto-Draw/Mark","EXPORT OP TITLE":"Esporta Op attuale","EXPORT OP":"Esporta Op","EXPORT":"Esporta:","FAKED":"Simulato: [{portalId}]","FANFIELD":"Fanfield!","FANFIELD2":"Fanfield","FarmPortalMarker":"Farmare","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Da una data ancora, un insieme di portali visibili e un certo numero di SBUL, trova un fanfield per tirare link dall\'ancora diminuendo la distanza per evitare di cercare chiavi.","FLIP_FLOP_INSTRUCTION":"Seleziona un portale, zooma per vedere abbastanza portali e premi Disegna. Una volta trovato un fanfield, puoi cercare altre ancore per tiri successivi","FLIP_FLOP_FIND_ANCHORS":"Trova altre ancore","FROM_1-2":"dalla base 1-2","FROM_1-3":"dalla base 1-3","FROM_2-3":"dalla base 2-3","FROM_DEPTH":"dalla profondità","FROM_PORT":"Portale di origine","GET DT":"Usa disegno DrawTools esistente","GetKeyPortalMarker":"Ottienere Chiavi","GotoPortalMarker":"Andare A","H-GEN_INST":"Seleziona Portali per lo strato esterno. Scegli il numero di split. Clicca Disegna","HF_DEEP_SEARCH":"Ricerca esaustiva","HF_DRAW_BUTTON":"Disegna","HF_REDRAW_BUTTON":"Ridisegna","HG":"Field Omogeneo","HOURS":" ({hours} ore fa)","HOW_TO_VIDS":"

Video tutorial:

","IMP_NOPE":"Importazione Fallita: {error}","IMP_WAS_OP":"Importa Operazione Wasabee","IMPORT_OP_SUCCESS":"Importata Operazione: {opName} con successo.","IMPORT_OP_TITLE":"Importa Op: {date}","IMPORT_OP":"Importa Operazione","IMPOSSIBLE":"Impossibile","INGNAME_GID":"Nome Ingress o GoogleID","INPUT_DT_KEY_COUNT":"Inserisci numero Chiavi difensive","INVALID REQUEST":"Richiesta non valida","IOS NEED FAKE UA":"Devi impostare un \'Custom UserAgent for Webviews\' nelle impostazioni di IITC-Mobile o il login fallirà","KEY_LIST2":"Lista Chiavi per Operazione: {opName}","KEYS":"Chiavi","KNOWN_BLOCK":"Bloccanti conosciuti: {opName}","LA DESC":"In base al numero di Link Amp usati, potrebbe bastare un livello del Portale più basso.","LA":"L8+ qualche LA","LANG":"Lingua","LEAVE":"Esci","LetDecayPortalAlert":"Lasciare Decadere","LINK ASSIGNMENT":"Assegna link a:","LINK STATE PROMPT":"Stato Link","LINK STATE":"Imposta stato link:","LINKS BUTTON TITLE":"Link","LINKS":"Link","LINKS2":"{portalName} : Link ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Carica Portali","LOADING":"[caricamento]","LOADING1":"Caricamento: [{portalGuid}]","LOC_PROC":"posizione processata","LOCATION SUB":"Posizione registrata","LOCFRMSER":" (locale e dal server)","LOG IN":"Accedi","LOG_OUT":"Logout","MADRID_SET_1":"Seleziona l\'area per la base da Ancora 2 a Ancora 3","MADRID_SET_2":"Seleziona l\'area per la base da Ancora 3 a Ancora 1","MADRID_SET_3":"Seleziona l\'area per la base da Ancora 1 a Ancora 2","MADRID_TITLE":"Protocollo Madrid","MADRID_WAS_TAKEN":"Protocollo Madrid","MADRID":"Disegna","MANAGE_TEAM":"Gestisci {teamName}","MANAGE":"Gestisci","MARKER ASSIGNMENT":"Assegna marker a:","MARKER LIST TITLE":"Lista Marker","MARKER LIST":"Marker","MARKER STATE PROMPT":"Stato Marker","MARKER STATE":"Imposta stato marker:","MARKER_LIST":"Lista Marker: {opName}","MARKERS BUTTON TITLE":"Marker","MAX_SPLITS":"Più Split possibili","MAX":"Fan Field","MeetAgentPortalMarker":"Incontrare Agente","MERGE ON UPDATE":"Unisci all\'aggiornamento","MERGE_CHANGES_LOCAL":"Modifiche locali","MERGE_CHANGES_MERGE":"Risultato unione","MERGE_CHANGES_REMOTE":"Modifiche remote","MERGE_LOCAL":"Mantieni in locale","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, replace the local version with the server version, or cancel?","MERGE_REBASE":"Rebase","MERGE_REPLACE":"Replace","MERGE_TITLE":"Unisci OP locale e remota","MIN_SRC_PORT_LVL":"Livello minimo richiesto sul portale d\'origine","MINUTES":" ({minutes} minuti fa)","MM":"Multimax","MM_BOTH_SIDE":"Usa entrambi i lati della base","MM_INSERT_ORDER":"Inserisci alla fine","MM_SET_ALL_PORTALS":"Tutti i portali visibili","MM_SET_ALL_KEYS":"Tutti i Marker OttieniChiave","MM_SET_KEYS_ZONE":"OttieniChiave: {zoneName}","MM_SPINE":"Filotto","MULTI_M_TITLE":"Disegna più strati possibile","MULTI_M":"Disegna","MUST_NOT_BE_EMPTY":"Non può essere vuoto","MY_CAP_ID":"ID Capsula","MY_COUNT":"Conteggio","NAME_REQ":"Nome Richiesto","NAME":"Nome:","NEW_OP":"Nuova Operazione","NEW_TEAM_NAME":"Nuovo nome Team","NEW_TEAM":"Clicca per creare un nuovo Team","NEW_WAS_SERVER":"Nuovo Server Wasabee","NEWOP BUTTON TITLE":"Crea una nuova Operazione","NEWOP BUTTON":"Nuova Op","NO_DT_ITEMS":"Disegni DrawTools non rilevati","NO_LABEL":"Etichetta non impostata","NO_STOCK_INTEL":"Wasabee non supporta importazioni di disegni dalla intel stock","NO_TITLE":"Titolo non impostato","NO LONGER AVAILABLE":"Risorsa rimossa dal server: {error}","NO LONGER AVAILABLE SHORT":"Risorsa rimossa dal server","NOT LOGGED IN SHORT":"Non loggato","NOT LOGGED IN":"Non loggato: {error}","NOT_LOADED":"Caricamento incompleto, riprova.","NOT_SET":"non impostato","NTNAME":"Nome","OK":"OK","ON_HAND":"Ottenute","ONION_WAS_TAKEN":"Cipolla","ONION":"Disegna","ONLY_DT_IMP":" (solo per importazioni da DrawTools)","OP DELETED":"Operazione rimossa dal server: {opID}","OP PERM DENIED":"Accesso negato all\'operazione: {opID}","OP_CHECKLIST":"Checklist Operazione: {opName}","OP_NAME_UNSET":"Nome Operazione azzerato","OP_PERMS":"Permessi Op","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Impostazioni Operazione","OPEN_REQUEST":"[apri richiesta]","OPER_COLOR":"Colore Operazione:","OPER_NAME":"Nome Operazione:","OPERATIONS":"Operationi","OPS BUTTON TITLE":"Operazioni","OPS BUTTON":"Ops","ORDER":"Ordina","OtherPortalAlert":"Altro","PASTE_INSTRUCT":"Incolla un disegno esportato da Wasabee qui.\\n\\nWasabee non può importare il formato intel stock.\\n\\nL\'importazione di disegni in formato IITC DrawTools è supportata in modo sperimentale.\\n\\nPrima di importare in formato DrawTools, controlla l\'area e fai in modo che tutti i portali carichino, così da essere nella cache di IITC. Ogni Portale non nella cache sarà \'finto\'.\\n\\nDovrete usare la funzione \'swap\' per spostare le ancore dai portali \'finti\' a quelli veri (dovrebbero essere al posto giusto, solo non associate al Portale).\\n\\nI Portali nella cache potrebbero non avere il giusto nome.","pending":"In corso","PERM DENIED":"Accesso negato: {error}","PERM DENIED SHORT":"Accesso negato","PERMS":"{opName} permessi","PLEASE_SELECT_PORTAL":"Seleziona un portale","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Keys: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Set State","PORTAL KEY LIST":"Lista Chiavi per Portale: {portalName}","PORTAL_COUNT":"{count} Portali","PORTAL":"Portale","QD BUTTON CHANGE COLOR":"Clicca per cambiare il colore dei prossimi link","QD BUTTON END":"Clicca per interrompere il disegno dei field","QD BUTTON TOGGLE MODE":"Clicca per cambiare la modalità di disegno","QD CHANGE COLOR":"Cambia colore","QD END":"Fine","QD TITLE":"Disegno Rapido Strati","QD TOGGLE MODE":"Cambia modalità","QDBASE":"Link Base","QDCONT":"Clicca su un portale del filotto per disegnare un field.","QDNEXT":"Clicca il secondo Portale Ancora.","QDSTART":"Clicca il primo Portale Ancora.","READ_SHORT":"SL","READ":"Lettura","RechargePortalAlert":"Ricaricare","REFERENCE_TIME":"Ora riferimento:","REM_LOC_CP":"Elimina copia locale di {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Vuoi eliominare definitivamente {teamName} dal Server Wasabee?","REMOVE_TEAM_CONFIRM_TITLE":"Elimina team {teamName}","REMOVE_TEAM":"Elimina Team:","REMOVE":"Elimina","RENAME_TEAM":"Rinomina Team:","RENAME":"Rinomina","REQUIRED":"Richieste","RESET":"Reset","REVERSE":"Inverti","ROCKS_COM":"community enl.rocks:","ROLE":"Ruolo","SAVELINKS TITLE":"Salva Link","SAVELINKS_DRAW":"Salva Link","SAVELINKS":"Salva Link","SECONDS":" ({seconds} secondi fa)","SEL_SB_ANCHOR":"Imposta l\'ancora.","SEL_SB_ANCHOR2":"Zooma indietro. Assicurati che tutti i Portali siano caricati, poi clicca Disegna.","SEL_SL_ANCHOR":"Seleziona il portale di cui salvare il link. Clicca il pulsante Salva Link e guarda la checklist.","SEL_SRC_ANC2":"Seleziona Origine e Ancora 2","SEL_SRC_PORT":"Seleziona un Portale di Origine","SELECT PORTAL":"Seleziona un portale","SELECT_FAN_PORTALS":"Seleziona un\'ancora, un Portale di inizio e uno di fine, poi zooma su un\'area per il fanfield.","SELECT_FAN_PORTALS2":"Aspetta che i Portali siano caricati, poi clicca Disegna.","SELECT_INSTRUCTIONS":"Seleziona due ancore, poi zooma sul filotto","SELECT_ONION_PORTALS":"Strati creati da dentro a fuori. Zooma sul centro e seleziona il portale di inizio, poi zooma indietro sull\'area.","SELF SWAP":"Non si può scambiare un portale con se stesso! Seleziona un altro portale.","SEND ANALYTICS":"Invia dati di utilizzo anonimi","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Seleziona destinatario target","SEND TARGET CONFIRM":"Vuoi inviare il target {portalName} a {agent}?","SEND TARGET":"Invia target","SEND_LOC":"Invia posizione","SET_3_PORT":"Imposta prima i tre portali","SET_COMMENT":"Imposta Commento","SET_LCOMMENT":"Imposta commento Link","SET_LINK_COMMENT":"Imposta commento per il link:","SET_LINKS_ZONES":"Imposta Link alle Zone","SET_MARKER_COMMENT":"Imposta commento per il marker su:","SET_MARKER_TYPE_TITLE":"Cambia tipo marker","SET_MARKERS_ZONES":"Imposta Marker alle Zone","SET_MCOMMENT":"Imposta commento Marker: {portalName}","SET_NEW_OP":"Impostare il nuovo Nome Operazione","SET_PCOMMENT":"Imposta commento Portale: {portalName}","SET_PORT_COMMENT":"Imposta il commento per il Portale:","SET_PORTAL_COMMENT":"Imposta commento Portale","SET":"impostato","SETTINGS_TOOLBOX":"Wasabee Settings","SETTINGS_TITLE":"Advanced Settings","SKINS_AVAILABLE":"Sono disponibili {count} skin.","SKINS_BUTTON":"Configura Skin","SKINS_DESCRIPTION":"Gestisci le skin disponibili spostandole nella colonna di sinistra. Le skin più in basso hanno priorità più alta sulla UI.","SKINS_MANAGE_TITLE":"Gestisci skin","SKIP_CONFIRM_ALWAYS":"Non chiedere mai (usare con cautela)","SKIP_CONFIRM_ENTITY":"Chiedi solo per squadra/op","SKIP_CONFIRM_NEVER":"Chiedi sempre","SKIP_CONFIRM":"Salta conferma","SOURCE_PORT":"Portale di Origine","STARBURST TITLE":"Starburst ","STARBURST_DRAW":"Disegna","STARBURST":"Starburst","START_PORT":"Portale di Partenza ","STATE":"Stato","SUPPORT_INSTRUCT":"Per assistenza, entrate nel Canale Telegram per Utenti di Wasabee","SWAP PROMPT":"Vuoi scambiare:","SWAP TITLE":"Scambia portali","SWAP WITH":" con ","SWAP":"Scambia","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Download Completato
Fare clic QUI per suggerimenti, suggerimenti e documentazione.","SYNC":"Scarica Operazioni disponibili","TARGET SENT":"Target inviato","TEAM STATE":"Condividi Posizione","TEAM_CREATED":"Team {teamName} creato","TEAM_NAME":"Nome Team","TEAM":"Squadra","TEAMS BUTTON TITLE":"Lista Team Wasabee","TEAMS BUTTON":"Team","TO_PORT":"Al Portale","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Applica","toolbar.quick_delete.apply.title":"Elimina link/marker selezionati","toolbar.quick_delete.cancel.text":"Annulla","toolbar.quick_delete.cancel.title":"Annulla","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Esci dalla modalità eliminazione","toolbar.quick_delete.title":"Eliminazione rapida","toolbar.quick_delete.tooltip.toggle_mode":"Clicca sugli oggetti per segnarli \\"da eliminare\\"","toolbar.quick_delete.tooltip.quick_mode":"Clicca sugli oggetti per eliminarli","toolbar.quick_draw.tooltip.star_mode.anchor":"Seleziona l\'ancora della star","toolbar.quick_draw.tooltip.star_mode.portal":"Seleziona un portale","toolbar.quick_draw.tooltip.single_mode.first":"Clicca il primo portale","toolbar.quick_draw.tooltip.single_mode.next":"Clicca il portale successivo","toolbar.quick_draw.tooltip.portal_fail":"Dati portale non caricati, riprova","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Settings","toolbox.teammates":"Teammates Online","TRAWL SKIP TILES":"Salta tile durante controllo","TRAWL TITLE":"Controllo corridoi","TRAWL WARNING":"Verranno caricati i dati delle tile sotto i link disegnati. Sarà un processo lento.","TRAWL_AUTOMARK":"Auto-mark dei bloccanti dopo controllo","TRAWL_BULK_LOAD_WARNING":"Questo metodo carica i dati delle tile il più in fretta possibile. Usalo a tuo rischio.","TRAWL_BULK_LOAD":"Carica dati tile in bulk","TRAWL_CLEAR_MARKERS":"Rimuovi marker virus/destroy prima di ricercare","TRAWL_REMAINING":"{count} tile rimanenti","TRAWL":"Ricerca dettagliata dei Bloccanti","TRAWLING":"Sto controllando i corridoi per Bloccanti, chiudi questo dialogo per fermare.","TYPE":"Tipo","UNASSIGNED":"Non Assegnato","UNKNOWN":"Sconosciuto","UPDATE HOVER":"AGGIORNA {opName} sul server","UPDATE PERM DENIED":"Non hai il permesso di aggiornare","UPDATE_CONFLICT_DESC":"L\'OP è stata modificata sul server dopo la tua ultima sincronizzazione. Vuoi sostituire la versione sul server con la attuale?","UPDATE_CONFLICT_TITLE":"Rilevato conflitto con il server","UPDATE_COUNT":"Aggiorna conteggio","UPDATED":"Aggiornato con successo","UpgradePortalAlert":"Upgradare","UPLOAD BUTTON HOVER":"CARICA {opName} (al momento non sul server)","UPLOADED":"Caricato con successo","USE PANES ON MOBILE":"Usa riquadri (richiede reload)","USE_VALID_NAME":"Usa un nome operazione valido","UseVirusPortalAlert":"Usare Virus","VRLA DESC":"In base al tipo e al numero di Link Amp usati, potrebbe bastare un portale di origine di livello più basso.","VRLA":"L8+qualche VRLA","WASABEE BUTTON TITLE":"Wasabee: è verde e fa piangere i puffi.","WASABEE_D_LIST":"Inserisci numero chiavi difensive","WD BUTTON TITLE":"Registra chiavi difensive","WD BUTTON":"Chiavi W-D","WRITE_SHORT":"LS","WRITE":"scrittura","WSERVER":"Server: {url}","YESNO_DEL":"Sei sicuro di voler eliminare {opName}?","ZONE_DRAW":"Clicca per impostare i confini della zona","ZONE":"Area","smallScreen":{"ADD_LINKS":"+ Link","ADD_MARKER":"+ Marker"}}'),Tagalog:JSON.parse('{"ABOUT_WASABEE":"Tungkol sa Wasabee","acknowledged":"Natanggap","ADD LINK TITLE":"Magdagdag ng Links","ADD MARKER TITLE":"Magdagdag ng Markers","ADD_AGENT":"Magdagdag ng Agent:","ADD_BL":"Magdagdag ng Back Links:","ADD_BULK":"Maramihang idagdag","ADD_BUTTON_LINKS":"Sabay-sabay idagdag ang lahat ng link","ADD_LINKS":"Magdagdag ng Link","ADD_MARKER":"Magdagdag ng Marker","ADD_NEW_OP":"Magdagdag ng Bagong Op","ADD_SUCC_INSTR":"Matagumpay na naidagdag","ADD_ZONE":"Add Zone","ADD":"Magdagdag","ADD1":"Add first link","ADD2":"Add second link","AGENT_STATS":"Agent Stats","AGENT":"Agent","AGES":" (matagal na panahon)","ALREADY_HAS_MARKER":"May Marker ang portal na ito. Pumili ng ibang portal.","AMAZ_TEAM_NAME":"Malupet na Pangalan ng Pangkat","ANCHOR ASSIGNMENT":"Assign all outbound links to:","ANCHOR_GMAP":"Google Map","ANCHOR_PORTAL":"Anchor Portal","ANCHOR_PORTAL2":"Anchor Portal 2","ANCHOR_PORTAL3":"Anchor Portal 3","ANCHOR1":"Anchor 1","ANCHOR2":"Anchor 2","ANCHOR3":"Anchor 3","ANCHORS_AS_BOOKMARKS":"Anchors as bookmarks","API_KEY":"Rocks API key:","ASS_TO":"Nakatalaga kay","ASSIGN LINK PROMPT":"Magatalaga ng link mula: {portalName}","ASSIGN MARKER PROMPT":"Magtalaga ng marker mula: {portalName}","ASSIGN OUTBOUND PROMPT":"I-Talaga lahat ng outbound links mula: {portalName}","ASSIGN OUTBOUND":"Magtalaga ng Outbound Links","ASSIGN":"Italaga","ASSIGNED_ONLY_SHORT":"AO","ASSIGNED_ONLY":"Assigned Only","assigned":"Naitalaga","AUTH INCOMPAT":"May ginagamit kang plugin sa TamperMonkey na hindi angkop sa Wasabee","AUTH REQUIRED":"Kailangan ng Authentication","AUTH TOKEN REJECTED":"Pagpapadala ng auth token sa server natanggihan {error}","AUTH_SELECT_ACCOUNT":"Select account","AUTO_DRAWS":"Auto-draw","AUTODRAWS":"Wasabee Auto-draw Options","AUTODRAW_PORTALS_SET":"Portals","autodraw.common.draw_button":"Draw","autodraw.fanfield.result":"Fanfield found {links} links and {fields} fields for {ap} AP","autodraw.flipflop.result":"Flip flop: found {count} links","autodraw.homogeneous.missing_split":"Unable to find {count} splits, try less depth or a different region","autodraw.homogeneous.order":"Order","autodraw.homogeneous.portals_required":"{count} required","autodraw.madrid.auto_determined":"Auto-determined","autodraw.madrid.balanced":"Balanced","autodraw.madrid.result":"Madrid found {count} layers","autodraw.multimax.result":"Multimax found {count} layers","autodraw.multimax.result_both_side":"Multimax found {count1} and {count2} layers","autodraw.onion.variant":"Option","autodraw.onion.variant.equilateral":"~Equilateral","autodraw.onion.variant.grow":"Let it grow","autodraw.onion.variant.balanced":"Perfectly balanced","AUTOLOAD_RATE":"Portal Detail Request Rate (ms)","AUTOLOAD":"Automatically Load Missing Portal Details","AUTOMARK STOP":"Itinigil ang pag Auto-Mark dahil hindi maiload ang mga portals","AUTOMARK":"Auto-Mark","BAT_TOAD":"Battle Toads","BLOCKER LIST TITLE":"Ipakita ang lahat ng blockers","BLOCKER TITLE":"Blockers","CANCEL":"Kanselahin","CAPSULE":"Capsule","CapturePortalMarker":"Kuhanin","CHANGE SERVER PROMPT":"Bagong Wasabee Server","CHANGE SERVER":"Magpalit ng Server","CHANGE_WAS_SERVER":"Ipalit ang Wasabee Server","CHECKLIST BUTTON TITLE":"Listahan ng Operasyon","CHECKLIST BUTTON":"Listahan","CLEAR LINKS":"Clear Links","CLEAR MARKERS":"Clear Markers","CLEAR_EVERYTHING":"Burahin Portals/Links/Markers","CLEAROPS BUTTON TITLE":"Burahin lahat ng locally stored na operasyon","CLEAROPS BUTTON":"Burahin Local Ops","CLEAROPS PROMPT":"Nais mo bang tangalin ang lahat ng opersyon sa local storage? Ang mga Ops na nakalagay sa server ay mababawi sa susunod na sync.","CLOSE":"Close","COMMENT":"Komentaryo","COMPLETED BY":"Nakumpleto ni {agentName}","completed":"Naikumpleto","CON_DEL":"Kumpirmahin ang Pagtangal: {opName}","COUNT":"Bilang","CREATE_NEW_TEAM":"Magbuo ng bagong Pangkat","CreateLinkAlert":"Link","CUR_USER_INFO":"Kasalukuyang Impormasyon ng User","D_SHOW_LIST":"Ipasok ang Defensive Keys","DEFAULT OP NAME":"Bagong Op {date}","DELETE ANCHOR PROMPT":"Gusto mo bang tangalin ang anchor na ito at ang lahat ng links na nakakabit:","DELETE ANCHOR TITLE":"Tanggalin ang Anchor","DELETE MARKER PROMPT":"Gusto mo bang tangalin ang marker na ito:","DELETE MARKER TITLE":"Tanggalin ang Marker","DELETE_ANCHOR":"Tangalin","DELETE_LINK":"Tangalin","DELETE_OP":"Tangalin {opName}","DESCRIP_PLACEHOLD":"Description (opsyonal)","DestroyPortalAlert":"Sirain","dialog.about.download_mobile_app":"

Wasabee App:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Set comment for {agentName}","dialog.auth.ott.button":"One Time Token Login","dialog.auth.ott.text":"Get a token from the Wasabee Server, then paste it here","dialog.auth.ott.title":"One Time Token","dialog.blockers.clear_automark":"Clear Automark","dialog.clear_all.text":"Do you want to reset {opName}?","dialog.clear_all.title":"Clear: {opName}","dialog.clear_links.text":"Do you want to remove all links from {opName}?","dialog.clear_links.title":"Clear Links: {opName}","dialog.clear_markers.text":"Do you want to remove all markers from {opName}?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Count fields","dialog.checklist.count_fields.no_empty":"Found {fieldCount} fields and no empty field","dialog.checklist.count_fields.with_empty":"Found {fieldCount} fields and {emptyCount} empty field(s) on {linkCount} link(s)","dialog.checklist.count_fields.link_from_inside":"Found {count} links from covered portals","dialog.checklist.count_fields.link_from_inside.covered_at_order":" at {order} by link ","dialog.common.color":"Color","dialog.common.commands":"Commands","dialog.common.commands_short":"Cmds","dialog.common.delete":"Delete","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Name","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Owner","dialog.common.zone_all":"All","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Visit {url} and press the button to authorize live updates. You will need to reload IITC afterward.","dialog.import.url":"Fill from URL","dialog.import.success_message":"Import Complete. Found {count} portals and used {faked} faked. Please use the swap feature to move faked portals to the real portals at the same location. Zooming in on the \'Loading\' portals in the checklist might force them to load.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"If you leave {teamName} you cannot rejoin unless the owner re-adds you.","dialog.leave_team.title":"Leave: {teamName}","dialog.link_list.length":"Length","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Cancel upload","dialog.conflict.conflicts":"Conflicts:","dialog.conflict.local":"Local copy","dialog.conflict.server":"Server copy","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Assign:","dialog.conflict.prop.comment":"Comment:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"From:","dialog.conflict.prop.hardness":"Hard:","dialog.conflict.prop.order":"Order:","dialog.conflict.prop.state":"State:","dialog.conflict.prop.toPortal":"To:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Actions","dialog.online_agents.last_seen":"Last Seen","dialog.online_agents.title":"Online Agents","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zones","dialog.ops_list.background_disable":"Disable background","dialog.ops_list.background_enable":"Show in background","dialog.ops_list.download":"Download {opName}","dialog.ops_list.last_fetched":"Last fetched: {date}","dialog.ops_list.local_change":"Local has changed","dialog.ops_list.remote_change":"Remote has changed","dialog.ops_list.toggle_hide":"Toggle Show/Hide","dialog.ops_list.unhide_ops":"Unhide all OPs","dialog.remove_agent.text":"Do you want to remove {agentName} from {teamName}?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Hardness","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"Load W-D Keys","dialog.team_list.share_wd_keys":"Share W-D Keys","dialog.team_manage.join_link":"Join Link","dialog.team_manage.join_link.create":"Create","dialog.team_manage.join_link.revoke":"Revoke","dialog.team_members.location":"Sharing Location","dialog.team_members.wd_keys":"Sharing W-D Keys","dialog.team_message":"Team announcement: “{message}” from {sender}","dialog.update_warning":"Wasabee is out of date. Please update using your plugin manager or by going to https://wasabee.rocks","dialog.zone_color.title":"Zone Color","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Draw Tools Format","DUPE_OP":"Kopyahin ang Operasyon","END_PORT":"End Portal ","ExcludeMarker":"Ibukod sa Auto-Draw/Pag-marka","EXPORT OP TITLE":"I-Export ang kasalukuyang op","EXPORT OP":"I-Export ang Op","EXPORT":"Export:","FAKED":"Faked: [{portalId}]","FANFIELD":"Guhit","FANFIELD2":"Iguhit ang Fanfield","FarmPortalMarker":"Farm","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"From a given anchor, a set of visible portal and a number of SBUL, find a fanfield to throw links from the anchor by decreasing distance to avoid searching keys.","FLIP_FLOP_INSTRUCTION":"Select a portal, zoom to see enough portals and press Draw. Once a fanfield is found, you can search for other anchors for consecutive rethrow","FLIP_FLOP_FIND_ANCHORS":"Find other anchors","FROM_1-2":"from base 1-2","FROM_1-3":"from base 1-3","FROM_2-3":"from base 2-3","FROM_DEPTH":"from the depth","FROM_PORT":"Mula sa Portal","GET DT":"Get existing DrawTools draw","GetKeyPortalMarker":"Kunin ang Keys","GotoPortalMarker":"Pumunta","H-GEN_INST":"Set portals for the outside layer. Choose number of splits. Click draw","HF_DEEP_SEARCH":"Exhaustive search","HF_DRAW_BUTTON":"Draw","HF_REDRAW_BUTTON":"Redraw","HG":"Homogeneous Field","HOURS":" ({hours} oras nakalipas)","HOW_TO_VIDS":"

How-To Videos:

","IMP_NOPE":"Pag-I-Import Hindi Matagumpay: {error}","IMP_WAS_OP":"I-Import ang Wasabee operasyon","IMPORT_OP_SUCCESS":"Na-Import na Operasyon: {opName} Matagumpay.","IMPORT_OP_TITLE":"Na-Import na Op: {date}","IMPORT_OP":"I-Import ang Operasyon","IMPOSSIBLE":"Imposible","INGNAME_GID":"Pangalan sa Ingress o GoogleID","INPUT_DT_KEY_COUNT":"Ilagay ang Bilang ng Pangharang na Keys","INVALID REQUEST":"Hindi wastong Request","IOS NEED FAKE UA":"Kailangang pumili ng \'Custom UserAgent for Webviews\' sa IITC-Mobile settings para makapag-login ng maayos","KEY_LIST2":"Litahan ng Keys para sa Operation: {opName}","KEYS":"Keys","KNOWN_BLOCK":"Nalalamang Blockers: {opName}","LA DESC":"Depende sa dami at uri ng Link Amps, ang mas mababang panimulang portal level ay maaaring piliin.","LA":"L8 at ilang LA","LANG":"Wika","LEAVE":"Ialis","LetDecayPortalAlert":"Ipa-decay","LINK ASSIGNMENT":"Assign link to:","LINK STATE PROMPT":"estado ng Link","LINK STATE":"Set link status:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Load Portals","LOADING":"[loading]","LOADING1":"Loading: [{portalGuid}]","LOC_PROC":"Lokasyon nai-proseso","LOCATION SUB":"Nairehistro ang lokasyon","LOCFRMSER":" (locally at sa server)","LOG IN":"Mag Log In","LOG_OUT":"Log Out","MADRID_SET_1":"Select the region for baselink Anchor 2 to Anchor 3","MADRID_SET_2":"Select the region for baselink Anchor 3 to Anchor 1","MADRID_SET_3":"Select the region for baselink Anchor 1 to Anchor 2","MADRID_TITLE":"Madrid Protocol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Draw","MANAGE_TEAM":"Ipamahala {teamName}","MANAGE":"Ipamahala","MARKER ASSIGNMENT":"Assign marker to:","MARKER LIST TITLE":"Listahan ng Marker","MARKER LIST":"Markers","MARKER STATE PROMPT":"Estado ng Marker","MARKER STATE":"Set marker state:","MARKER_LIST":"Listahan ng Marker: {opName}","MARKERS BUTTON TITLE":"Markers","MAX_SPLITS":"Max Splits","MAX":"Fan Field","MeetAgentPortalMarker":"Kitain ang Agent","MERGE ON UPDATE":"Merge on update","MERGE_CHANGES_LOCAL":"Local changes","MERGE_CHANGES_MERGE":"Merge result","MERGE_CHANGES_REMOTE":"Remote changes","MERGE_LOCAL":"Keep local","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, replace the local version with the server version, or cancel?","MERGE_REBASE":"Rebase","MERGE_REPLACE":"Replace","MERGE_TITLE":"Merge local&remote OP","MIN_SRC_PORT_LVL":"Pinakamababang level kailangan sa on panimulang portal","MINUTES":" ({minutes} minutong nakalipas)","MM":"Multimax","MM_BOTH_SIDE":"Use both base sides","MM_INSERT_ORDER":"Insert at the end","MM_SET_ALL_PORTALS":"All visible portals","MM_SET_ALL_KEYS":"All GetKey Markers","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Spine","MULTI_M_TITLE":"Gumuhit ng Max Layers","MULTI_M":"Multimax","MUST_NOT_BE_EMPTY":"Hindi maari na walang laman","MY_CAP_ID":"Aking Capsule ID","MY_COUNT":"Aking Bilang","NAME_REQ":"Kilanakailangan ng Pangalan","NAME":"Pangalan:","NEW_OP":"Bagong Operasyon","NEW_TEAM_NAME":"Bagong Pangalan ng Pangkat","NEW_TEAM":"New Team","NEW_WAS_SERVER":"Bagong Waasbee Server","NEWOP BUTTON TITLE":"Bumuo ng bagong Operasyon","NEWOP BUTTON":"Bagong Op","NO_DT_ITEMS":"Walang DrawTools drawn items na nakita","NO_LABEL":"Walang tatak","NO_STOCK_INTEL":"Hindi suportado ng Wasabee ang stock intel draw imports","NO_TITLE":"Walang Pamagat","NO LONGER AVAILABLE":"Resource removed from server: {error}","NO LONGER AVAILABLE SHORT":"Resource removed from server","NOT LOGGED IN SHORT":"Hindi naka-Logged in","NOT LOGGED IN":"Hindi naka-Logged in {error}","NOT_LOADED":"Hindi nai-load, ulitin muli.","NOT_SET":"hindi naitalaga","NTNAME":"Pangalan","OK":"OK","ON_HAND":"On Hand","ONION_WAS_TAKEN":"Onion","ONION":"Draw","ONLY_DT_IMP":" (para lang sa DrawTools imports)","OP DELETED":"Operation removed from server: {opID}","OP PERM DENIED":"Walang pahintulot sa operasyon {opID}","OP_CHECKLIST":"Checklist ng Operasyon: {opName}","OP_NAME_UNSET":"Pangalan ng operasyon ay tinangal","OP_PERMS":"Permisyo sa Op","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Operation Settings","OPEN_REQUEST":"[open request]","OPER_COLOR":"Kulay ng Operasyon:","OPER_NAME":"Pangalan ng Operasyon:","OPERATIONS":"Mga Operasyon","OPS BUTTON TITLE":"Operasyon","OPS BUTTON":"Ops","ORDER":"Kaayusan","OtherPortalAlert":"Iba","PASTE_INSTRUCT":"I-Paste ang Wasabee draw export dito.\\n\\nHindi ma-import ng Wasabee ang stock intel format.\\n\\nMerong experimental na suporta para sa pag-import ng IITC DrawTools format.\\n\\nBago i-import ang DrawTools format, tignan ang mga areas at siguraduhing lahat ng portals naka-load para naka-cached ito sa IITC. Ang mga portals na hindi pre-cached ay that are not pre-cached ay ipapalit ng \'fake\' portal.\\n\\nKailangan mong gamitin ang \'Ipagpalit\' feature para ipatlit ang mga anchor mula sa fake portal sa tamang portal. (ang portal ay dapat nasa tamang lokasyon.\\n\\nAng mga pangalan ng naka-Cached na portals ay hindi maaring nakapangalan ng tama.)","pending":"Nakabinbin","PERM DENIED":"Walang pahintulot: {error}","PERM DENIED SHORT":"Walang pahintulot","PERMS":"{opName} permisyo","PLEASE_SELECT_PORTAL":"Pumili ng portal","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Keys: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Set State","PORTAL KEY LIST":"Listahan ng Key para sa Portal {portalName}","PORTAL_COUNT":"{count} portals","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Click to change next links color","QD BUTTON END":"I-Click para tapusin ang pagukit ng fields","QD BUTTON TOGGLE MODE":"Click to change draw mode","QD CHANGE COLOR":"Change color","QD END":"Wakas","QD TITLE":"Mabilisang Pagukit ng Layers","QD TOGGLE MODE":"Change mode","QDBASE":"Base Link","QDCONT":"I-Click ang mga spine portal para I-drawing ang field.","QDNEXT":"I-Click ang pangalawang anchor portal.","QDSTART":"I-Click ang unang anchor portal.","READ_SHORT":"RO","READ":"basahin","RechargePortalAlert":"Recharge","REFERENCE_TIME":"Reference Time:","REM_LOC_CP":"Tangalin ang local copy ng {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Gusto mong permanenteng tanggalin {teamName} sa Wasabee Server?","REMOVE_TEAM_CONFIRM_TITLE":"Tanggalin Pangkat {teamName}","REMOVE_TEAM":"Tanggalin Pangkat:","REMOVE":"Tangalin","RENAME_TEAM":"Palitan ang Pangalan ng Pangkat:","RENAME":"Palitan ang Pangalan","REQUIRED":"Kinakailangan","RESET":"Reset","REVERSE":"Reverse","ROCKS_COM":"enl.rocks community:","ROLE":"Papel","SAVELINKS TITLE":"Save Links","SAVELINKS_DRAW":"Save Links","SAVELINKS":"Save Links","SECONDS":" ({seconds} segundong nakalipas)","SEL_SB_ANCHOR":"Pillin ang anchor, I-zoom sa area para dagdagan sa starburst","SEL_SB_ANCHOR2":"Zoom out. Make sure portals have all loaded, then click draw.","SEL_SL_ANCHOR":"Select the portal to save the links of. Click save links button and look at checklist.","SEL_SRC_ANC2":"Piliin ang Panimula at Anchor 2","SEL_SRC_PORT":"Pumili ng panimulang portal","SELECT PORTAL":"Piliin ang portal na ipapadala","SELECT_FAN_PORTALS":"Pumili ng mga anchor portals, (isang panimulang portal at panghuling portal) tapos i-zoom in sa lugar na i-fan field, hintayin na mag load ang mga portals (dapat nasa screen ang mga portals) at pindutin ang Fanfield button.","SELECT_FAN_PORTALS2":"Wait for all portals to load, then click draw.","SELECT_INSTRUCTIONS":"Pumili ng dalawang anchor portals, tapos i-zoom in sa lugar para sa spine, hintayin mag-load ang mga portals (dapat nasa screen ang mga portals para gumana) tapos pindutin ang Multimax button.","SELECT_ONION_PORTALS":"Layers build from the inside out. Zoom in to center and select starting portal, then zoom out to area.","SELF SWAP":"Hindi maaari ipagpalit ang portal sa sarili! Pumili ng ibang portal.","SEND ANALYTICS":"Send Anonymous Analytics","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Select target recipient","SEND TARGET CONFIRM":"Gusto mong ipadala ang {portalName} target sa {agent}?","SEND TARGET":"Ipadala ang Target","SEND_LOC":"Ipalada ang Lokasyon","SET_3_PORT":"Pumili muna ng tatlong portals!","SET_COMMENT":"Magatalaga ng Komentayro","SET_LCOMMENT":"Italaga ang commento sa Link","SET_LINK_COMMENT":"Komento para sa link:","SET_LINKS_ZONES":"Set Links to Zones","SET_MARKER_COMMENT":"Komento para sa marker:","SET_MARKER_TYPE_TITLE":"Change marker type","SET_MARKERS_ZONES":"Set Markers to Zones","SET_MCOMMENT":"Italaga ang commento sa Marker: {portalName}","SET_NEW_OP":"Bigyan ng pangalan ang bagong operasyon","SET_PCOMMENT":"Italaga ang commento sa Portal: {portalName}","SET_PORT_COMMENT":"Komento para sa portal:","SET_PORTAL_COMMENT":"Magtalaga komento sa portal","SET":"italaga","SETTINGS_TOOLBOX":"Wasabee Settings","SETTINGS_TITLE":"Advanced Settings","SKINS_AVAILABLE":"There are {count} available skins.","SKINS_BUTTON":"Configure Skins","SKINS_DESCRIPTION":"Available skin packs are located in the right columns. Move skins you wish to use to the left columns.","SKINS_MANAGE_TITLE":"Manage skins","SKIP_CONFIRM_ALWAYS":"Never ask (use with caution)","SKIP_CONFIRM_ENTITY":"Only ask for team/op","SKIP_CONFIRM_NEVER":"Always ask","SKIP_CONFIRM":"Skip confirmation","SOURCE_PORT":"Source Portal","STARBURST TITLE":"Starburst ","STARBURST_DRAW":"Iguhit","STARBURST":"Starburst","START_PORT":"Panimulang Portal","STATE":"Estado","SUPPORT_INSTRUCT":"Para sa karagdagang tulong, sumali sa Ang Wasabee User Telegram Channel","SWAP PROMPT":"Gusto mo ba ipagpalit:","SWAP TITLE":"Ipagpalit ang Portals","SWAP WITH":" sa ","SWAP":"Ipagpalit","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Matagumpay na i-Download
Mag-click DITO para sa mga pahiwatig, tip, at dokumentasyon.","SYNC":"I-Download ang Matatamo na mga Operasyon","TARGET SENT":"Naipadala ang Target","TEAM STATE":"Share Location","TEAM_CREATED":"Pangkat {teamName} nabuo","TEAM_NAME":"Pangalan ng Pangkat","TEAM":"Pangkat","TEAMS BUTTON TITLE":"I-Lista mga Wasabee Pangkat","TEAMS BUTTON":"Pangkat","TO_PORT":"Papunta sa Portal","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Apply","toolbar.quick_delete.apply.title":"Delete selected links/markers","toolbar.quick_delete.cancel.text":"Cancel","toolbar.quick_delete.cancel.title":"Cancel","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Exit delete mode","toolbar.quick_delete.title":"Quick delete","toolbar.quick_delete.tooltip.toggle_mode":"Click on features to mark for deletion","toolbar.quick_delete.tooltip.quick_mode":"Click on features to delete instantly","toolbar.quick_draw.tooltip.star_mode.anchor":"Select the star anchor","toolbar.quick_draw.tooltip.star_mode.portal":"Select a portal","toolbar.quick_draw.tooltip.single_mode.first":"Click first portal","toolbar.quick_draw.tooltip.single_mode.next":"Click next portal","toolbar.quick_draw.tooltip.portal_fail":"Portal data not loaded, please try again","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Settings","toolbox.teammates":"Teammates Online","TRAWL SKIP TILES":"Trawl Skip Tiles","TRAWL TITLE":"Trawl Lanes","TRAWL WARNING":"This will load the tile data under all drawn links. This is a slow process.","TRAWL_AUTOMARK":"Auto-mark blockers after trawling","TRAWL_BULK_LOAD_WARNING":"This method loads the tile data as quickly as possible. Use at your own risk.","TRAWL_BULK_LOAD":"Bulk Load Tile Data","TRAWL_CLEAR_MARKERS":"Clear virus/destroy markers before trawling","TRAWL_REMAINING":"{count} tiles remaining","TRAWL":"Trawl for Blockers","TRAWLING":"Trawling the lanes for blockers, close this dialog to stop","TYPE":"Uri","UNASSIGNED":"Hindi Nakatalaga","UNKNOWN":"Nakatago","UPDATE HOVER":"UPDATE {opName} sa server","UPDATE PERM DENIED":"Walang pahintulot para sa pag-update","UPDATE_CONFLICT_DESC":"The OP has been modified on server since last sync. Do you want to replace the server version by the current one?","UPDATE_CONFLICT_TITLE":"Conflict detected with server","UPDATE_COUNT":"I-Update ang bilang","UPDATED":"Matagumpay na i-update","UpgradePortalAlert":"Upgrade","UPLOAD BUTTON HOVER":"UPLOAD {opName} (kasalukuyang wala sa server)","UPLOADED":"Matagumpay na i-upload","USE PANES ON MOBILE":"Use panes (need reload)","USE_VALID_NAME":"Gumamit ng naaayon na pangalan ng operasyon","UseVirusPortalAlert":"Gumamit ng Virus","VRLA DESC":"Depende sa dami at uri ng Link Amp, ang mas mababang panimulang portal level ay maaaring piliin.","VRLA":"L8 at ilang VRLA","WASABEE BUTTON TITLE":"Wasabee: Lumot na siya! Paiyakin ang mga Smurfs!","WASABEE_D_LIST":"Ipasok ang Bilang ng Defensive Key","WD BUTTON TITLE":"Ilagay mga Pangharang na Keys","WD BUTTON":"W-D Keys","WRITE_SHORT":"RW","WRITE":"isulat","WSERVER":"Server: {url}","YESNO_DEL":"Sigurado ka na gusto mo burahin ang {opName}?","ZONE_DRAW":"Click to set the zone boundaries","ZONE":"Zoned","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Marker"}}'),Français:JSON.parse('{"ABOUT_WASABEE":"À propos de Wasabee","acknowledged":"Noté","ADD LINK TITLE":"Ajouter des liens","ADD MARKER TITLE":"Ajouter des marqueurs","ADD_AGENT":"Ajouter l\'agent :","ADD_BL":"Ajouter les backlinks :","ADD_BULK":"Ajouter en masse","ADD_BUTTON_LINKS":"Ajouter les liens","ADD_LINKS":"Ajouter des liens","ADD_MARKER":"+ Marqueur","ADD_NEW_OP":"Ajouter une nouvelle Opé","ADD_SUCC_INSTR":"L\'agent a bien été ajouté à l\'équipe","ADD_ZONE":"Ajouter une zone","ADD":"Ajouter","ADD1":"Ajouter le premier lien","ADD2":"Ajouter le second lien","AGENT_STATS":"Informations de l\'agent","AGENT":"Agent","AGES":" (il y a longtemps)","ALREADY_HAS_MARKER":"Ce portail porte déjà un marqueur. Choisissez un autre portail.","AMAZ_TEAM_NAME":"Nom de l\'équipe","ANCHOR ASSIGNMENT":"Affecter tous les liens sortants à :","ANCHOR_GMAP":"Google Maps","ANCHOR_PORTAL":"Ancre","ANCHOR_PORTAL2":"Portail Ancre 2","ANCHOR_PORTAL3":"Portail Ancre 3","ANCHOR1":"Ancre 1","ANCHOR2":"Ancre 2","ANCHOR3":"Ancre 3","ANCHORS_AS_BOOKMARKS":"Ancres vers Bookmarks","API_KEY":"Clé API Rocks :","ASS_TO":"Assigné à","ASSIGN LINK PROMPT":"Assigner le lien de {portalName}","ASSIGN MARKER PROMPT":"Assigner le marqueur sur {portalName}","ASSIGN OUTBOUND PROMPT":"Assigner les liens sortants de {portalName}","ASSIGN OUTBOUND":"Assigner les liens sortants","ASSIGN":"Assigner","ASSIGNED_ONLY_SHORT":"AO","ASSIGNED_ONLY":"Seulement les affectations","assigned":"Assigné","AUTH INCOMPAT":"Vous avez activé un plugin dans TamperMonkey (ou équivalent) qui est incompatible avec Wasabee.","AUTH REQUIRED":"Authentification requise","AUTH TOKEN REJECTED":"Jeton d’authentification rejeté par le serveur : {error}","AUTH_SELECT_ACCOUNT":"Sélectionner le compte","AUTO_DRAWS":"Auto-Draw","AUTODRAWS":"Choix d\'Auto-draw","AUTODRAW_PORTALS_SET":"Portails","autodraw.common.draw_button":"Tracer","autodraw.fanfield.result":"Fanfield a trouvé {links} liens et {fields} fields pour {ap} AP","autodraw.flipflop.result":"Flip flop: {count} liens trouvés","autodraw.homogeneous.missing_split":"Il manque {count} portails pour une configuration complète","autodraw.homogeneous.order":"Ordre","autodraw.homogeneous.portals_required":"{count} requis","autodraw.madrid.auto_determined":"Auto-déterminée","autodraw.madrid.balanced":"Équilibré","autodraw.madrid.result":"Madrid a trouvé {count} couches","autodraw.multimax.result":"Multimax a trouvé {count} couches","autodraw.multimax.result_both_side":"Multimax a trouvé {count1} et {count2} couches","autodraw.onion.variant":"Variante","autodraw.onion.variant.equilateral":"~Équilatéral","autodraw.onion.variant.grow":"Un plus grand","autodraw.onion.variant.balanced":"Équilibré","AUTOLOAD_RATE":"Délai entre deux requêtes","AUTOLOAD":"Charger automatiquement les données manquantes de portails","AUTOMARK STOP":"Le processus d\'Auto-Mark s\'est arrêté suite à l\'absence de donnée pour certains portails.","AUTOMARK":"Auto-Marque","BAT_TOAD":"Les grenouilles masquées","BLOCKER LIST TITLE":"Afficher les bloquants","BLOCKER TITLE":"Bloquants","CANCEL":"Annuler","CAPSULE":"Capsule","CapturePortalMarker":"Capturer","CHANGE SERVER PROMPT":"Nouveau serveur Wasabee","CHANGE SERVER":"Changer de serveur","CHANGE_WAS_SERVER":"Changer de serveur Wasabee","CHECKLIST BUTTON TITLE":"Checklist de l\'opération","CHECKLIST BUTTON":"Checklist","CLEAR LINKS":"Supprimer les liens","CLEAR MARKERS":"Supprimer les marqueurs","CLEAR_EVERYTHING":"Supprimer Portails/Links et Marqueurs","CLEAROPS BUTTON TITLE":"Supprimer TOUTES les données Wasabee","CLEAROPS BUTTON":"Supprimer les données Wasabee","CLEAROPS PROMPT":"Toutes les opérations et données relatives à Wasabee seront supprimées de cet appareil. Seules les données présentes sur le/les serveurs seront récupérées à la prochaine synchronisation. Wasabee sera désactivé jusqu\'au prochain rechargement d\'IITC.","CLOSE":"Fermer","COMMENT":"Commentaire","COMPLETED BY":"Fait par {agentName}","completed":"Fait","CON_DEL":"Confirmer la suppression : {opName}","COUNT":"Nombre","CREATE_NEW_TEAM":"Créer une équipe","CreateLinkAlert":"Lien","CUR_USER_INFO":"Information sur l\'utilisateur courant","D_SHOW_LIST":"Entrer les clés défensives","DEFAULT OP NAME":"Opération {date}","DELETE ANCHOR PROMPT":"Voulez vous supprimer cette ancre et tous les liens associés :","DELETE ANCHOR TITLE":"Supprimer une ancre","DELETE MARKER PROMPT":"Voulez vous supprimer le marqueur :","DELETE MARKER TITLE":"Supprimer un marqueur","DELETE_ANCHOR":"Supprimer","DELETE_LINK":"Supprimer","DELETE_OP":"Supprimer {opName}","DESCRIP_PLACEHOLD":"Description (optionnelle)","DestroyPortalAlert":"Casse","dialog.about.download_mobile_app":"

Application Wasabee :

","dialog.agent_comment.text":"Commentaire :","dialog.agent_comment.title":"Définir le commentaire de {agentName}","dialog.auth.ott.button":"Connexion à jeton unique","dialog.auth.ott.text":"Récupérez un jeton (One time Token) depuis le serveur Wasabee, puis collez-le ici","dialog.auth.ott.title":"Connexion à jeton unique","dialog.blockers.clear_automark":"Supprimer les Auto-Mark","dialog.clear_all.text":"Voulez-vous supprimer les liens et marqueurs de {opName} ?","dialog.clear_all.title":"Réinitialisation de {opName}","dialog.clear_links.text":"Voulez-vous supprimer tous les liens de {opName} ?","dialog.clear_links.title":"Effacer les liens : {opName}","dialog.clear_markers.text":"Voulez-vous supprimer tous les marqueurs de {opName} ?","dialog.clear_markers.title":"Effacer les marqueurs : {opName}","dialog.checklist.count_fields":"Nombre de fields","dialog.checklist.count_fields.no_empty":"{fieldCount} fields trouvés et aucun champ vide","dialog.checklist.count_fields.with_empty":"{fieldCount} fields trouvés et {emptyCount} champ(s) vide(s) sur {linkCount} lien(s)","dialog.checklist.count_fields.link_from_inside":"{count} liens trouvés depuis des portails sous fields","dialog.checklist.count_fields.link_from_inside.covered_at_order":" à {order} par le lien ","dialog.common.color":"Couleur","dialog.common.commands":"Commandes","dialog.common.commands_short":"Cmds","dialog.common.delete":"Supprimer","dialog.common.links":"Liens","dialog.common.markers":"Marqueurs","dialog.common.name":"Nom","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Propriétaire","dialog.common.zone_all":"Toutes les zones","dialog.filter.actions.description":"Changer toutes les tâches visibles","dialog.filter.actions.delete_visible":"Supprimer","dialog.filter.actions.delete_hidden":"Supprimer toutes les autres tâches","dialog.filter.actions.shift.label":"Décalage","dialog.filter.actions.shift.button":"Décaler","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Appliquer le filtre","dialog.filter.filters.description":"Sélectionner les propriétés sur lesquelles filtrer les tâches que vous voulez voir&modifier.","dialog.filter.filters.field.task":"Tâche","dialog.filter.filters.field.min_order":"Ordre min","dialog.filter.filters.field.max_order":"Ordre max","dialog.filter.filters.title":"Filtres","dialog.filter.title":"Filtres & Actions","dialog.firebase.setup":"Visitez {url} et cliquez sur le bouton pour autoriser les mises à jour en direct. Vous devrez recharger l\'IITC ensuite.","dialog.import.url":"Charger l’URL","dialog.import.success_message":"Importation terminée. {count} portails trouvés et {faked} faux portails utilisés. Veuillez utiliser la fonction d\'échange pour déplacer les faux portails vers les vrais portails au même endroit. Faire un zoom avant sur les portails \'Chargement\' dans la liste de contrôle peut les forcer à charger.","dialog.keys.update_error":"Le portail n\'est pas encore dans l\'opération, veuillez d\'abord la synchroniser avec le serveur","dialog.leave_team.text":"Si vous quittez {teamName} vous ne pouvez pas rejoindre à moins que le propriétaire vous rajoute.","dialog.leave_team.title":"Quitter : {teamName}","dialog.link_list.length":"Longueur","dialog.link_list.level":"Niv Min","dialog.link_list.all_from":"Tirer tout depuis","dialog.link_list.all_to":"Tirer tout vers","dialog.conflict.cancel_upload":"Annuler","dialog.conflict.conflicts":"Conflits :","dialog.conflict.local":"Copie locale","dialog.conflict.server":"Copie du serveur","dialog.conflict.zone":"Zone : {name}","dialog.conflict.prop.assignedTo":"Assigné :","dialog.conflict.prop.comment":"Commentaire :","dialog.conflict.prop.color":"Couleur :","dialog.conflict.prop.deltaminutes":"Delta :","dialog.conflict.prop.fromPortal":"De :","dialog.conflict.prop.hardness":"Difficulté :","dialog.conflict.prop.order":"Ordre :","dialog.conflict.prop.state":"État :","dialog.conflict.prop.toPortal":"Vers :","dialog.conflict.prop.zone":"Zone :","dialog.conflict.prop.zone_points":"La forme a été modifiée","dialog.online_agents.actions":"Action","dialog.online_agents.last_seen":"Dernière activité","dialog.online_agents.title":"Agents en ligne","dialog.op_settings.advanced":"Avancé","dialog.op_settings.import.desc":"Importer les liens/marqueurs/zones d\'une autre OP","dialog.op_settings.import.collision_default":"En cas de conflit, utilisez les liens/marqueurs importés","dialog.op_settings.import.select_op":"Opération","dialog.op_settings.import.select_color":"Couleur de l\'OP","dialog.op_settings.import.button":"Importer","dialog.op_settings.setting":"Paramètres","dialog.op_settings.zones":"Zones","dialog.ops_list.background_disable":"Cacher en arrière-plan","dialog.ops_list.background_enable":"Afficher en arrière-plan","dialog.ops_list.download":"Télécharger {opName}","dialog.ops_list.last_fetched":"Dernière récupération : {date}","dialog.ops_list.local_change":"La version locale a été modifiée","dialog.ops_list.remote_change":"Modifications sur le serveur","dialog.ops_list.toggle_hide":"Afficher/Masquer","dialog.ops_list.unhide_ops":"Démasquer tout","dialog.remove_agent.text":"Voulez-vous retirer {agentName} de {teamName}?","dialog.remove_agent.title":"Retirer : {agentName}","dialog.setcomment.portal_hardness":"Difficulté","dialog.settings.disable_live_updates":"Désactiver les mises à jour en direct","dialog.settings.populate_opportals":"Afficher le cercle des OP portails à tout zoom","dialog.team_list.load_wd_keys":"Charger les clés W-D","dialog.team_list.share_wd_keys":"Partager les clés W-D","dialog.team_manage.join_link":"Lien pour rejoindre","dialog.team_manage.join_link.create":"Créer","dialog.team_manage.join_link.revoke":"Révoquer","dialog.team_members.location":"Partage de position","dialog.team_members.wd_keys":"Partage de clés W-D","dialog.team_message":"Message d\'équipe : « {message} » de {sender}","dialog.update_warning":"Wasabee est obsolète. Veuillez mettre à jour en utilisant votre gestionnaire de plugin ou en allant sur https://wasabee.rocks","dialog.zone_color.title":"Colorier la zone","dialog.zone_color.text":"Colorier tous les liens dans la zone {zoneName}","dialog.zones.color":"Couleur","dialog.zones.color_links":"Colorier les liens","dialog.zones.delete.title":"Supprimer la zone « {zoneName} »","dialog.zones.delete.text":"Voulez-vous supprimer la zone « {zoneName} » ?","dialog.zones.delete_zone_shape":"Réinitialiser la forme","dialog.zones.draw_zone_shape":"Dessiner la zone","dialog.zones.id":"ID","dialog.zones.jump_to":"Zoomer sur la zone","dialog.zones.stop_drawing":"Terminer le dessin","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Format DrawTools","DUPE_OP":"Dupliquer l\'opération","END_PORT":"Portail de fin","ExcludeMarker":"Exclure d\'Auto-Draw/Mark","EXPORT OP TITLE":"Exporter l\'opération","EXPORT OP":"Exporter","EXPORT":"Exporter :","FAKED":"Faux [{portalId}]","FANFIELD":"Tracer","FANFIELD2":"Fan Field","FarmPortalMarker":"Farmer","FLIP_FLOP_NAME":"Flip Flop","FLIP_FLOP_TITLE":"Flip Flop","FLIP_FLOP_DESC":"À partir d\'une ancre, d\'un ensemble de portails visibles et d\'un nombre de SBUL, cherche un fanfield à tirer depuis l\'ancre par distance décroissante pour éviter de rechercher les clés dans le carrousel.","FLIP_FLOP_INSTRUCTION":"Sélectionner un portal, se placer dans la zone des portails cibles afin qu\'ils soient visibles, puis presser Tracer. Une fois un fanfield trouvé, vous pouvez trouver d\'autres ancres compatibles pour des re-tirs consécutifs","FLIP_FLOP_FIND_ANCHORS":"Trouver d\'autres ancres","FROM_1-2":"depuis la base 1-2","FROM_1-3":"depuis la base 1-3","FROM_2-3":"depuis la base 2-3","FROM_DEPTH":"depuis l\'intérieur vers l\'extérieur","FROM_PORT":"Depuis le Portail","GET DT":"Récupérer le dessin actuel","GetKeyPortalMarker":"Clés","GotoPortalMarker":"Aller à","H-GEN_INST":"Choisir les 3 portails du field englobant, le nombre de couches et cliquer sur Draw.","HF_DEEP_SEARCH":"Recherche exhaustive","HF_DRAW_BUTTON":"Tracer","HF_REDRAW_BUTTON":"Re-Draw","HG":"Field homogène","HOURS":"(il y a {hours} heures)","HOW_TO_VIDS":"

Tuto:

","IMP_NOPE":"Échec de l\'importation : {error}","IMP_WAS_OP":"Importer les opérations Wasabee","IMPORT_OP_SUCCESS":"Importation de l\'opération « {opName} » réussie.","IMPORT_OP_TITLE":"Importer l\'opération : {date}","IMPORT_OP":"Importer l\'opération","IMPOSSIBLE":"Impossible","INGNAME_GID":"Pseudo Ingress ou Identifiants Google","INPUT_DT_KEY_COUNT":"Entrer le nombre de clés défensives","INVALID REQUEST":"Requête invalide","IOS NEED FAKE UA":"Vous devez définir un \'Custom UserAgent for Webviews\' dans les options de IITC-Mobile pour que la connexion à Wasabee fonctionne","KEY_LIST2":"Liste des clés pour l\'opération : {opName}","KEYS":"Clés","KNOWN_BLOCK":"Liens bloquants connus : {opName}","LA DESC":"Le niveau nécessaire du portail peut être plus faible en fonction du type des Link Amp utilisés.","LA":"L8+ quelques LinkAmp","LANG":"Langue","LEAVE":"Quitter","LetDecayPortalAlert":"À decay","LINK ASSIGNMENT":"Affecter le lien à :","LINK STATE PROMPT":"Statut du lien","LINK STATE":"Définir l\'état du lien :","LINKS BUTTON TITLE":"Liens","LINKS":"Liens","LINKS2":"{portalName} : Liens ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Charger les portails","LOADING":"[chargement]","LOADING1":"Chargement : {portalGuid}","LOC_PROC":"Emplacement traité","LOCATION SUB":"Position envoyée","LOCFRMSER":"(Localement et sur le serveur)","LOG IN":"Connexion","LOG_OUT":"Déconnexion","MADRID_SET_1":"Définir la zone pour le multifield de base 2-3","MADRID_SET_2":"Définir la zone pour le multifield de base 1-3","MADRID_SET_3":"Définir la zone pour le multifield de base 1-2","MADRID_TITLE":"Madrid Protocol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Tracer","MANAGE_TEAM":"Gérer {teamName}","MANAGE":"Gérer","MARKER ASSIGNMENT":"Affecter le marqueur à :","MARKER LIST TITLE":"Liste des marqueurs","MARKER LIST":"Marqueurs","MARKER STATE PROMPT":"Statut du marqueur","MARKER STATE":"Définir l\'état du marqueur :","MARKER_LIST":"Liste des marqueurs : {opName}","MARKERS BUTTON TITLE":"Marqueurs","MAX_SPLITS":"Nb. Couches","MAX":"Fan Field","MeetAgentPortalMarker":"Rencontrer un agent","MERGE ON UPDATE":"Fusion à la mise à jour d\'une OP","MERGE_CHANGES_LOCAL":"Changements locaux","MERGE_CHANGES_MERGE":"Résultat après fusion","MERGE_CHANGES_REMOTE":"Changements sur le serveur","MERGE_LOCAL":"Locale","MERGE_MESSAGE":"Les modifications locales et du serveur sont en conflit. Vous devez résoudre les conflits que Wasabee n\'a pas réussi à résoudre lui-même. Sélectionnez la version à conserver pour chaque conflit non résolu. Vous pouvez également ignorer tous les conflits et utiliser la copie du serveur, ou vous pouvez simplement garder la copie locale intacte.","MERGE_REBASE":"Fusion","MERGE_REPLACE":"Remplacer","MERGE_TITLE":"Fusion des versions locale et serveur","MIN_SRC_PORT_LVL":"Niveau minimum requis pour le portail source","MINUTES":" (il y a {minutes} minute(s))","MM":"Multimax","MM_BOTH_SIDE":"Utiliser les deux côtés de la base","MM_INSERT_ORDER":"Insérer à la fin","MM_SET_ALL_PORTALS":"Tous les portails visibles","MM_SET_ALL_KEYS":"Tous les marqueurs GetKey","MM_SET_KEYS_ZONE":"GetKey : {zoneName}","MM_SPINE":"Alignement","MULTI_M_TITLE":"Dessiner le maximum de couches","MULTI_M":"Tracer","MUST_NOT_BE_EMPTY":"Ne dois pas être vide","MY_CAP_ID":"ID de ma capsule","MY_COUNT":"Mon nombre de clés","NAME_REQ":"Nom requis","NAME":"Nom :","NEW_OP":"Nouvelle opération","NEW_TEAM_NAME":"Nouveau nom d\'équipe","NEW_TEAM":"Nouvelle équipe","NEW_WAS_SERVER":"Nouveau serveur Wasabee","NEWOP BUTTON TITLE":"Créer une opération","NEWOP BUTTON":"+ Op","NO_DT_ITEMS":"Pas de Draw détecté","NO_LABEL":"Pas de nom donné","NO_STOCK_INTEL":"Wasabee ne supporte pas les draws de l\'intel stock.","NO_TITLE":"Titre non défini","NO LONGER AVAILABLE":"Ressource supprimée du serveur : {error}","NO LONGER AVAILABLE SHORT":"Ressource supprimée du serveur","NOT LOGGED IN SHORT":"Déconnecté","NOT LOGGED IN":"Déconnecté : {error}","NOT_LOADED":"Échec lors du chargement des opérations, essayer à nouveau.","NOT_SET":"non défini","NTNAME":"Nom","OK":"Ok","ON_HAND":"En main","ONION_WAS_TAKEN":"Oignon","ONION":"Tracer","ONLY_DT_IMP":"(Uniquement pour les imports de DrawTools)","OP DELETED":"Opération supprimée du serveur : {opID}","OP PERM DENIED":"Permission refusée pour l\'opération : {opID}","OP_CHECKLIST":"Checklist : {opName}","OP_NAME_UNSET":"Le nom de l\'opération n\'a pas été défini","OP_PERMS":"Permissions","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Propriétés de l\'opération","OPEN_REQUEST":"∞","OPER_COLOR":"Couleur de l\'opération","OPER_NAME":"Nom de l\'opération","OPERATIONS":"Opérations","OPS BUTTON TITLE":"Opérations","OPS BUTTON":"Ops","ORDER":"Ordre","OtherPortalAlert":"Autre","PASTE_INSTRUCT":"Coller un export de dessin Wasabee ici.\\n\\nWasabee ne peut pas importer le format Intel.\\n\\nIl existe un support expérimental pour importer le format IITC DrawTools.\\n\\nAvant d\'importer le format DrawTools, prévisualisez les zones et assurez-vous que tous les portails sont chargés de sorte que l\'IITC les a mis en cache. Les portails utilisés qui ne sont pas mis en cache correspondront à de faux portails.\\n\\nVous devrez utiliser la fonctionnalité \'swap\' pour déplacer les ancres des faux portails vers les vrais portails (ils devraient être dans les bons emplacements, mais pas associés aux portails).\\n\\nLes portails mis en cache peuvent ne pas être correctement nommés.","pending":"En attente","PERM DENIED":"Permission refusée : {error}","PERM DENIED SHORT":"Permission refusée","PERMS":"Permissions de {opName}","PLEASE_SELECT_PORTAL":"Sélectionner un portail","popup.anchor.duplicate":"Dupliquer","popup.anchor.keys":"Clés : {onHand} / {required}","popup.anchor.keys_mycount":"Moi : {myCount} / {required}","popup.marker.state_button":"Définir l\'état","PORTAL KEY LIST":"Clés du portail {portalName}","PORTAL_COUNT":"{count} portails","PORTAL":"Portail","QD BUTTON CHANGE COLOR":"Cliquez pour changer la couleur des prochains liens","QD BUTTON END":"Arrête le dessin","QD BUTTON TOGGLE MODE":"Cliquez pour changer le mode de dessin","QD CHANGE COLOR":"Changer de couleur","QD END":"Terminer","QD TITLE":"Quick Draw","QD TOGGLE MODE":"Changer de mode","QDBASE":"Base","QDCONT":"Cliquez sur un portail pour faire un field","QDNEXT":"Cliquer sur la seconde ancre.","QDSTART":"Cliquer sur la première ancre.","READ_SHORT":"RO","READ":"lire","RechargePortalAlert":"Recharge","REFERENCE_TIME":"Temps de référence :","REM_LOC_CP":"Supprimer la copie locale de {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Voulez-vous vraiment supprimer {teamName} du serveur Wasabee ?","REMOVE_TEAM_CONFIRM_TITLE":"Supprimer l\'équipe {teamName}","REMOVE_TEAM":"Supprimer une équipe","REMOVE":"Supprimer","RENAME_TEAM":"Renommer l\'équipe :","RENAME":"Renommer","REQUIRED":"Requis","RESET":"Reset","REVERSE":"Inverser","ROCKS_COM":"Communauté enl.rocks :","ROLE":"Rôle","SAVELINKS TITLE":"Copie de liens","SAVELINKS_DRAW":"Copier les liens","SAVELINKS":"Copie de liens Intel","SECONDS":"(il y a {seconds} secondes)","SEL_SB_ANCHOR":"Sélectionner l\'ancre.","SEL_SB_ANCHOR2":"Dézoomer en laissant charger les portails de la zone puis cliquer sur Draw.","SEL_SL_ANCHOR":"Sélectionner le portail dont vous voulez copier les liens vers l\'opération courante.","SEL_SRC_ANC2":"Sélectionner le portail source ET la seconde ancre","SEL_SRC_PORT":"Sélectionner le portail source","SELECT PORTAL":"Sélectionner un premier portail","SELECT_FAN_PORTALS":"Sélectionner une ancre, le premier portail et le dernier portail du Fanfield. Le reste sera calculé à partir des portails visibles.","SELECT_FAN_PORTALS2":"Attendez le chargement des portails et cliquer sur Draw.","SELECT_INSTRUCTIONS":"Sélectionner deux ancres, puis zoomer sur la zone contenant l\'alignement.","SELECT_ONION_PORTALS":"Les couches sont construites de la plus petite à la plus grande, avec au plus trois fields par portail en commençant par le portal défini, puis en utilisant les portails visibles.","SELF SWAP":"Le portail sélectionné est le même. Sélectionner un autre portail.","SEND ANALYTICS":"Envoyer des statistiques anonymes","SEND LOCATION":"Partager sa position (uniquement lorsque l\'IITC est au premier plan)","SEND TARGET AGENT":"Sélectionner l\'agent cible","SEND TARGET CONFIRM":"Voulez-vous signaler la cible {portalName} à {agent} ?","SEND TARGET":"Envoyer la cible","SEND_LOC":"Envoyer sa position","SET_3_PORT":"Sélectionner d\'abord trois portails !","SET_COMMENT":"Entrer un commentaire","SET_LCOMMENT":"Commentaire du lien","SET_LINK_COMMENT":"Entrer un commentaire pour le lien :","SET_LINKS_ZONES":"Affecter les liens aux zones","SET_MARKER_COMMENT":"Entrer un commentaire pour le marqueur :","SET_MARKER_TYPE_TITLE":"Changer le type de marqueur","SET_MARKERS_ZONES":"Affecter les marqueurs aux zones","SET_MCOMMENT":"Commentaire pour ce marqueur : {portalName}","SET_NEW_OP":"Donner un nom à cette nouvelle opération","SET_PCOMMENT":"Entrer un commentaire pour ce portail : {portalName}","SET_PORT_COMMENT":"Entrer un commentaire pour ce portail :","SET_PORTAL_COMMENT":"Entrer un commentaire","SET":"Définir","SETTINGS_TOOLBOX":"Paramètres Wasabee","SETTINGS_TITLE":"Paramètres avancés","SKINS_AVAILABLE":"Il y a {count} thèmes disponibles.","SKINS_BUTTON":"Choisir les thèmes","SKINS_DESCRIPTION":"Déplacer les thèmes de la colonne de droite vers la colonne de gauche pour les activer. L\'ordre permet de les combiner. Le thème le plus bas est le dernier appliqué.","SKINS_MANAGE_TITLE":"Configuration des thèmes","SKIP_CONFIRM_ALWAYS":"Rien (risqué)","SKIP_CONFIRM_ENTITY":"Seulement les OP/équipes","SKIP_CONFIRM_NEVER":"Tout","SKIP_CONFIRM":"Demander confirmation pour","SOURCE_PORT":"Portail source","STARBURST TITLE":"Starburst","STARBURST_DRAW":"Tracer","STARBURST":"Starburst","START_PORT":"Portail de départ","STATE":"État","SUPPORT_INSTRUCT":"Pour obtenir de l\'aide rejoindre ce channel Telegram (en Anglais) The Wasabee User Telegram Channel","SWAP PROMPT":"Voulez-vous remplacer ","SWAP TITLE":"Déplacer le portail","SWAP WITH":" par ","SWAP":"Déplacer","swap.marker.title":"Déplacer le marqueur","swap.marker.prompt":"Voulez-vous déplacer le marqueur :","SYNC DONE":"Téléchargement terminé
Cliquez ICI pour obtenir des conseils, des astuces et de la documentation.","SYNC":"Télécharger les opérations disponibles","TARGET SENT":"Cible transmise","TEAM STATE":"Partage de position","TEAM_CREATED":"Équipe {teamName} créée","TEAM_NAME":"Nom d\'équipe","TEAM":"Équipe","TEAMS BUTTON TITLE":"Liste des équipes","TEAMS BUTTON":"Équipes","TO_PORT":"Vers le portail","toolbar.op.filter":"Filtres","toolbar.op.redo":"Refaire","toolbar.op.title":"Op : {opName}","toolbar.op.undo":"Annuler","toolbar.quick_delete.apply.text":"Appliquer","toolbar.quick_delete.apply.title":"Supprime les liens et marqueurs sélectionnés","toolbar.quick_delete.cancel.text":"Annuler","toolbar.quick_delete.cancel.title":"Annuler","toolbar.quick_delete.clear.text":"Effacer tout","toolbar.quick_delete.clear.title":"Supprime tous les liens et marqueurs","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Quitter le mode Suppression","toolbar.quick_delete.title":"Suppression Rapide","toolbar.quick_delete.tooltip.toggle_mode":"Sélectionnez les éléments à supprimer","toolbar.quick_delete.tooltip.quick_mode":"Cliquez pour supprimer","toolbar.quick_draw.tooltip.star_mode.anchor":"Sélectionnez l\'ancre de la Starburst","toolbar.quick_draw.tooltip.star_mode.portal":"Cliquez sur les autres portails","toolbar.quick_draw.tooltip.single_mode.first":"Sélectionnez le premier portail","toolbar.quick_draw.tooltip.single_mode.next":"Sélectionnez le portail suivant","toolbar.quick_draw.tooltip.portal_fail":"Données de portail incomplètes, réessayez","toolbar.quick_draw.tooltip.burst.portal":"Sélectionner un portail","toolbar.quick_draw.toggle.text":"Mode : {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multicouche","toolbar.quick_draw.mode.singlelink":"Liens simples","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Options","toolbox.teammates":"Coéquipiers en ligne","TRAWL SKIP TILES":"Fouille : sauter des tuiles","TRAWL TITLE":"Fouille des bloquants","TRAWL WARNING":"Ceci va charger les tuiles de données sous les liens dessinés. C\'est un processus lent.","TRAWL_AUTOMARK":"Marquer automatiquement les portails après la fouille.","TRAWL_BULK_LOAD_WARNING":"Cette méthode demande toutes les tuiles nécessaires le plus rapidement possible. À utiliser en connaissance de cause.","TRAWL_BULK_LOAD":"Charger directement depuis les tuiles","TRAWL_CLEAR_MARKERS":"Supprimer les marqueurs de casse/virus avant la fouille.","TRAWL_REMAINING":"{count} tuiles restantes","TRAWL":"Fouille des bloquants","TRAWLING":"Parcours des bloquants en cours, fermer la fenêtre pour arrêter.","TYPE":"Type","UNASSIGNED":"Non assigné","UNKNOWN":"Inconnu","UPDATE HOVER":"Mettre à jour {opName} sur le serveur","UPDATE PERM DENIED":"Vous n\'avez pas la permission de mettre à jour","UPDATE_CONFLICT_DESC":"L\'opération a été modifiée sur le serveur depuis la dernière synchronisation. Voulez-vous écraser la version du serveur par la vôtre ?","UPDATE_CONFLICT_TITLE":"Conflit avec le serveur","UPDATE_COUNT":"Nombre mis un jour","UPDATED":"Mise à jour réussie","UpgradePortalAlert":"Upper","UPLOAD BUTTON HOVER":"Envoyer {opName} au serveur","UPLOADED":"Envoi réussi","USE PANES ON MOBILE":"Volet latéral (rechargement nécessaire)","USE_VALID_NAME":"Utiliser un nom d\'opération valide","UseVirusPortalAlert":"Virus","VRLA DESC":"Le niveau nécessaire du portail peut être plus faible en fonction du type des Link Amp utilisés.","VRLA":"L8 + quelques VRLA","WASABEE BUTTON TITLE":"Wasabee est vert et fait pleurer les Schtroumpfs","WASABEE_D_LIST":"Entrer le nombre de clés défensives","WD BUTTON TITLE":"Enregistrer des clés défensives","WD BUTTON":"Clés W-D","WRITE_SHORT":"RW","WRITE":"modifier","WSERVER":"Serveur : {url}","YESNO_DEL":"Voulez-vous vraiment supprimer {opName} ?","ZONE_DRAW":"Cliquer pour définir les limites de la zone","ZONE":"Zone","smallScreen":{"ADD_LINKS":"+ Liens","ADD_MARKER":"+ Marqueur"}}'),Português:JSON.parse('{"ABOUT_WASABEE":"Sobre Wasabee","acknowledged":"Reconhecido","ADD LINK TITLE":"Adicionar Links","ADD MARKER TITLE":"Adicionar Marcadores","ADD_AGENT":"Adicionar Agente:","ADD_BL":"Adicionar links para trás:","ADD_BULK":"Adição em massa","ADD_BUTTON_LINKS":"Adicionar todos os links de uma vez.","ADD_LINKS":"Adicionar Links","ADD_MARKER":"+ Marcador","ADD_NEW_OP":"Adicionar Nova Op","ADD_SUCC_INSTR":"Agente adicionado com sucesso","ADD_ZONE":"Adicionar zona","ADD":"Adicionar","ADD1":"Adicionar primeiro link","ADD2":"Adicionar segundo link","AGENT_STATS":"Agente Stats","AGENT":"Agente","AGES":" (há muito tempo)","ALREADY_HAS_MARKER":"Este portal já tem um marcador. Escolha um portal diferente.","AMAZ_TEAM_NAME":"Nome incrível da equipe.","ANCHOR ASSIGNMENT":"Atribuir todos os links de saída para:","ANCHOR_GMAP":"Mapa Google","ANCHOR_PORTAL":"Portal Âncora","ANCHOR_PORTAL2":"Âncora Portal 2","ANCHOR_PORTAL3":"Âncora Portal 3","ANCHOR1":"Âncora 1","ANCHOR2":"Âncora 2","ANCHOR3":"Âncora 3","ANCHORS_AS_BOOKMARKS":"Âncora como bookmarks","API_KEY":"Chave API do Rocks:","ASS_TO":"Atrubuir a:","ASSIGN LINK PROMPT":"Atribuir link para: {portalName}","ASSIGN MARKER PROMPT":"Atrubuir marcador para: {portalName}","ASSIGN OUTBOUND PROMPT":"Atribuir todos os links externos de: {portalName}","ASSIGN OUTBOUND":"Atribuir links externos","ASSIGN":"Atribuir","ASSIGNED_ONLY_SHORT":"A","ASSIGNED_ONLY":"Só Atribuir","assigned":"Atribuído","AUTH INCOMPAT":"Você ativou um plugin no TamperMonkey que é incompatível com o Wasabee","AUTH REQUIRED":"Autentificação Requerida","AUTH TOKEN REJECTED":"Envio de token de autenticação rejeitado pelo servidor: {error}","AUTH_SELECT_ACCOUNT":"Selecionar conta","AUTO_DRAWS":"Auto-desenhar","AUTODRAWS":"Wasabee Auto-draw Opções","AUTODRAW_PORTALS_SET":"Portais","autodraw.common.draw_button":"Desenhar","autodraw.fanfield.result":"Fanfield encontrado {links} links e {fields} campos para {ap} AP","autodraw.flipflop.result":"Flip flop: {count} links encontrados","autodraw.homogeneous.missing_split":"Não foi possível encontrar {count} divisões, tente menos profundidade ou uma região diferente","autodraw.homogeneous.order":"Pedido","autodraw.homogeneous.portals_required":"{count} necessário","autodraw.madrid.auto_determined":"Auto-determinado","autodraw.madrid.balanced":"Equilibrado","autodraw.madrid.result":"Madri encontrou {count} camadas","autodraw.multimax.result":"Multimax encontrou {count} camadas","autodraw.multimax.result_both_side":"Multimax encontrou {count1} e {count2} camadas","autodraw.onion.variant":"Opção","autodraw.onion.variant.equilateral":"~Equalizador","autodraw.onion.variant.grow":"Deixe crescer","autodraw.onion.variant.balanced":"Perfeitamente equilibrado","AUTOLOAD_RATE":"Taxa de solicitação de detalhes do portal (ms)","AUTOLOAD":"Carregar automaticamente os detalhes do portal em falta","AUTOMARK STOP":"Auto-Marcar interrompido devido a portais não serem carregados","AUTOMARK":"Auto-Marcar","BAT_TOAD":"Brinquedos de batalha","BLOCKER LIST TITLE":"Mostrar todos os blockers","BLOCKER TITLE":"Bloqueadores","CANCEL":"Cancelar","CAPSULE":"Capsula","CapturePortalMarker":"Capturado","CHANGE SERVER PROMPT":"Novo servidro Wasabee","CHANGE SERVER":"Trocar de Servidor","CHANGE_WAS_SERVER":"Mudar servidor Wasabee","CHECKLIST BUTTON TITLE":"Checklist da Operação","CHECKLIST BUTTON":"Checklist","CLEAR LINKS":"Limpar Links","CLEAR MARKERS":"Limpar Markers","CLEAR_EVERYTHING":"limpar Portais/Links/Marcadores","CLEAROPS BUTTON TITLE":"limpar TODOS os dados Wasabee","CLEAROPS BUTTON":"Limpar dados Wasabee","CLEAROPS PROMPT":"Isto limpará todas as OPS e dados relacionados a Wasabee. Tudo será restaurado apartir do servidor na próxima sincronização.","CLOSE":"Fechar","COMMENT":"Comentario","COMPLETED BY":"Completo por {agentName}","completed":"Completo","CON_DEL":"Confirmar Apagar: {opName}","COUNT":"Contar","CREATE_NEW_TEAM":"Criar Nova Equipa","CreateLinkAlert":"Link","CUR_USER_INFO":"Informações do usuário atual","D_SHOW_LIST":"Chaves de defesa de entrada","DEFAULT OP NAME":"Nova Op: {date}","DELETE ANCHOR PROMPT":"Desejas excluir esta âncora e todos os links associados:","DELETE ANCHOR TITLE":"Apagar Âncora","DELETE MARKER PROMPT":"Você deseja excluir este marcador:","DELETE MARKER TITLE":"Apagar Marcador","DELETE_ANCHOR":"Apagar","DELETE_LINK":"Apagar","DELETE_OP":"Apagar {opName}","DESCRIP_PLACEHOLD":"Descrição (opcional)","DestroyPortalAlert":"Destroir","dialog.about.download_mobile_app":"

Aplicativo Wasabee:

","dialog.agent_comment.text":"Comentario:","dialog.agent_comment.title":"Definir comentário para {agentName}","dialog.auth.ott.button":"Login único para o Token","dialog.auth.ott.text":"Obtenha um token do servidor Wasabee, e então cole-o aqui","dialog.auth.ott.title":"Usar Token Único","dialog.blockers.clear_automark":"Limpar Automark","dialog.clear_all.text":"Você quer resetar o {opName}?","dialog.clear_all.title":"Limpar: {opName}","dialog.clear_links.text":"Você quer remover todos os links de {opName}?","dialog.clear_links.title":"Limpar Links: {opName}","dialog.clear_markers.text":"Deseja remover todos os marcadores de {opName}?","dialog.clear_markers.title":"Limpar Links: {opName}","dialog.checklist.count_fields":"Contar campos","dialog.checklist.count_fields.no_empty":"Encontrados {fieldCount} campos e sem campo vazio","dialog.checklist.count_fields.with_empty":"Encontrados {fieldCount} campos e {emptyCount} campo(s) vazio(s) no link {linkCount}","dialog.checklist.count_fields.link_from_inside":"Encontrados {count} links dos portais cobertos","dialog.checklist.count_fields.link_from_inside.covered_at_order":" em {order} por link ","dialog.common.color":"Cor","dialog.common.commands":"Comandos","dialog.common.commands_short":"Cmds","dialog.common.delete":"Apagar","dialog.common.links":"Links","dialog.common.markers":"Marcadores","dialog.common.name":"Nome","dialog.common.off":"Desligar","dialog.common.on":"Ligar","dialog.common.owner":"Dono","dialog.common.zone_all":"Todos","dialog.filter.actions.description":"Aplicar uma alteração em todas as tarefas visíveis","dialog.filter.actions.delete_visible":"Apagar","dialog.filter.actions.delete_hidden":"Excluir todas as outras tarefas","dialog.filter.actions.shift.label":"Desvio","dialog.filter.actions.shift.button":"Mudar","dialog.filter.actions.title":"Ações","dialog.filter.filters.apply":"Aplicar filtros","dialog.filter.filters.description":"Selecione as propriedades para filtrar as tarefas que deseja ver mudar.","dialog.filter.filters.field.task":"Tarefa","dialog.filter.filters.field.min_order":"Pedido Mínimo","dialog.filter.filters.field.max_order":"Pedido máximo","dialog.filter.filters.title":"Filtros","dialog.filter.title":"Filtros&ações","dialog.firebase.setup":"Visite {url} e pressione o botão para autorizar atualizações ao vivo. Você precisará recarregar o IITC depois.","dialog.import.url":"Preencher do URL","dialog.import.success_message":"Importação completa. Encontrados {count} portais e usados {faked} falsificados. Por favor, use o recurso de troca para mover portais falsos para os portais reais no mesmo local. Ampliar os portais de \'Carregamento\' na lista de verificação pode forçá-los a carregar.","dialog.keys.update_error":"Portal ainda não está na OP, por favor, sincronizar com o servidor primeiro","dialog.leave_team.text":"Se você sair do {teamName}, você não pode entrar novamente a menos que o dono adicione você novamente.","dialog.leave_team.title":"Deixar: {teamName}","dialog.link_list.length":"Comprimento","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Definir todas saídas","dialog.link_list.all_to":"Definir todas as entradas","dialog.conflict.cancel_upload":"Cancelar carregamento","dialog.conflict.conflicts":"Conflitos:","dialog.conflict.local":"Cópia local","dialog.conflict.server":"Cópia do servidor","dialog.conflict.zone":"Zona: {name}","dialog.conflict.prop.assignedTo":"Atribuir:","dialog.conflict.prop.comment":"Comentario:","dialog.conflict.prop.color":"Cor:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"De:","dialog.conflict.prop.hardness":"Difícil:","dialog.conflict.prop.order":"Pedido:","dialog.conflict.prop.state":"Estado:","dialog.conflict.prop.toPortal":"Para:","dialog.conflict.prop.zone":"Zona:","dialog.conflict.prop.zone_points":"A forma foi alterada","dialog.online_agents.actions":"Ações","dialog.online_agents.last_seen":"Visto pela última vez","dialog.online_agents.title":"Agentes Online","dialog.op_settings.advanced":"Avançado","dialog.op_settings.import.desc":"Importar links/marcadores/zonas de outro OP","dialog.op_settings.import.collision_default":"Em caso de conflitos, use links/marcadores importados","dialog.op_settings.import.select_op":"Selecionar OP","dialog.op_settings.import.select_color":"Cor do link OP","dialog.op_settings.import.button":"Importar","dialog.op_settings.setting":"Configurações","dialog.op_settings.zones":"Zonas","dialog.ops_list.background_disable":"Desat. dados seg. plano","dialog.ops_list.background_enable":"Mostrar plano de fundo","dialog.ops_list.download":"Descarregar {opName}","dialog.ops_list.last_fetched":"Última pesquisa: {date}","dialog.ops_list.local_change":"Local foi alterado","dialog.ops_list.remote_change":"Controle remoto foi alterado","dialog.ops_list.toggle_hide":"Alternar Mostrar/Ocultar","dialog.ops_list.unhide_ops":"Exibir todas as OPs","dialog.remove_agent.text":"Você deseja remover {agentName} de {teamName}?","dialog.remove_agent.title":"Remover: {agentName}","dialog.setcomment.portal_hardness":"Difículdade","dialog.settings.disable_live_updates":"Desativar atualizações ao vivo","dialog.settings.populate_opportals":"Preencher o mapa com portais de op","dialog.team_list.load_wd_keys":"Carregar chaves W-D","dialog.team_list.share_wd_keys":"Partilhar chaves W-D","dialog.team_manage.join_link":"Link de entrada","dialog.team_manage.join_link.create":"Criar","dialog.team_manage.join_link.revoke":"Revogar","dialog.team_members.location":"A partilhar a localização","dialog.team_members.wd_keys":"Partilhar chaves W-D","dialog.team_message":"Anúncio de equipa: “{message}” de {sender}","dialog.update_warning":"O Wasabee está desatualizado. Atualize a usar seu gerenciador de plugins ou indo para https://wasabee.rocks","dialog.zone_color.title":"Cor da zona","dialog.zone_color.text":"Definir a cor de todos os links na zona {zoneName}","dialog.zones.color":"Cor","dialog.zones.color_links":"Cor de Link","dialog.zones.delete.title":"Excluir zona {zoneName}","dialog.zones.delete.text":"Você quer apagar a zona “{zoneName}? ?","dialog.zones.delete_zone_shape":"Resetar a forma","dialog.zones.draw_zone_shape":"Desenhar limites dos blocos","dialog.zones.id":"ID","dialog.zones.jump_to":"Pular para zona","dialog.zones.stop_drawing":"Parar de desenhar","dialog.zones.title":"Zonas","DRAW TOOLS FORMAT":"Formato Draw Tools","DUPE_OP":"Duplicar Operação","END_PORT":"Portal final","ExcludeMarker":"Excluir de Auto-Desenhar / Marcar","EXPORT OP TITLE":"Exportar Op Actual","EXPORT OP":"Exportar Op","EXPORT":"Exportar:","FAKED":"Falsificado: [{portalId}]","FANFIELD":"Desenhar","FANFIELD2":"Desenhar Fan Field","FarmPortalMarker":"Farmar","FLIP_FLOP_NAME":"Inverter Flop","FLIP_FLOP_TITLE":"Inverter Flop","FLIP_FLOP_DESC":"De uma determinada âncora, um conjunto de portal visível e um número de SBUL, encontre um fanfield para arremessar links da âncora diminuindo distância para evitar procurar chaves.","FLIP_FLOP_INSTRUCTION":"Selecione um portal, zoom para ver portais suficientes e pressione Desenhar. Uma vez que um fanfield for encontrado, você poderá procurar por outras âncoras por jogadas consecutivas","FLIP_FLOP_FIND_ANCHORS":"Encontrar outras âncoras","FROM_1-2":"A Partir da base 1-2","FROM_1-3":"A Partir da base 1-3","FROM_2-3":"A Partir da base 2-3","FROM_DEPTH":"da profundidade","FROM_PORT":"A Partir do Portal","GET DT":"Obtenha o desenho existente do DrawTools","GetKeyPortalMarker":"Retirar Chaves","GotoPortalMarker":"Ir para","H-GEN_INST":"Define portais para a camada externa. Escolhe o número de divisões. Clica para desenhar","HF_DEEP_SEARCH":"Pesquisa exaustiva","HF_DRAW_BUTTON":"Desenhar","HF_REDRAW_BUTTON":"Redesenhar","HG":"Campo Homogêneo","HOURS":" ({hours} horas atrás)","HOW_TO_VIDS":"

Vídeos de instruções:

","IMP_NOPE":"A Importação Falhou: {error}","IMP_WAS_OP":"Importar Operação Wasabee","IMPORT_OP_SUCCESS":"OP Importada: {opName} successfuly.","IMPORT_OP_TITLE":"Importar Op: {date}","IMPORT_OP":"Importar Operação","IMPOSSIBLE":"Impossível","INGNAME_GID":"Nome de entrada ou GoogleID","INPUT_DT_KEY_COUNT":"Contagem de chaves defensivas de entrada","INVALID REQUEST":"Pedido inválido","IOS NEED FAKE UA":"Deves definir um \'Agente de usuário personalizado para visualizações da Web\' nas configurações do IITC-Mobile ou o login falhará","KEY_LIST2":"Lista de chaves para operação: {opName}","KEYS":"Chaves","KNOWN_BLOCK":"Blockers conhecidos: {opName}","LA DESC":"Dependendo do número e tipo de Link Amps usados, um nível de portal de origem inferior pode ser suficiente.","LA":"L8+ alguns LA","LANG":"Língua","LEAVE":"Deixar","LetDecayPortalAlert":"Deixar caír","LINK ASSIGNMENT":"Atribuir link a:","LINK STATE PROMPT":"Estado do link","LINK STATE":"Definir status do link:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Carregar Portais","LOADING":"[a carregar]","LOADING1":"a carregar: [{portalGuid}]","LOC_PROC":"localização processada","LOCATION SUB":"Localização registrada","LOCFRMSER":" (localmente e do servidor)","LOG IN":"Iniciar Sessão","LOG_OUT":"Terminar Sessão","MADRID_SET_1":"Selecione a região para a ligação de base Âncora 2 à Âncora 3","MADRID_SET_2":"Selecione a região para a ligação de base Âncora 3 à Âncora 1","MADRID_SET_3":"Selecione a região para a ligação de base Âncora 1 a Âncora 2","MADRID_TITLE":"Madrid Protocol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Desenhar","MANAGE_TEAM":"Gerenciar {teamName}","MANAGE":"Gerenciar","MARKER ASSIGNMENT":"Atribuir marcador a:","MARKER LIST TITLE":"Lista de Marcadores","MARKER LIST":"Marcadores","MARKER STATE PROMPT":"Status do marcador","MARKER STATE":"Definir estado do marcador:","MARKER_LIST":"Lista de Marcadores: {opName}","MARKERS BUTTON TITLE":"Marcadores","MAX_SPLITS":"Divisões máximas","MAX":"Fan Field","MeetAgentPortalMarker":"Conhecer Agente","MERGE ON UPDATE":"Unir na atualização","MERGE_CHANGES_LOCAL":"Alterações locais","MERGE_CHANGES_MERGE":"Combinar resultado","MERGE_CHANGES_REMOTE":"Mudanças remotas","MERGE_LOCAL":"Manter localmente","MERGE_MESSAGE":"It seems that {opName} has local changes. Do you want to merge your modifications with the server OP, use the server version or keep the local version?","MERGE_REBASE":"Unir","MERGE_REPLACE":"Usar servidor","MERGE_TITLE":"Combinar OP local&remoto","MIN_SRC_PORT_LVL":"Nível mínimo exigido no portal de origem","MINUTES":" ({minutes} minutos atrás)","MM":"Multimáx","MM_BOTH_SIDE":"Usar ambos os lados base","MM_INSERT_ORDER":"Inserir no final","MM_SET_ALL_PORTALS":"Todos os portais visíveis","MM_SET_ALL_KEYS":"Todos os Marcadores GetKey","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Espinha","MULTI_M_TITLE":"Desenhar camadas máximas","MULTI_M":"Desenhar","MUST_NOT_BE_EMPTY":"Não deve estar vazio","MY_CAP_ID":"Minha Capsula ID","MY_COUNT":"Minha Conta","NAME_REQ":"Nome Requerido","NAME":"Nome:","NEW_OP":"Nova Operação","NEW_TEAM_NAME":"Novo nome de Equipa","NEW_TEAM":"Nova Equipa","NEW_WAS_SERVER":"Novo servidor Waasbee","NEWOP BUTTON TITLE":"Criar uma nova operação","NEWOP BUTTON":"Nova Op","NO_DT_ITEMS":"Nenhum item desenhado do DrawTools foi detectado","NO_LABEL":"Nenhum rótulo definido","NO_STOCK_INTEL":"Wasabee não suporta importações de desenho de inteligência de stoque","NO_TITLE":"Nenhum título definido","NO LONGER AVAILABLE":"Recurso removido do servidor: {error}","NO LONGER AVAILABLE SHORT":"Recurso removido do servidor","NOT LOGGED IN SHORT":"Não logado","NOT LOGGED IN":"Não logado: {error}","NOT_LOADED":"Não totalmente carregado, tente novamente.","NOT_SET":"não configurado","NTNAME":"Nome","OK":"OK","ON_HAND":"Na Mão","ONION_WAS_TAKEN":"Cebola","ONION":"Desenhar","ONLY_DT_IMP":" (apenas para importações do DrawTools)","OP DELETED":"Operação removida do servidor: {opID}","OP PERM DENIED":"Permissão negada para operação: {opID}","OP_CHECKLIST":"Lista de verificação de operação: {opName}","OP_NAME_UNSET":"O nome da operação não estava definido","OP_PERMS":"Permissões de operação","OP_SETTINGS_BUTTON":"Op ⚙","OP_SETTINGS_TITLE":"Configurações de operação","OPEN_REQUEST":"[pedido aberto]","OPER_COLOR":"Cor da operação:","OPER_NAME":"Nome da Operação:","OPERATIONS":"Operações","OPS BUTTON TITLE":"Operações","OPS BUTTON":"Ops","ORDER":"Pedido","OtherPortalAlert":"Otros","PASTE_INSTRUCT":"Cola uma exportação de desenho Wasabee aqui.\\n\\nWasabee cannot import the stock intel format.\\n\\nThere is experimental support for importing the IITC DrawTools format.\\n\\nBefore importing DrawTools format, preview the areas and make sure all the portals load so IITC has them cached. Any portals that are not pre-cached will be faked.\\n\\nYou will need to use the \'swap\' feature to move anchors from the faked portals to the real portals (they should be in the correct location, just not associated with the portal.\\n\\nCached portals might not be properly named.","pending":"Pendente","PERM DENIED":"Permissão negada: {error}","PERM DENIED SHORT":"Permissão negada","PERMS":"{opName} permissões","PLEASE_SELECT_PORTAL":"Seleciona um portal","popup.anchor.duplicate":"Duplicar","popup.anchor.keys":"Chaves: {onHand} / {required}","popup.anchor.keys_mycount":"Eu: {myCount} / {required}","popup.marker.state_button":"Definir estado","PORTAL KEY LIST":"Lista de chaves para portal {portalName}","PORTAL_COUNT":"{count} portais","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Clique para alterar a cor dos próximos links","QD BUTTON END":"Clique para parar de desenhar campos","QD BUTTON TOGGLE MODE":"Clique para alterar o modo de desenho","QD CHANGE COLOR":"Alterar a cor","QD END":"FIM","QD TITLE":"Camadas de desenho rápido","QD TOGGLE MODE":"Alterar o modo","QDBASE":"Link Base","QDCONT":"Clica num portal espinha para desenhar um campo.","QDNEXT":"Clica no segundo portal de âncora.","QDSTART":"Clica no primeiro portal de âncora.","READ_SHORT":"Ler Abreviado","READ":"Ler","RechargePortalAlert":"Recarregar","REFERENCE_TIME":"Tempo de Referência:","REM_LOC_CP":"Remover cópia local de {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Você deseja remover permanentemente {teamName} do servidor Wasabee?","REMOVE_TEAM_CONFIRM_TITLE":"Remover Equipe {teamName}","REMOVE_TEAM":"Remover Equipa:","REMOVE":"Remover","RENAME_TEAM":"Renomear Equipe:","RENAME":"Renomear","REQUIRED":"Requerido","RESET":"Redefinir","REVERSE":"Inverter","ROCKS_COM":"comunidade enl.rocks:","ROLE":"Função","SAVELINKS TITLE":"Salvar Links","SAVELINKS_DRAW":"Salvar Links","SAVELINKS":"Salvar Links","SECONDS":" ({seconds} segundos atrás)","SEL_SB_ANCHOR":"Seleciona a âncora.","SEL_SB_ANCHOR2":"Reduzir o zoom. Verifica se todos os portais foram carregados e clica em desenhar.","SEL_SL_ANCHOR":"Selecione o portal para salvar os links de. Clique no botão salvar links e veja a lista de seleção.","SEL_SRC_ANC2":"Selecionar a fonte e a âncora 2","SEL_SRC_PORT":"Selecionar um portal de origem","SELECT PORTAL":"Seleciona um portal primeiro","SELECT_FAN_PORTALS":"Selecionar um portal de âncora, um portal inicial e um portal final e, em seguida, posiciona a visualização sobre a área do campo.","SELECT_FAN_PORTALS2":"Espere todos os portais carregarem e clique em desenhar.","SELECT_INSTRUCTIONS":"Selecione dois portais de âncora, e então aumente o zoom sobre a área giratória.","SELECT_ONION_PORTALS":"As camadas são construídas de dentro para fora. Aumenta o zoom para o centro e seleciona o portal inicial, em seguida, diminui o zoom para a área.","SELF SWAP":"Não é possível trocar um portal contigo mesmo! Seleciona um portal diferente.","SEND ANALYTICS":"Enviar análises anônimas","SEND LOCATION":"Partilhar localização (somente quando o IITC estiver em primeiro plano)","SEND TARGET AGENT":"Selecionar o destinatário alvo","SEND TARGET CONFIRM":"Queres enviar {portalName} alvo para {agent}?","SEND TARGET":"Enviar alvo","SEND_LOC":"Enviar localização","SET_3_PORT":"Defina os três portais primeiro!","SET_COMMENT":"Definir Comentário","SET_LCOMMENT":"Definir comentário do link","SET_LINK_COMMENT":"Definir comentário para o link:","SET_LINKS_ZONES":"Definir links para zonas","SET_MARKER_COMMENT":"Definir comentário para marcador em:","SET_MARKER_TYPE_TITLE":"Alterar o tipo de marcador","SET_MARKERS_ZONES":"Definir Marcadores para Zonas","SET_MCOMMENT":"Definir comentário do marcador: {portalName}","SET_NEW_OP":"Define o novo nome da operação","SET_PCOMMENT":"Definir comentário do portal: {portalName}","SET_PORT_COMMENT":"Definir comentário para portal:","SET_PORTAL_COMMENT":"Definir comentário do portal","SET":"definir","SETTINGS_TOOLBOX":"Configurações do Wasabee","SETTINGS_TITLE":"Definições avançadas","SKINS_AVAILABLE":"Existem {count} skins disponíveis.","SKINS_BUTTON":"Configurar Skins","SKINS_DESCRIPTION":"Gerenciar as skins disponíveis movendo o tema para a coluna da esquerda. Quanto mais baixo na coluna, maior será a prioridade para o UI.","SKINS_MANAGE_TITLE":"Gerenciar skins","SKIP_CONFIRM_ALWAYS":"Nunca perguntar (use com cuidado)","SKIP_CONFIRM_ENTITY":"Apenas perguntar para equipa/op","SKIP_CONFIRM_NEVER":"Perguntar sempre","SKIP_CONFIRM":"Confirmação de salto","SOURCE_PORT":"Portal Fonte","STARBURST TITLE":"Starburst","STARBURST_DRAW":"Desenhar","STARBURST":"Starburst","START_PORT":"Portal inicial","STATE":"Estado","SUPPORT_INSTRUCT":"Para obter suporte, por favor, junte-se ao The Wasabee User Telegram Channel","SWAP PROMPT":"Queres trocar:","SWAP TITLE":"Trocar Portais","SWAP WITH":" com ","SWAP":"Troca","swap.marker.title":"Trocar marcador","swap.marker.prompt":"Deseja trocar o marcador:","SYNC DONE":"Download Completo","SYNC":"Download operações disponíveis","TARGET SENT":"Alvo Enviado","TEAM STATE":"Partilhar localização","TEAM_CREATED":"Equipa {teamName} created","TEAM_NAME":"Nome Equipa","TEAM":"Equipa","TEAMS BUTTON TITLE":"Listar equipas Wasabee","TEAMS BUTTON":"Equipas","TO_PORT":"Para o Portal","toolbar.op.filter":"Filtros","toolbar.op.redo":"Refazer","toolbar.op.title":"Op: {op.Name}","toolbar.op.undo":"Desfazer","toolbar.quick_delete.apply.text":"Aplicar","toolbar.quick_delete.apply.title":"Apagar links/marcadores selecionados","toolbar.quick_delete.cancel.text":"Cancelar","toolbar.quick_delete.cancel.title":"Cancelar","toolbar.quick_delete.clear.text":"Limpar tudo","toolbar.quick_delete.clear.title":"Limpar todos os links e marcadores","toolbar.quick_delete.stop.text":"Parar","toolbar.quick_delete.stop.title":"Sair do modo de eliminação","toolbar.quick_delete.title":"Eliminação rápida","toolbar.quick_delete.tooltip.toggle_mode":"Clique nos recursos para marcar para exclusão","toolbar.quick_delete.tooltip.quick_mode":"Clique nos recursos para excluir instantaneamente","toolbar.quick_draw.tooltip.star_mode.anchor":"Selecionar a âncora da Estrela","toolbar.quick_draw.tooltip.star_mode.portal":"Selecionar um portal","toolbar.quick_draw.tooltip.single_mode.first":"Clique no primeiro portal","toolbar.quick_draw.tooltip.single_mode.next":"Clique no próximo portal","toolbar.quick_draw.tooltip.portal_fail":"Dados do portal não carregados, por favor, tente novamente","toolbar.quick_draw.tooltip.burst.portal":"Selecione um Portal","toolbar.quick_draw.toggle.text":"Modo: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Caminho Simples","toolbar.quick_draw.mode.starburst":"Estrela","toolbar.wasabee.settings":"Configurações","toolbox.teammates":"Companheiros Online","TRAWL SKIP TILES":"Pular blocos para armadilha","TRAWL TITLE":"Trawl Lanes","TRAWL WARNING":"Isto carregará os dados do bloco em todos os links desenhados. Este é um processo lento.","TRAWL_AUTOMARK":"Auto-mark blockers depois da procura","TRAWL_BULK_LOAD_WARNING":"Este método carrega os dados do bloco o mais rápido possível. Usa por sua conta e risco.","TRAWL_BULK_LOAD":"Carregar rapidamente Dados do Bloco","TRAWL_CLEAR_MARKERS":"Limpa vírus / destroi marcadores antes da procura","TRAWL_REMAINING":"{count} Restantes","TRAWL":"Procurar por Blockers","TRAWLING":"A Varrer os links a procura de blockers, fecha esta caixa de diálogo para parar","TYPE":"Tipo","UNASSIGNED":"Não atribuído","UNKNOWN":"Desconhecido","UPDATE HOVER":"UPDATE {opName} no servidor","UPDATE PERM DENIED":"Você não possui permissão para editar","UPDATE_CONFLICT_DESC":"A OP foi modificada no servidor desde a última sincronização. Queres substituir a versão do servidor pela atual?","UPDATE_CONFLICT_TITLE":"Conflito detectado com o servidor","UPDATE_COUNT":"Contagem de atualização","UPDATED":"Atualizado com sucesso","UpgradePortalAlert":"Atualizar","UPLOAD BUTTON HOVER":"UPLOAD {opName} (atualmente não está no servidor)","UPLOADED":"Carregado com sucesso","USE PANES ON MOBILE":"Usar painéis (precisa recarregar)","USE_VALID_NAME":"Usa um nome de operação válido","UseVirusPortalAlert":"Usar Virus","VRLA DESC":"Dependendo do número e tipo de Link Amps usados, um nível de portal de origem inferior pode ser suficiente.","VRLA":"L8+alguns VRLA","WASABEE BUTTON TITLE":"Wasabee: É VERDE E FAZ SMURFS CHORAREM.","WASABEE_D_LIST":"Contagem de chaves defensivas de entrada","WD BUTTON TITLE":"Log de chaves defensivas","WD BUTTON":"W-D Chaves","WRITE_SHORT":"RW","WRITE":"escrita","WSERVER":"Servidor: {url}","YESNO_DEL":"Tem certeza de que deseja excluir {opName}?","ZONE_DRAW":"Clique para definir os limites da zona","ZONE":"Zona","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Marcador"}}'),Русский:JSON.parse('{"ABOUT_WASABEE":"О Wasabee","acknowledged":"цель получена","ADD LINK TITLE":"Добавление линков","ADD MARKER TITLE":"Добавление маркеров","ADD_AGENT":"Добавить агента:","ADD_BL":"Добавить перемычки:","ADD_BULK":"Массовое добавление","ADD_BUTTON_LINKS":"Добавить все линки сразу.","ADD_LINKS":"Добавить линки","ADD_MARKER":"+ маркер","ADD_NEW_OP":"Добавить новую ОПРЦ","ADD_SUCC_INSTR":"Агент добавлен","ADD_ZONE":"Добавить зону","ADD":"Добавить","ADD1":"Добавить первый линк","ADD2":"Добавить второй линк","AGENT_STATS":"Данные агента","AGENT":"Агент","AGES":" (давно)","ALREADY_HAS_MARKER":"У этого портала уже есть маркер. Выбери другой портал.","AMAZ_TEAM_NAME":"Отличное название.","ANCHOR ASSIGNMENT":"Назначить все исходящие линки:","ANCHOR_GMAP":"Google-карты","ANCHOR_PORTAL":"Опорный портал","ANCHOR_PORTAL2":"Опорный портал 2","ANCHOR_PORTAL3":"Опорный портал 3","ANCHOR1":"Опорник 1","ANCHOR2":"Опорник 2","ANCHOR3":"Опорник 3","ANCHORS_AS_BOOKMARKS":"Опорники в закладки","API_KEY":"API ключ Rocks:","ASS_TO":"Назначено агенту","ASSIGN LINK PROMPT":"Назначить линк с портала: {portalName}","ASSIGN MARKER PROMPT":"Назначить маркер с {portalName}","ASSIGN OUTBOUND PROMPT":"Назначить все исходящие линки с {portalName}","ASSIGN OUTBOUND":"Назначить исходящие линки","ASSIGN":"Назначить","ASSIGNED_ONLY_SHORT":"Назначенные","ASSIGNED_ONLY":"Только назначенные","assigned":"Назначено","AUTH INCOMPAT":"Ты активировал в TamperMonkey плагин, который несовместим с Wasabee","AUTH REQUIRED":"Необходима аутентификация","AUTH TOKEN REJECTED":"Отправка аутентификационного токена на сервер отклонена: {error}","AUTH_SELECT_ACCOUNT":"Выбери аккаунт","AUTO_DRAWS":"Авто-рисовка","AUTODRAWS":"Опции авто-рисовки Wasabee","AUTODRAW_PORTALS_SET":"Порталы","autodraw.common.draw_button":"Нарисовать","autodraw.fanfield.result":"Найдено fanfield с {links} линками и {fields} полями для {ap} AP","autodraw.flipflop.result":"Flip flop: найдено {count} линков","autodraw.homogeneous.missing_split":"Невозможно найти поле {count} уровня, попробуй уровни нижеили в другом месте","autodraw.homogeneous.order":"Порядок","autodraw.homogeneous.portals_required":"Нужно {count}","autodraw.madrid.auto_determined":"Авто-определённый","autodraw.madrid.balanced":"Сбалансированный","autodraw.madrid.result":"Для Мадрида найдено {count} полей","autodraw.multimax.result":"Для multimax найдено {count} полей","autodraw.multimax.result_both_side":"Для multimax найлено {count1} и {count2} полей","autodraw.onion.variant":"Опции","autodraw.onion.variant.equilateral":"~Равносторонний","autodraw.onion.variant.grow":"Пусть растет","autodraw.onion.variant.balanced":"Безупречный баланс","AUTOLOAD_RATE":"Скорость запроса данных портала (ms)","AUTOLOAD":"Автоматически загружать недостающие данные портала","AUTOMARK STOP":"Авто-маркировка остановлена, т.к. порталы не были загружены","AUTOMARK":"Авто-маркировка","BAT_TOAD":"Боевые жабы","BLOCKER LIST TITLE":"Показать все кроссы","BLOCKER TITLE":"кроссы","CANCEL":"Отменить","CAPSULE":"Капсула","CapturePortalMarker":"Захватить","CHANGE SERVER PROMPT":"Новый сервер Wasabee","CHANGE SERVER":"Сменить сервер","CHANGE_WAS_SERVER":"Сменить сервер Wasabee","CHECKLIST BUTTON TITLE":"Чек-лист операции","CHECKLIST BUTTON":"Чек-лист","CLEAR LINKS":"Удалить линки","CLEAR MARKERS":"Удалить маркеры","CLEAR_EVERYTHING":"Удалить порталы/линки/маркеры для текущей ОПРЦ","CLEAROPS BUTTON TITLE":"Удалить данные","CLEAROPS BUTTON":"Удалить данные","CLEAROPS PROMPT":"Удалить все локальные ОПРЦ. ОПРЦ будут восстановлены при следующей загрузке.","CLOSE":"Закрыть","COMMENT":"Комментарий","COMPLETED BY":"Выполнено агентом {agentName}","completed":"Выполнено","CON_DEL":"Подтверди удаление: {opName}","COUNT":"Количество","CREATE_NEW_TEAM":"Создать новую команду","CreateLinkAlert":"Линк","CUR_USER_INFO":"Информация о пользователе","D_SHOW_LIST":"Ввести ключи на руках","DEFAULT OP NAME":"Новая ОПРЦ: {date}","DELETE ANCHOR PROMPT":"Хочешь удалить этот портал и все связанные линки:","DELETE ANCHOR TITLE":"Удалить портал","DELETE MARKER PROMPT":"Хочешь удалить этот маркер:","DELETE MARKER TITLE":"Удалить маркер","DELETE_ANCHOR":"Удалить","DELETE_LINK":"Удалить","DELETE_OP":"Удалить {opName}","DESCRIP_PLACEHOLD":"Описание (опционально)","DestroyPortalAlert":"Снести","dialog.about.download_mobile_app":"

Приложение Wasabee:

","dialog.agent_comment.text":"Комментарий:","dialog.agent_comment.title":"Задать комментарий для {agentName}","dialog.auth.ott.button":"Вход с одноразовым токеном","dialog.auth.ott.text":"Получи токен на сервере Wasabee, затем вставь его здесь","dialog.auth.ott.title":"Одноразовый токен","dialog.blockers.clear_automark":"Очистить автометки","dialog.clear_all.text":"Хочешь сбросить {opName}?","dialog.clear_all.title":"Очистить: {opName}","dialog.clear_links.text":"Хочешь удалить все линки в {opName}?","dialog.clear_links.title":"Очистить линки: {opName}","dialog.clear_markers.text":"Хочешь удалить все маркеры в {opName}?","dialog.clear_markers.title":"Очистить линки: {opName}","dialog.checklist.count_fields":"Почситать поля","dialog.checklist.count_fields.no_empty":"Найдено {fieldCount} полей и пустых полей нет","dialog.checklist.count_fields.with_empty":"Найдено {fieldCount} полей и {emptyCount} пустых полей на {linkCount} линках","dialog.checklist.count_fields.link_from_inside":"Найдено {count} линков с накрытых порталов","dialog.checklist.count_fields.link_from_inside.covered_at_order":" на шаге {order} линком ","dialog.common.color":"Цвет","dialog.common.commands":"Команды","dialog.common.commands_short":"Команды","dialog.common.delete":"Удалить","dialog.common.links":"Линки","dialog.common.markers":"Маркеры","dialog.common.name":"Название","dialog.common.off":"Выкл.","dialog.common.on":"Вкл.","dialog.common.owner":"Владелец","dialog.common.zone_all":"Все","dialog.filter.actions.description":"Применить изменения ко всем видимым задачам","dialog.filter.actions.delete_visible":"Удалить","dialog.filter.actions.delete_hidden":"Удалить все другие задачи","dialog.filter.actions.shift.label":"Смещение","dialog.filter.actions.shift.button":"Сдвиг","dialog.filter.actions.title":"Действия","dialog.filter.filters.apply":"Применить фильтры","dialog.filter.filters.description":"Выберите свойства для фильтрации задач, которые вы хотите видеть и изменить.","dialog.filter.filters.field.task":"Задача","dialog.filter.filters.field.min_order":"Минимальный номер","dialog.filter.filters.field.max_order":"Максимальный номер","dialog.filter.filters.title":"Фильтры","dialog.filter.title":"Фильтры и действия","dialog.firebase.setup":"Посети {url} и нажми кнопку, чтобы авторизовать обновления в реальном времени. После этого перезагрузи IITC.","dialog.import.url":"Заполнить из URL","dialog.import.success_message":"Импорт завершён. Найдено {count} порталов и {faked} порталов было не подгружено. Используй функцию замены, чтобы заменить неподгруженные порталы на настоящие на тех же местах. Увеличение масштаба на порталах чек-листа с меткой \'загрузка\' может заставить их загрузиться.","dialog.keys.update_error":"Портал пока не в ОПРЦ, сделай синхронизацию с сервером","dialog.leave_team.text":"Если покинешь {teamName}, то не сможешь снова присоединиться пока владенец не добавит тебя.","dialog.leave_team.title":"Покинуть: {teamName}","dialog.link_list.length":"Длина","dialog.link_list.level":"Мин. уровень","dialog.link_list.all_from":"Установить все исходящие","dialog.link_list.all_to":"Установить все входящее","dialog.conflict.cancel_upload":"Отменить загрузку","dialog.conflict.conflicts":"Конфликты:","dialog.conflict.local":"Локальная копия","dialog.conflict.server":"Серверная копия","dialog.conflict.zone":"Зона: {name}","dialog.conflict.prop.assignedTo":"Назначить:","dialog.conflict.prop.comment":"Комментарий:","dialog.conflict.prop.color":"Цвет:","dialog.conflict.prop.deltaminutes":"Дельта:","dialog.conflict.prop.fromPortal":"От:","dialog.conflict.prop.hardness":"Сложность:","dialog.conflict.prop.order":"Порядок:","dialog.conflict.prop.state":"Статус:","dialog.conflict.prop.toPortal":"К:","dialog.conflict.prop.zone":"Зона:","dialog.conflict.prop.zone_points":"Форма изменилась","dialog.online_agents.actions":"Действия","dialog.online_agents.last_seen":"Последняя активность","dialog.online_agents.title":"Агенты онлайн","dialog.op_settings.advanced":"Доп. настройки","dialog.op_settings.import.desc":"Импортировать линки/маркеры/зоны из другой ОПРЦ","dialog.op_settings.import.collision_default":"В случае конфликта использовать импортированные линки/маркеры","dialog.op_settings.import.select_op":"Выбрать ОПРЦ","dialog.op_settings.import.select_color":"Цвет линков","dialog.op_settings.import.button":"Импорт","dialog.op_settings.setting":"Настройки","dialog.op_settings.zones":"Зоны","dialog.ops_list.background_disable":"Отключить фон","dialog.ops_list.background_enable":"Показывать в фоне","dialog.ops_list.download":"Скачать {opName}","dialog.ops_list.last_fetched":"Получено: {date}","dialog.ops_list.local_change":"Локальная версия изменилась","dialog.ops_list.remote_change":"Версия на сервере изменилась","dialog.ops_list.toggle_hide":"Переключить Показать/Скрыть","dialog.ops_list.unhide_ops":"Показать все ОПРЦ","dialog.remove_agent.text":"Хочешь удалить {agentName} из {teamName}?","dialog.remove_agent.title":"Удалить: {agentName}","dialog.setcomment.portal_hardness":"Сложность","dialog.settings.disable_live_updates":"Отключить обновления в реальном времени","dialog.settings.populate_opportals":"Заполнить карту порталами ОПРЦ","dialog.team_list.load_wd_keys":"Загрузить ключи на руках","dialog.team_list.share_wd_keys":"Поделиться ключами на руках","dialog.team_manage.join_link":"Ссылка для присоединения","dialog.team_manage.join_link.create":"Создать","dialog.team_manage.join_link.revoke":"Отозвать","dialog.team_members.location":"Делится местоположением","dialog.team_members.wd_keys":"Делится ключами на руках","dialog.team_message":"Объявление команде: \\"{message}\\" от {sender}","dialog.update_warning":"Wasabee устарело. Пожалуйста, обнови через менеджер плагинов или по ссылке https://wasabee.rocks","dialog.zone_color.title":"Цвет зоны","dialog.zone_color.text":"Задать цвет всем линкам в зоне {zoneName}","dialog.zones.color":"Цвет","dialog.zones.color_links":"Задать цвет линкам","dialog.zones.delete.title":"Удалить зону {zoneName}","dialog.zones.delete.text":"Хочешь удалить зону “{zoneName}” ?","dialog.zones.delete_zone_shape":"Сбросить очертание зоны","dialog.zones.draw_zone_shape":"Нарисовать границы","dialog.zones.id":"ID","dialog.zones.jump_to":"Перейти к зоне","dialog.zones.stop_drawing":"Закончить рисовать","dialog.zones.title":"Зоны","DRAW TOOLS FORMAT":"Формат ДТ","DUPE_OP":"Дублировать операцию","END_PORT":"Конечный портал","ExcludeMarker":"Исключить из авто-рисовки/маркировки","EXPORT OP TITLE":"Экспортировать текущую ОПРЦ","EXPORT OP":"Экспортировать ОПРЦ","EXPORT":"Экспортировать:","FAKED":"Неподгружен: [{portalId}]","FANFIELD":"Нарисовать","FANFIELD2":"Нарисовать Fan Field","FarmPortalMarker":"Отфармить","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Исходя из заданного опорника, видимых порталов и количества SBUL, найти fanfield, в котором очередность перенавеса с опорника будет идти по уменьшению длины линков для того, чтобы избежать поиска ключей.","FLIP_FLOP_INSTRUCTION":"Выбери портал, приблизь карту, чтобы видеть достаточно порталов и нажми Рисовать. Как только fanfield будет найдено, можно будет поискать другие опорники для последовательного перенавеса.","FLIP_FLOP_FIND_ANCHORS":"Найти другие опорники","FROM_1-2":"от опорного линка 1-2","FROM_1-3":"от опорного линка 1-3","FROM_2-3":"от опорного линка 2-3","FROM_DEPTH":"из глубины","FROM_PORT":"С портала","GET DT":"Получить существующее ДТ","GetKeyPortalMarker":"Получить ключи","GotoPortalMarker":"Перейти к","H-GEN_INST":"Выбери порталы для внешнего слоя. Выбери порядок гомогенности. Нажми \'рисовать\'.","HF_DEEP_SEARCH":"Инсчерпывающий поиск","HF_DRAW_BUTTON":"Рисовать","HF_REDRAW_BUTTON":"Перерисовать","HG":"Гомогенное поле","HOURS":" ({hours} часов назад)","HOW_TO_VIDS":"

Обучающие видео:

","IMP_NOPE":"Ошибка импорта.","IMP_WAS_OP":"Импортировать ОПРЦ Wasabee","IMPORT_OP_SUCCESS":"ОПРЦ: {opName} импортирована успешно.","IMPORT_OP_TITLE":"Импортировать ОПРЦ: {date}","IMPORT_OP":"Импортировать операцию","IMPOSSIBLE":"Невозможно","INGNAME_GID":"Ник Ingress или GoogleID","INPUT_DT_KEY_COUNT":"Введи количество ключей на руках","INVALID REQUEST":"Неверный запрос","IOS NEED FAKE UA":"Нужно установить \'Custom UserAgent for Webviews\' в настройках IITC-Mobile, чтобы вход удался","KEY_LIST2":"Список ключей для операции: {opName}","KEYS":"Ключи","KNOWN_BLOCK":"Известные кроссы: {opName}","LA DESC":"В зависимости от количества и типа использованных ламп для линковки может быть достаточно более низкого уровня портала.","LA":"П8 с несколькими LA","LANG":"Язык","LEAVE":"Выйти","LetDecayPortalAlert":"Просадить","LINK ASSIGNMENT":"Назначить линк:","LINK STATE PROMPT":"Статус линка","LINK STATE":"Установить статус линка:","LINKS BUTTON TITLE":"Линки","LINKS":"Линки","LINKS2":"{portalName} : Линки ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Загрузить порталы","LOADING":"[загрузка]","LOADING1":"Загрузка: [{portalGuid}]","LOC_PROC":"Местоположение обработано","LOCATION SUB":"Местоположение зарегистрировано","LOCFRMSER":" (локально и с сервера)","LOG IN":"Логин","LOG_OUT":"Выход","MADRID_SET_1":"Выбери область для опорного линка сопорника 2 на опорник 3","MADRID_SET_2":"Выбери область для опорного линка сопорника 3 на опорник 1","MADRID_SET_3":"Выбери область для опорного линка сопорника 1 на опорник 2","MADRID_TITLE":"Мадридский протокол","MADRID_WAS_TAKEN":"Мадридский протокол","MADRID":"Нарисовать","MANAGE_TEAM":"Редактировать {teamName}","MANAGE":"Редактировать","MARKER ASSIGNMENT":"Назначить маркер:","MARKER LIST TITLE":"Список маркеров","MARKER LIST":"Маркеры","MARKER STATE PROMPT":"Статус маркера","MARKER STATE":"Установить статус маркера:","MARKER_LIST":"Список маркеров: {opName}","MARKERS BUTTON TITLE":"Маркеры","MAX_SPLITS":"Максимальный уровень","MAX":"FanField","MeetAgentPortalMarker":"Встретить агента","MERGE ON UPDATE":"Объединить при обновлении","MERGE_CHANGES_LOCAL":"Изменения на устройстве","MERGE_CHANGES_MERGE":"Объединить результат","MERGE_CHANGES_REMOTE":"Изменения на сервере","MERGE_LOCAL":"Сохранить версию с устройства","MERGE_MESSAGE":"Похоже, что в ОПРЦ{opName} внесены изменения на устройстве. Хочешь объединить изменения с ОПРЦ на сервере, использовать версию с сервера или сохранить версию с устройства?","MERGE_REBASE":"Объединить","MERGE_REPLACE":"Использовать версию с сервера","MERGE_TITLE":"Объединение версий ОПРЦ на устройстве и на сервере","MIN_SRC_PORT_LVL":"Минимальный требуемый уровень портала для линковки","MINUTES":" ({minutes} минут назад)","MM":"Multimax","MM_BOTH_SIDE":"Использовать обе стороны опорного линка","MM_INSERT_ORDER":"Вставить в конце","MM_SET_ALL_PORTALS":"Все видимые порталы","MM_SET_ALL_KEYS":"Все маркеры GetKey","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Грядка","MULTI_M_TITLE":"Нарисовать максимальное количество слоёв","MULTI_M":"Нарисовать","MUST_NOT_BE_EMPTY":"Не должно быть пустым","MY_CAP_ID":"ID моей капсулы","MY_COUNT":"Моё количество","NAME_REQ":"Требуется имя","NAME":"Название:","NEW_OP":"Новая операция","NEW_TEAM_NAME":"Новое имя команды","NEW_TEAM":"Новая команда","NEW_WAS_SERVER":"Новый сервер Wasabee","NEWOP BUTTON TITLE":"Создать новую операцию","NEWOP BUTTON":"Новая ОПРЦ","NO_DT_ITEMS":"Не обнаружено элементов ДТ","NO_LABEL":"Метка не установлена","NO_STOCK_INTEL":"Wasabee не поддерживает импорт из Intel","NO_TITLE":"Название не установлено","NO LONGER AVAILABLE":"Ресурс удален с сервера: {error}","NO LONGER AVAILABLE SHORT":"Ресурс удален с сервера","NOT LOGGED IN SHORT":"Не залогинен","NOT LOGGED IN":"Не залогинен: {error}","NOT_LOADED":"Не полностью загружено, попробуй еще раз.","NOT_SET":"не установлено","NTNAME":"Название","OK":"ОК","ON_HAND":"На руках","ONION_WAS_TAKEN":"Onion","ONION":"Нарисовать","ONLY_DT_IMP":" (только для импорта ДТ)","OP DELETED":"Операция удалена с сервера: {opID}","OP PERM DENIED":"Отказано в доступе к операции: {opID}","OP_CHECKLIST":"Чек-лист операции: {opName}","OP_NAME_UNSET":"Название операции не задано","OP_PERMS":"Разрешения ОПРЦ","OP_SETTINGS_BUTTON":"ОПРЦ ⚙","OP_SETTINGS_TITLE":"Настройки операции","OPEN_REQUEST":"[открытый запрос]","OPER_COLOR":"Цвет операции:","OPER_NAME":"Название операции:","OPERATIONS":"Операции","OPS BUTTON TITLE":"Список операций","OPS BUTTON":"Выбери ОПРЦ","ORDER":"Порядок","OtherPortalAlert":"Другое","PASTE_INSTRUCT":"Вставь экспортируемые данные Wasabee здесь.\\n\\nWasabee не может импортировать данные в формате интела.\\n\\nЕсть эксперементальная поддержка ДТ формата IITC.\\n\\nПрежде чем импортировать ДТ в формате IITC, просмотри область ДТ и убедись, что все порталы загружены и кэшированы в IITC. Любой неподгруженный портал будет неподгружен.\\n\\nНужно будет использовать функцию \'замена\', чтобы переместить порталы со неподгруженных на настоящие (местоположение порталов будет корректным, однако неподгруженные порталы не будут связаны с реальными).\\n\\nКэшированные порталы могут некорректно называться.","pending":"Ожидается","PERM DENIED":"Доступ запрещен: {error}","PERM DENIED SHORT":"Доступ запрещен","PERMS":"Разрешения {opName}","PLEASE_SELECT_PORTAL":"Выбери портал","popup.anchor.duplicate":"Дублировать","popup.anchor.keys":"Ключи: {onHand} / {required}","popup.anchor.keys_mycount":"Я: {myCount} / {required}","popup.marker.state_button":"Задать статус","PORTAL KEY LIST":"Список ключей для портала {portalName}","PORTAL_COUNT":"{count} порталов","PORTAL":"Портал","QD BUTTON CHANGE COLOR":"Кликни, чтобы изменить цвет следующего линка","QD BUTTON END":"Кликни, чтобы остановить прорисовку полей","QD BUTTON TOGGLE MODE":"Кликни, чтобы поменять режим рисовки","QD CHANGE COLOR":"Изменить цвет","QD END":"Стоп","QD TITLE":"Слои быстрой рисовки","QD TOGGLE MODE":"Изменить режим","QDBASE":"Опорный линк","QDCONT":"Кликни портал в грядке, чтобы нарисовать поле.","QDNEXT":"Кликни на второй опорный портал.","QDSTART":"Кликни на первый опорный портал.","READ_SHORT":"RO","READ":"только чтение","RechargePortalAlert":"Зарядить","REFERENCE_TIME":"Референсное время:","REM_LOC_CP":"Удалить локальную копию {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Хочешь навсегда удалить {teamName} с сервера Wasabee?","REMOVE_TEAM_CONFIRM_TITLE":"Удаление команды {teamName}","REMOVE_TEAM":"Удалить команду:","REMOVE":"Удалить","RENAME_TEAM":"Переименовать команду:","RENAME":"Переименовать","REQUIRED":"Требуется","RESET":"Сброс","REVERSE":"Обратить","ROCKS_COM":"Сообщество enl.rocks:","ROLE":"Роль","SAVELINKS TITLE":"Сохранить линки","SAVELINKS_DRAW":"Сохранить линки","SAVELINKS":"Сохранить линки","SECONDS":" ({seconds} секунд назад)","SEL_SB_ANCHOR":"Выбери опорник.","SEL_SB_ANCHOR2":"Уменьши масштаб. Убедись, что порталы полностью загрузились, затем кликни рисовку.","SEL_SL_ANCHOR":"Выбери портал, линки которого нужно сохранить. Кликни на кнопку сохранения линков и посмотри в чек-лист.","SEL_SRC_ANC2":"Выбери оба портала: начальный и опорник 2","SEL_SRC_PORT":"Выбери начальный портал","SELECT PORTAL":"Сначала выбери портал","SELECT_FAN_PORTALS":"Выбери опорный портал, стартовый портал и конечный портал, а затем позиционируйте карту над областью полей.","SELECT_FAN_PORTALS2":"Подожди, пока все порталы загрузятся, затем кликни рисовку.","SELECT_INSTRUCTIONS":"Выбери два опорных портала, затем увеличь область грядки.","SELECT_ONION_PORTALS":"Слои строятся изнутри наружу. Приблизь масштаб в центр и выбери начальный портал, затем отдали масштаб на всю область.","SELF SWAP":"Нельзя заменить портал на тот же самый! Выбери другой портал.","SEND ANALYTICS":"Отправить аналитику анонимно","SEND LOCATION":"Делиться местоположением (только когда IITC активно используется)","SEND TARGET AGENT":"Выбрать получателя цели","SEND TARGET CONFIRM":"Хочешь отправить цель {portalName} агенту {agent}?","SEND TARGET":"Отправить цель","SEND_LOC":"Отправить местоположение","SET_3_PORT":"Сначала задай три портала!","SET_COMMENT":"Задать комментарий","SET_LCOMMENT":"Задать комментарий к линку","SET_LINK_COMMENT":"Задать комментарий для линка:","SET_LINKS_ZONES":"Задать линкам зоны","SET_MARKER_COMMENT":"Задать комментарий для маркера на:","SET_MARKER_TYPE_TITLE":"Изменить тип маркера","SET_MARKERS_ZONES":"Задать маркеры в зоны","SET_MCOMMENT":"Задать комментария маркеру: {portalName}","SET_NEW_OP":"Задай имя для новой операции","SET_PCOMMENT":"Задать комментарий порталу: {portalName}","SET_PORT_COMMENT":"Задать комментарий порталу:","SET_PORTAL_COMMENT":"Задать комментарий порталу","SET":"задать","SETTINGS_TOOLBOX":"Настройки Wasabee","SETTINGS_TITLE":"Расширенные настройки","SKINS_AVAILABLE":"Есть {count} доступных скинов.","SKINS_BUTTON":"Настроить скины","SKINS_DESCRIPTION":"Пакеты доступных скинов размещены в правой колонке. Перемести в левую колонку те, которые хочешь использовать.","SKINS_MANAGE_TITLE":"Управление скинами","SKIP_CONFIRM_ALWAYS":"Никогда не спрашивать (используй осторожно)","SKIP_CONFIRM_ENTITY":"Спрашивать только для команд/ОПРЦ","SKIP_CONFIRM_NEVER":"Всегда спрашивать","SKIP_CONFIRM":"Подтверждение пропуска","SOURCE_PORT":"Начальный портал","STARBURST TITLE":"Звезда","STARBURST_DRAW":"Рисовка","STARBURST":"Звезда","START_PORT":"Стартовый портал","STATE":"Статус","SUPPORT_INSTRUCT":"Для поддержки, присоединяйся к The Wasabee User Telegram Channel","SWAP PROMPT":"Хочешь заменить:","SWAP TITLE":"Замена порталов","SWAP WITH":" на ","SWAP":"Замена","swap.marker.title":"Поменять маркер","swap.marker.prompt":"Хочешь поменять маркер:","SYNC DONE":"Загрузка завершена
Кликни ЗДЕСЬ для подсказок, советов и документации.","SYNC":"Загрузить доступные операции","TARGET SENT":"Цель отправлена","TEAM STATE":"Делиться местоположением","TEAM_CREATED":"Команда {teamName} создана","TEAM_NAME":"Название команды","TEAM":"Команда","TEAMS BUTTON TITLE":"Список команд Wasabee","TEAMS BUTTON":"Команды","TO_PORT":"На портал","toolbar.op.filter":"Фильтры","toolbar.op.redo":"Повторить","toolbar.op.title":"ОПРЦ: {opName}","toolbar.op.undo":"Отменить","toolbar.quick_delete.apply.text":"Применить","toolbar.quick_delete.apply.title":"Удалить выбранные линки/маркеры","toolbar.quick_delete.cancel.text":"Отмена","toolbar.quick_delete.cancel.title":"Отмена","toolbar.quick_delete.clear.text":"Очистить всё","toolbar.quick_delete.clear.title":"Очистить все линки и маркеры","toolbar.quick_delete.stop.text":"Стоп","toolbar.quick_delete.stop.title":"Выйти из режима удаления","toolbar.quick_delete.title":"Быстрое удаление","toolbar.quick_delete.tooltip.toggle_mode":"Кликни на объекты, чтобы выделить их для удаления","toolbar.quick_delete.tooltip.quick_mode":"Кликни на объекты, чтобы немедленно удалить их","toolbar.quick_draw.tooltip.star_mode.anchor":"Выбери опорник звезды","toolbar.quick_draw.tooltip.star_mode.portal":"Выбери портал","toolbar.quick_draw.tooltip.single_mode.first":"Нажми на первый портал","toolbar.quick_draw.tooltip.single_mode.next":"Нажми на следующий портал","toolbar.quick_draw.tooltip.portal_fail":"Данные о портале не загружены, попробуй еще раз","toolbar.quick_draw.tooltip.burst.portal":"Выбери портал","toolbar.quick_draw.toggle.text":"Режим: {mode}","toolbar.quick_draw.mode.burst":"Звёздочка","toolbar.quick_draw.mode.multilayer":"Матрёшка","toolbar.quick_draw.mode.singlelink":"Цепочка","toolbar.quick_draw.mode.starburst":"Линкстар","toolbar.wasabee.settings":"Настройки","toolbox.teammates":"Сокомандники онлайн","TRAWL SKIP TILES":"Шаг тайлов для выверки","TRAWL TITLE":"Выверка трасс","TRAWL WARNING":"Этот метод загрузит данные тайлов под всеми нарисованными линками. Это медленный процесс.","TRAWL_AUTOMARK":"Автоматически маркировать кроссы после выверки","TRAWL_BULK_LOAD_WARNING":"Этот метод загрузит данные тайлов так быстро, как это возможно. Используй его на свой страх и риск.","TRAWL_BULK_LOAD":"Массово загрузить данные тайлов","TRAWL_CLEAR_MARKERS":"Очистить маркеры вирусов и сноса перед выверкой","TRAWL_REMAINING":"{count} тайлов осталось","TRAWL":"Выверка для поиска кроссов","TRAWLING":"Выверка трасс для поиска кроссов, закрой этот диалог, чтобы остановить процесс","TYPE":"Тип","UNASSIGNED":"Не назначен","UNKNOWN":"Неизвестен","UPDATE HOVER":"ОБНОВИТЬ {opName} на сервере","UPDATE PERM DENIED":"У тебя недостаточно прав для обновления","UPDATE_CONFLICT_DESC":"ОПРЦ изменилась на сервере с момента последней синхронизации. Хочешь заменить версию на сервере текущей?","UPDATE_CONFLICT_TITLE":"Обнаружен конфликт с сервером","UPDATE_COUNT":"Количество обновлений","UPDATED":"Успешно обновлено","UpgradePortalAlert":"Апнуть","UPLOAD BUTTON HOVER":"ЗАГРУЗИТЬ {opName} на сервер (пока что её там нет)","UPLOADED":"Успешно загружено на сервер","USE PANES ON MOBILE":"Использовать панели (нужна перезагрузка)","USE_VALID_NAME":"Используй действительное название операции","UseVirusPortalAlert":"Использовать вирус","VRLA DESC":"В зависимости от количества и типа использованных ламп может быть достаточно более низкого уровня портала для линковки.","VRLA":"П8 с несколькими VRLA","WASABEE BUTTON TITLE":"Wasabee: зелёный и заставляет смурфов плакать.","WASABEE_D_LIST":"Ввод количества ключей на руках","WD BUTTON TITLE":"Список ключей на руках","WD BUTTON":"Ключи на руках","WRITE_SHORT":"RW","WRITE":"чтение и запись","WSERVER":"Сервер: {url}","YESNO_DEL":"Уверен, что хочешь удалить {opName}?","ZONE_DRAW":"Кликни, чтобы задать границы зоны","ZONE":"Зона","smallScreen":{"ADD_LINKS":"+ Линки","ADD_MARKER":"+ Маркер"}}'),Dansk:JSON.parse('{"ABOUT_WASABEE":"Om Wasabee","acknowledged":"Anerkendt","ADD LINK TITLE":"Tilføj Links","ADD MARKER TITLE":"Tilføj Markører","ADD_AGENT":"Tilføj Agent:","ADD_BL":"Tilføj baglinie:","ADD_BULK":"Massetilføj","ADD_BUTTON_LINKS":"Tilføj alle links med det samme.","ADD_LINKS":"Tilføj Links","ADD_MARKER":"+ Markør","ADD_NEW_OP":"Tilføj Ny Op","ADD_SUCC_INSTR":"Agent tilføjet","ADD_ZONE":"Tilføj Zone","ADD":"Tilføj","ADD1":"Tilføj første link","ADD2":"Tilføj andet link","AGENT_STATS":"Agent Statistik","AGENT":"Agent","AGES":" (for længe siden)","ALREADY_HAS_MARKER":"Denne portal har allerede en markør, vælg en anden Portal.","AMAZ_TEAM_NAME":"Fantastisk holdnavn.","ANCHOR ASSIGNMENT":"Tilknyt alle udgående links til:","ANCHOR_GMAP":"Google Maps","ANCHOR_PORTAL":"Anker Portal","ANCHOR_PORTAL2":"Anker Portal 2","ANCHOR_PORTAL3":"Anker Portal 3","ANCHOR1":"Anker 1","ANCHOR2":"Anker 2","ANCHOR3":"Anker 3","ANCHORS_AS_BOOKMARKS":"Ankere som bookmarks","API_KEY":"Rocks API-nøgle:","ASS_TO":"Tildelt","ASSIGN LINK PROMPT":"Tilføj link fra: {portalName}","ASSIGN MARKER PROMPT":"Tildel markør fra: {portalName}","ASSIGN OUTBOUND PROMPT":"Tildel alle udgående links fra: {portalName}","ASSIGN OUTBOUND":"Tildel udgående links","ASSIGN":"Tildel","ASSIGNED_ONLY_SHORT":"KT","ASSIGNED_ONLY":"Kun tildelt","assigned":"Tildelt","AUTH INCOMPAT":"Du har aktiveret et plugin i TamperMonkey, der er inkompatibelt med Wasabee","AUTH REQUIRED":"Godkendelse påkrævet","AUTH TOKEN REJECTED":"Afsendelse af godkendelsestoken til serveren blev afvist: {error}","AUTH_SELECT_ACCOUNT":"Vælg konto","AUTO_DRAWS":"Auto-tegne","AUTODRAWS":"Wasabee Indstillinger for automatisk tegning","AUTODRAW_PORTALS_SET":"Portaler","autodraw.common.draw_button":"Tegn","autodraw.fanfield.result":"Fanfield found {links} links and {fields} fields for {ap} AP","autodraw.flipflop.result":"Flip flop: fundet {count} links","autodraw.homogeneous.missing_split":"Unable to find {count} splits, try less depth or a different region","autodraw.homogeneous.order":"Order","autodraw.homogeneous.portals_required":"{count} required","autodraw.madrid.auto_determined":"Auto-determined","autodraw.madrid.balanced":"Balanced","autodraw.madrid.result":"Madrid found {count} layers","autodraw.multimax.result":"Multimax found {count} layers","autodraw.multimax.result_both_side":"Multimax found {count1} and {count2} layers","autodraw.onion.variant":"Valg","autodraw.onion.variant.equilateral":"~Ligesidet","autodraw.onion.variant.grow":"Lad det vokse","autodraw.onion.variant.balanced":"Perfekt balanceret","AUTOLOAD_RATE":"Rate for anmodning om portaldetaljer (ms)","AUTOLOAD":"Indlæs automatisk manglende portaloplysninger","AUTOMARK STOP":"Auto-markering stoppede på grund af, at portaler ikke blev indlæst","AUTOMARK":"Auto-mærke","BAT_TOAD":"Battle Toads/manglende oversættelse","BLOCKER LIST TITLE":"Vis alle blokkere","BLOCKER TITLE":"Blokere","CANCEL":"Annuller","CAPSULE":"Kapsel","CapturePortalMarker":"erobre","CHANGE SERVER PROMPT":"Ny Wasabee Server","CHANGE SERVER":"Skift Server","CHANGE_WAS_SERVER":"Skift Wasabee Server","CHECKLIST BUTTON TITLE":"Operation Tjekliste","CHECKLIST BUTTON":"Tjekliste","CLEAR LINKS":"Ryd links","CLEAR MARKERS":"Ryd markører","CLEAR_EVERYTHING":"Ryd portaler/links/markører for aktuel OP","CLEAROPS BUTTON TITLE":"Ryd Data","CLEAROPS BUTTON":"Ryd Data","CLEAROPS PROMPT":"Ryd alle lokale OPS. Ops vil blive gendannet ved næste download.","CLOSE":"Luk","COMMENT":"Kommentar","COMPLETED BY":"Færdiggjort af {agentName}","completed":"Færdiggjort","CON_DEL":"Bekræft sletning: {opName}","COUNT":"Optælling","CREATE_NEW_TEAM":"Opret nyt team","CreateLinkAlert":"Link","CUR_USER_INFO":"Aktuelle brugeroplysninger","D_SHOW_LIST":"Input defensive nøgler","DEFAULT OP NAME":"Ny Op: {date}","DELETE ANCHOR PROMPT":"Ønsker du at slette dette anker og alle tilhørende links:","DELETE ANCHOR TITLE":"Slet anker","DELETE MARKER PROMPT":"Vil du slette denne markør:","DELETE MARKER TITLE":"Slet markør","DELETE_ANCHOR":"Slet","DELETE_LINK":"Slet","DELETE_OP":"Slet {opName}","DESCRIP_PLACEHOLD":"Beskrivelse (valgfri)","DestroyPortalAlert":"Ødelæg/Skyd","dialog.about.download_mobile_app":"

Wasabee App:

","dialog.agent_comment.text":"Comment:","dialog.agent_comment.title":"Set comment for {agentName}","dialog.auth.ott.button":"One Time Token Login","dialog.auth.ott.text":"Get a token from the Wasabee Server, then paste it here","dialog.auth.ott.title":"One Time Token","dialog.blockers.clear_automark":"Clear Automark","dialog.clear_all.text":"Do you want to reset {opName}?","dialog.clear_all.title":"Clear: {opName}","dialog.clear_links.text":"Do you want to remove all links from {opName}?","dialog.clear_links.title":"Clear Links: {opName}","dialog.clear_markers.text":"Do you want to remove all markers from {opName}?","dialog.clear_markers.title":"Clear Markers: {opName}","dialog.checklist.count_fields":"Count fields","dialog.checklist.count_fields.no_empty":"Found {fieldCount} fields and no empty field","dialog.checklist.count_fields.with_empty":"Found {fieldCount} fields and {emptyCount} empty field(s) on {linkCount} link(s)","dialog.checklist.count_fields.link_from_inside":"Found {count} links from covered portals","dialog.checklist.count_fields.link_from_inside.covered_at_order":" at {order} by link ","dialog.common.color":"Color","dialog.common.commands":"Commands","dialog.common.commands_short":"Cmds","dialog.common.delete":"Delete","dialog.common.links":"Links","dialog.common.markers":"Markers","dialog.common.name":"Name","dialog.common.off":"Off","dialog.common.on":"On","dialog.common.owner":"Owner","dialog.common.zone_all":"All","dialog.filter.actions.description":"Apply a change to all visible tasks","dialog.filter.actions.delete_visible":"Delete","dialog.filter.actions.delete_hidden":"Delete all other tasks","dialog.filter.actions.shift.label":"Offset","dialog.filter.actions.shift.button":"Shift","dialog.filter.actions.title":"Actions","dialog.filter.filters.apply":"Apply filters","dialog.filter.filters.description":"Select the properties to filter the tasks you want to see&change.","dialog.filter.filters.field.task":"Task","dialog.filter.filters.field.min_order":"Min order","dialog.filter.filters.field.max_order":"Max order","dialog.filter.filters.title":"Filters","dialog.filter.title":"Filters&Actions","dialog.firebase.setup":"Visit {url} and press the button to authorize live updates. You will need to reload IITC afterward.","dialog.import.url":"Fill from URL","dialog.import.success_message":"Import fuldført. Fandt {count} portaler og brugte {faked} forfalskede. Brug venligst swap-funktionen til at flytte forfalskede portaler til de rigtige portaler på samme sted. Zoom ind på \'Indlæser\' portaler i tjeklisten kan tvinge dem til at indlæse.","dialog.keys.update_error":"Portal not in op yet, please sync to server first","dialog.leave_team.text":"If you leave {teamName} you cannot rejoin unless the owner re-adds you.","dialog.leave_team.title":"Leave: {teamName}","dialog.link_list.length":"Length","dialog.link_list.level":"Min Lvl","dialog.link_list.all_from":"Set all outbound","dialog.link_list.all_to":"Set all inbound","dialog.conflict.cancel_upload":"Cancel upload","dialog.conflict.conflicts":"Conflicts:","dialog.conflict.local":"Local copy","dialog.conflict.server":"Server copy","dialog.conflict.zone":"Zone: {name}","dialog.conflict.prop.assignedTo":"Assign:","dialog.conflict.prop.comment":"Comment:","dialog.conflict.prop.color":"Color:","dialog.conflict.prop.deltaminutes":"Delta:","dialog.conflict.prop.fromPortal":"From:","dialog.conflict.prop.hardness":"Hard:","dialog.conflict.prop.order":"Order:","dialog.conflict.prop.state":"State:","dialog.conflict.prop.toPortal":"To:","dialog.conflict.prop.zone":"Zone:","dialog.conflict.prop.zone_points":"Shape has changed","dialog.online_agents.actions":"Actions","dialog.online_agents.last_seen":"Last Seen","dialog.online_agents.title":"Online Agents","dialog.op_settings.advanced":"Advanced","dialog.op_settings.import.desc":"Import links/markers/zones from another OP","dialog.op_settings.import.collision_default":"In case of conflicts, use imported links/markers","dialog.op_settings.import.select_op":"Select OP","dialog.op_settings.import.select_color":"OP link color","dialog.op_settings.import.button":"Import","dialog.op_settings.setting":"Settings","dialog.op_settings.zones":"Zones","dialog.ops_list.background_disable":"Disable background","dialog.ops_list.background_enable":"Show in background","dialog.ops_list.download":"Download {opName}","dialog.ops_list.last_fetched":"Last fetched: {date}","dialog.ops_list.local_change":"Local has changed","dialog.ops_list.remote_change":"Remote has changed","dialog.ops_list.toggle_hide":"Toggle Show/Hide","dialog.ops_list.unhide_ops":"Unhide all OPs","dialog.remove_agent.text":"Do you want to remove {agentName} from {teamName}?","dialog.remove_agent.title":"Remove: {agentName}","dialog.setcomment.portal_hardness":"Sværhedsgrad","dialog.settings.disable_live_updates":"Disable live updates","dialog.settings.populate_opportals":"Populate map with op portals","dialog.team_list.load_wd_keys":"Load W-D Keys","dialog.team_list.share_wd_keys":"Share W-D Keys","dialog.team_manage.join_link":"Join Link","dialog.team_manage.join_link.create":"Create","dialog.team_manage.join_link.revoke":"Revoke","dialog.team_members.location":"Sharing Location","dialog.team_members.wd_keys":"Sharing W-D Keys","dialog.team_message":"Team announcement: “{message}” from {sender}","dialog.update_warning":"Wasabee is out of date. Please update using your plugin manager or by going to https://wasabee.rocks","dialog.zone_color.title":"Zone Color","dialog.zone_color.text":"Set the color of all links in zone {zoneName}","dialog.zones.color":"Color","dialog.zones.color_links":"Color links","dialog.zones.delete.title":"Delete zone {zoneName}","dialog.zones.delete.text":"Do you want to delete zone “{zoneName}” ?","dialog.zones.delete_zone_shape":"Reset the shape","dialog.zones.draw_zone_shape":"Draw the boundaries","dialog.zones.id":"ID","dialog.zones.jump_to":"Jump to zone","dialog.zones.stop_drawing":"Stop drawing","dialog.zones.title":"Zones","DRAW TOOLS FORMAT":"Draw Tools Format","DUPE_OP":"Duplikere Operation","END_PORT":"Slut Portal ","ExcludeMarker":"Udelad fra Auto-Tegn/Marker","EXPORT OP TITLE":"Eksporter aktuel Op","EXPORT OP":"Eksporter Op","EXPORT":"Eksporter:","FAKED":"forfalsket: [{portalId}]","FANFIELD":"Tegn","FANFIELD2":"Tegn Fan Field","FarmPortalMarker":"Farm","FLIP_FLOP_NAME":"Flip flop","FLIP_FLOP_TITLE":"Flip flop","FLIP_FLOP_DESC":"Fra et givet anker, et sæt synlige portaler og et antal SBUL, find et fanefelt til at smide links fra anker ved at mindske afstanden for at undgå at søge nøgler.","FLIP_FLOP_INSTRUCTION":"Vælg en portal, zoom for at se nok portaler og tryk på Tegn. Når et fanfelt er fundet, du kan søge efter andre ankre for gentagne linkninger","FLIP_FLOP_FIND_ANCHORS":"Find andre ankre","FROM_1-2":"fra basislinie 1-2","FROM_1-3":"fra basislinie 1-3","FROM_2-3":"fra basislinie 2-3","FROM_DEPTH":"fra center","FROM_PORT":"Fra Portal","GET DT":"Få eksisterende DrawTools-tegning","GetKeyPortalMarker":"Hent nøgler","GotoPortalMarker":"Gå Til","H-GEN_INST":"Sæt portaler til det ydre lag. Vælg antal opdelinger. Klik på tegn","HF_DEEP_SEARCH":"Omfattende søgning","HF_DRAW_BUTTON":"Tegn","HF_REDRAW_BUTTON":"Gentegn","HG":"Homogent felt","HOURS":" ({hours} timer siden)","HOW_TO_VIDS":"

Sådan-gør-du videoer:

","IMP_NOPE":"Import mislykkedes.","IMP_WAS_OP":"Importer Wasabee Operation","IMPORT_OP_SUCCESS":"Importeret Operation: {opName} lykkedes.","IMPORT_OP_TITLE":"Importer Op: {date}","IMPORT_OP":"Importer Operation","IMPOSSIBLE":"Umulig","INGNAME_GID":"Ingress navn eller GoogleID","INPUT_DT_KEY_COUNT":"Input antal defensiv nøgler","INVALID REQUEST":"Ugyldig forespørgsel","IOS NEED FAKE UA":"Du skal indstille en \'Custom UserAgent for Webviews\' i IITC-Mobile-indstillingerne, ellers mislykkes login","KEY_LIST2":"Nøgleliste til Operationen: {opName}","KEYS":"Nøgler","KNOWN_BLOCK":"Kendte blokkere: {opName}","LA DESC":"Afhængigt af antallet og typen af ​​anvendte Link Amps, kan et lavere kildeportal level være tilstrækkeligt.","LA":"L8+ nogle LA","LANG":"Sprog","LEAVE":"Forlad","LetDecayPortalAlert":"Lad forfalde","LINK ASSIGNMENT":"Tildel link til:","LINK STATE PROMPT":"Link tilstand","LINK STATE":"Angiv link-status:","LINKS BUTTON TITLE":"Links","LINKS":"Links","LINKS2":"{portalName} : Links ({outgoing}↑/{incoming}↓)","LOAD PORTALS":"Load Portaler","LOADING":"[loader]","LOADING1":"Loader: [{portalGuid}]","LOC_PROC":"Beliggenhed behandlet","LOCATION SUB":"Lokation registreret","LOCFRMSER":" (lokalt og fra server)","LOG IN":"Log Ind","LOG_OUT":"Log Ud","MADRID_SET_1":"Vælg regionen for basislinket Anker 2 til Anker 3","MADRID_SET_2":"Vælg regionen for basislinket Anker 3 til Anker 1","MADRID_SET_3":"Vælg regionen for basislinket Anker 1 til Anker 2","MADRID_TITLE":"Madrid Protokol","MADRID_WAS_TAKEN":"Madrid Protocol","MADRID":"Tegn","MANAGE_TEAM":"Administrer {teamName}","MANAGE":"Administrer","MARKER ASSIGNMENT":"Tildel markør til:","MARKER LIST TITLE":"Markør Liste","MARKER LIST":"Markører","MARKER STATE PROMPT":"Markør Status","MARKER STATE":"Angiv markørtilstand:","MARKER_LIST":"Markør Liste: {opName}","MARKERS BUTTON TITLE":"Markører","MAX_SPLITS":"Max Delinger","MAX":"Fane Felt","MeetAgentPortalMarker":"Mød Agent","MERGE ON UPDATE":"Flet ved opdatering","MERGE_CHANGES_LOCAL":"Lokale ændringer","MERGE_CHANGES_MERGE":"Flet resultat","MERGE_CHANGES_REMOTE":"Fjernændringer","MERGE_LOCAL":"Behold lokale","MERGE_MESSAGE":"Det ser ud til, at {opName} har lokale ændringer. Vil du flette dine ændringer med server-OP\'en, bruge serverversionen eller beholde den lokale version?","MERGE_REBASE":"Flet","MERGE_REPLACE":"Brug server","MERGE_TITLE":"Flet lokal&fjern OP","MIN_SRC_PORT_LVL":"Minimums level påkrævet på kildeportalen","MINUTES":" ({minutes} minutter siden)","MM":"Multimaks","MM_BOTH_SIDE":"Brug begge base sider","MM_INSERT_ORDER":"Indsæt i slutningen","MM_SET_ALL_PORTALS":"Alle synlige portaler","MM_SET_ALL_KEYS":"Alle GetKey-Markører","MM_SET_KEYS_ZONE":"GetKey: {zoneName}","MM_SPINE":"Rygrad","MULTI_M_TITLE":"Tegn Max Lag","MULTI_M":"Tegn","MUST_NOT_BE_EMPTY":"Må ikke være tom","MY_CAP_ID":"Mit kapsel ID","MY_COUNT":"Mit Antal","NAME_REQ":"Navn påkrævet","NAME":"Navn:","NEW_OP":"Ny operation","NEW_TEAM_NAME":"Nyt holdnavn","NEW_TEAM":"Nyt hold","NEW_WAS_SERVER":"Ny Wasabee Server","NEWOP BUTTON TITLE":"Opret en ny operation","NEWOP BUTTON":"Ny Op","NO_DT_ITEMS":"Ingen DrawTools tegnede elementer fundet","NO_LABEL":"Ingen etiket sat","NO_STOCK_INTEL":"Wasabee understøtter ikke stock intel tegninger","NO_TITLE":"Ingen titel angivet","NO LONGER AVAILABLE":"Ressource fjernet fra serveren: {error}","NO LONGER AVAILABLE SHORT":"Ressource fjernet fra serveren","NOT LOGGED IN SHORT":"Ikke logget ind","NOT LOGGED IN":"Ikke logget ind: {error}","NOT_LOADED":"Ikke fuldt indlæst, prøv igen.","NOT_SET":"ikke indstillet","NTNAME":"Navn","OK":"OK","ON_HAND":"Har Allerede","ONION_WAS_TAKEN":"Onion/løg","ONION":"Tegn","ONLY_DT_IMP":" (kun for DrawTools-import)","OP DELETED":"Operationen fjernet fra serveren: {opID}","OP PERM DENIED":"Tilladelse nægtet til operationen: {opID}","OP_CHECKLIST":"Operation Tjekliste: {opName}","OP_NAME_UNSET":"Operationsnavn blev deaktiveret","OP_PERMS":"Op Tilladelser","OP_SETTINGS_BUTTON":"Op Indstillinger ⚙","OP_SETTINGS_TITLE":"Op Indstillinger","OPEN_REQUEST":"[åbn anmodning]","OPER_COLOR":"Operation Farve:","OPER_NAME":"Operation Navn:","OPERATIONS":"Operationer","OPS BUTTON TITLE":"Operations Liste","OPS BUTTON":"Vælg OP","ORDER":"Sorter","OtherPortalAlert":"Andet","PASTE_INSTRUCT":"Indsæt en Wasabee draw-eksport her.\\n\\nWasabee kan ikke importere stock intel-formatet.\\n\\nDer er eksperimentel understøttelse af import af IITC DrawTools-formatet.\\n\\nFør du importerer DrawTools-formatet, skal du forhåndsvise områderne og sørge for, at alle portalerne indlæses så IITC har dem cachelagret. Alle portaler, der ikke er pre-cached, vil blive forfalsket.\\n\\nDu bliver nødt til at bruge \'swap\'-funktionen til at flytte ankre fra de falske portaler til de rigtige portaler (de bør være på den korrekte placering, bare ikke forbundet med portal.\\n\\nCachede portaler er muligvis ikke korrekt navngivet.","pending":"Afventer","PERM DENIED":"Tilladelse nægtet: {error}","PERM DENIED SHORT":"Tilladelse nægtet","PERMS":"{opName} tilladelser","PLEASE_SELECT_PORTAL":"Vælg venligst en portal","popup.anchor.duplicate":"Duplicate","popup.anchor.keys":"Keys: {onHand} / {required}","popup.anchor.keys_mycount":"Me: {myCount} / {required}","popup.marker.state_button":"Set State","PORTAL KEY LIST":"Nøgleliste for portal {portalName}","PORTAL_COUNT":"{count} portaler","PORTAL":"Portal","QD BUTTON CHANGE COLOR":"Klik for at ændre farve på næste link","QD BUTTON END":"Klik for at stoppe med at tegne felter","QD BUTTON TOGGLE MODE":"Klik for at ændre tegnetilstand","QD CHANGE COLOR":"Skift farve","QD END":"Slut","QD TITLE":"Hurtig tegn lag","QD TOGGLE MODE":"Skift tilstand","QDBASE":"Base Link","QDCONT":"Klik på en baglinieportal for at tegne et felt.","QDNEXT":"Klik på den anden ankerportal.","QDSTART":"Klik på den første ankerportal.","READ_SHORT":"L","READ":"Læs","RechargePortalAlert":"Genoplad","REFERENCE_TIME":"Referencetid:","REM_LOC_CP":"Fjern lokal kopi af {opName}","REMOVE_TEAM_CONFIRM_LABEL":"Vil du permanent fjerne {team Name} fra Wasabi-serveren?","REMOVE_TEAM_CONFIRM_TITLE":"Fjern hold {teamName}","REMOVE_TEAM":"Fjern hold:","REMOVE":"Fjern","RENAME_TEAM":"Omdøb hold:","RENAME":"Omdøb","REQUIRED":"Påkrævet","RESET":"Nulstil","REVERSE":"Endevend","ROCKS_COM":"enl.rocks fællesskab:","ROLE":"Rolle","SAVELINKS TITLE":"Gem Links","SAVELINKS_DRAW":"Gem Links","SAVELINKS":"Gem Links","SECONDS":" ({seconds} sekunder siden)","SEL_SB_ANCHOR":"Vælg ankerportal.","SEL_SB_ANCHOR2":"Zoom ud. Sørg for, at alle portaler er indlæst, og klik derefter på Tegn.","SEL_SL_ANCHOR":"Vælg den portal, du vil gemme links til. Klik på knappen Gem links og se på tjeklisten.","SEL_SRC_ANC2":"Vælg både Kilde og Anker 2","SEL_SRC_PORT":"Vælg en kildeportal","SELECT PORTAL":"Vælg venligst en portal først","SELECT_FAN_PORTALS":"Vælg en ankerportal, en startportal og en slutportal, og fokuser over markområdet.","SELECT_FAN_PORTALS2":"Vent på, at alle portaler er indlæst, og klik derefter på tegn.","SELECT_INSTRUCTIONS":"Vælg to ankerportaler, og zoom derefter over rygsøjlen.","SELECT_ONION_PORTALS":"Lag bygges indefra og ud. Zoom ind til midten, og vælg startportal, og zoom derefter ud til området.","SELF SWAP":"Kan ikke bytte en portal med sig selv! Vælg en anden portal.","SEND ANALYTICS":"Send anonyme analysedata","SEND LOCATION":"Share Location (only when IITC is in foreground)","SEND TARGET AGENT":"Vælg modtager agent","SEND TARGET CONFIRM":"Vil du sende {portalName}-målet til {agent}?","SEND TARGET":"Send mål","SEND_LOC":"Send placering","SET_3_PORT":"Indstil venligst de tre portaler først!","SET_COMMENT":"Indstil kommentar","SET_LCOMMENT":"Indstil linkkommentar","SET_LINK_COMMENT":"Indstil kommentar til link:","SET_LINKS_ZONES":"Sæt links til zoner","SET_MARKER_COMMENT":"Sæt kommentar til markør på:","SET_MARKER_TYPE_TITLE":"Skift markørtype","SET_MARKERS_ZONES":"Indstil markører til zoner","SET_MCOMMENT":"Indstil markørkommentar: {portalName}","SET_NEW_OP":"Indstil venligst det nye operationsnavn","SET_PCOMMENT":"Indstil portalkommentar: {portalName}","SET_PORT_COMMENT":"Indstil kommentar til portal:","SET_PORTAL_COMMENT":"Indstil portalkommentar","SET":"indstil","SETTINGS_TOOLBOX":"Wasabee Settings","SETTINGS_TITLE":"Advanced Settings","SKINS_AVAILABLE":"Der er {count} tilgængelige skins.","SKINS_BUTTON":"Konfigurer skins","SKINS_DESCRIPTION":"Tilgængelige skin packs er placeret i højre kolonner. Flyt skins, du ønsker at bruge, til venstre kolonne.","SKINS_MANAGE_TITLE":"Administrer skins","SKIP_CONFIRM_ALWAYS":"Spørg aldrig (brug med forsigtighed)","SKIP_CONFIRM_ENTITY":"Spørg kun for hold/op","SKIP_CONFIRM_NEVER":"Spørg altid","SKIP_CONFIRM":"Spring bekræftelse over","SOURCE_PORT":"Kildeportal","STARBURST TITLE":"Starburst","STARBURST_DRAW":"Tegn","STARBURST":"Starburst","START_PORT":"Start Portal ","STATE":"Status","SUPPORT_INSTRUCT":"For at få support, tilmeld dig Wasabee bruger Telegram kanal","SWAP PROMPT":"Vil du bytte:","SWAP TITLE":"Byt portaler","SWAP WITH":" med ","SWAP":"Byt","swap.marker.title":"Swap marker","swap.marker.prompt":"Do you want to swap the marker:","SYNC DONE":"Download Komplet
Klik HER for tips, tips og dokumentation.","SYNC":"Download tilgængelige operationer","TARGET SENT":"Mål sendt","TEAM STATE":"Del placering","TEAM_CREATED":"Hold {teamName} oprettet","TEAM_NAME":"Hold navn","TEAM":"Hold","TEAMS BUTTON TITLE":"Liste over Wasabee-holdene","TEAMS BUTTON":"Hold","TO_PORT":"Til Portal","toolbar.op.filter":"Filters","toolbar.op.redo":"Redo","toolbar.op.title":"Op: {opName}","toolbar.op.undo":"Undo","toolbar.quick_delete.apply.text":"Anvend","toolbar.quick_delete.apply.title":"Slet valgte links/markører","toolbar.quick_delete.cancel.text":"Annuller","toolbar.quick_delete.cancel.title":"Annuller","toolbar.quick_delete.clear.text":"Clear all","toolbar.quick_delete.clear.title":"Clear all links and markers","toolbar.quick_delete.stop.text":"Stop","toolbar.quick_delete.stop.title":"Afslut slettetilstand","toolbar.quick_delete.title":"Hurtigt slet","toolbar.quick_delete.tooltip.toggle_mode":"Click on features to mark for deletion","toolbar.quick_delete.tooltip.quick_mode":"Click on features to delete instantly","toolbar.quick_draw.tooltip.star_mode.anchor":"Vælg stjerneanker","toolbar.quick_draw.tooltip.star_mode.portal":"Vælg en portal","toolbar.quick_draw.tooltip.single_mode.first":"Klik på den første portal","toolbar.quick_draw.tooltip.single_mode.next":"Klik på den næste portal","toolbar.quick_draw.tooltip.portal_fail":"Portaldata ikke indlæst, prøv venligst igen","toolbar.quick_draw.tooltip.burst.portal":"Select a portal","toolbar.quick_draw.toggle.text":"Mode: {mode}","toolbar.quick_draw.mode.burst":"Burst","toolbar.quick_draw.mode.multilayer":"Multilayer","toolbar.quick_draw.mode.singlelink":"Simple Path","toolbar.quick_draw.mode.starburst":"Star","toolbar.wasabee.settings":"Settings","toolbox.teammates":"Teammates Online","TRAWL SKIP TILES":"Trawl Skip fliser","TRAWL TITLE":"Trawl baner","TRAWL WARNING":"Dette vil indlæse flisedataene under alle tegnede links. Dette er en langsom proces.","TRAWL_AUTOMARK":"Automærke blokere efter trawl","TRAWL_BULK_LOAD_WARNING":"Denne metode indlæser flisedataene så hurtigt som muligt. Brug på eget ansvar.","TRAWL_BULK_LOAD":"Masseindlæsning af flisedata","TRAWL_CLEAR_MARKERS":"Ryd virus/ødelæggelsesmarkører før trawl","TRAWL_REMAINING":"{count} fliser tilbage","TRAWL":"Trawl efter blokere","TRAWLING":"Når du trawler banerne efter blokeringer, luk denne dialog for at stoppe","TYPE":"Type","UNASSIGNED":"Ikke tildelt","UNKNOWN":"Ukendt","UPDATE HOVER":"OPDATER {opName} på serveren","UPDATE PERM DENIED":"Du har ikke rettigheder til at opdatere","UPDATE_CONFLICT_DESC":"OP er blevet ændret på serveren siden sidste synkronisering. Ønsker du at erstatte serverversionen med den nuværende?","UPDATE_CONFLICT_TITLE":"Konflikt opdaget med server","UPDATE_COUNT":"Opdater optælling","UPDATED":"Opdateret","UpgradePortalAlert":"Upgrader","UPLOAD BUTTON HOVER":"UPLOAD {opName} (ikke på serveren i øjeblikket)","UPLOADED":"Uploadet","USE PANES ON MOBILE":"Brug rammer (skal genindlæses)","USE_VALID_NAME":"Brug venligst et gyldigt operationsnavn","UseVirusPortalAlert":"Brug Virus","VRLA DESC":"Afhængigt af antallet og typen af anvendte linkforstærkere kan et lavere kildeportal level være tilstrækkeligt.","VRLA":"L8+nogle VRLA","WASABEE BUTTON TITLE":"Wasabee: den er grøn og får smølfer til at græde.","WASABEE_D_LIST":"Input antal forsvarsnøgler","WD BUTTON TITLE":"Log forsvarsnøgler","WD BUTTON":"W-D Nøgler","WRITE_SHORT":"S","WRITE":"Skrive","WSERVER":"Server: {url}","YESNO_DEL":"Er du sikker på, at du vil slette {opName}?","ZONE_DRAW":"Klik for at indstille zonegrænserne","ZONE":"Zone","smallScreen":{"ADD_LINKS":"+ Links","ADD_MARKER":"+ Markør"}}')},_={main:t(),autodraws:n(),toolbar:r(),map:l(),panes:d(),smallScreen:p(),iitcfix:h()},w={SELECTED_OP_KEY:"wasabee-selected-op",OPS_LIST_KEY:"wasabee-ops",OPS_LIST_HIDDEN_KEY:"wasabee-hidden-ops",OPS_SHOW_HIDDEN_OPS:"wasabee-show-hidden-ops",SEND_LOCATION_KEY:"wasabee-send-location",SEND_ANALYTICS_KEY:"wasabee-analytics",EXPERT_MODE_KEY:"wasabee-expert-mode",LANGUAGE_KEY:"wasabee-language",DEFAULT_LANGUAGE:"English",AGENT_INFO_KEY:"wasabee-me",LINK_SOURCE_KEY:"wasabee-link-source",ANCHOR_ONE_KEY:"wasabee-anchor-1",ANCHOR_TWO_KEY:"wasabee-anchor-2",ANCHOR_THREE_KEY:"wasabee-anchor-3",PORTAL_DETAIL_RATE_KEY:"wasabee-portaldetail-rate",SKIN_KEY:"wasabee-skin",LAST_MARKER_KEY:"wasabee-last-marker-type",AUTO_LOAD_FAKED:"wasabee-autoload-faked",TRAWL_SKIP_STEPS:"wasabee-trawl-skip",USE_PANES:"wasabee-use-panes",SKIP_CONFIRM:"wasabee-skip-confirm",OAUTH_CLIENT_ID:"269534461245-b767slmcrhllpns01u7omue0n5l3mva0.apps.googleusercontent.com",SERVER_BASE_KEY:"wasabee-server",SERVER_BASE_DEFAULT:"https://am.wasabee.rocks",REBASE_UPDATE_KEY:"wasabee-rebase-on-update",DEFAULT_MARKER_TYPE:"DestroyPortalAlert",QUICKDRAW_GUIDE_STYLE:{color:"#0f0",dashArray:[8,2],opacity:.7,weight:5,smoothFactor:1,interactive:!1},WEBUI_DEFAULT:"https://webui.wasabee.rocks",JOIN_TEAM_TEMPLATE:"https://webui.wasabee.rocks/?server={server}#/team/{teamid}/join/{token}",FIREBASE_IFRAME:"https://cdn2.wasabee.rocks/iitcplugin/firebase/",FIREBASE_DISABLE:"wasabee-firebase",UNDO_HISTORY_SIZE:100,POPULATE_OPPORTALS:"wasabee-populate-opportals"},T=f(),b={CSS:_,dialogNames:{linkDialogButton:"wasabee-addlinks",markerButton:"wasabee-marker",mustauth:"wasabee-mustauth",newopButton:"wasabee-newop",opsList:"wasabee-operations",opSettings:"wasabee-operation-settings",wasabeeButton:"wasabee-userinfo",linkList:"wasabee-linklist",markerList:"wasabee-markerlist",assign:"wasabee-assign",state:"wasabee-state",multimaxButton:"wasabee-multimax",importDialog:"wasabee-import",operationChecklist:"wasabee-operation-checklist",blockerList:"wasabee-blockerlist",exportDialog:"wasabee-export",keysList:"wasabee-keys",keyListPortal:"wasabee-keyByPortal",wasabeeDKeyButton:"wasabee-DKey",wasabeeDList:"wasabee-DList",madrid:"wasabee-madrid",autodraws:"wasabee-autodraws",starburst:"wasabee-starburst",savelinks:"wasabee-savelinks",settings:"wasabee-settings",fanfield:"wasabee-fanfield",skinDialog:"wasabee-settings-skins",setComment:"wasabee-comment",trawl:"wasabee-trawl",manageTeam:"wasabee-manageteam"},constants:w,publicServers:[{name:"Americas",url:"https://am.wasabee.rocks",short:"🇺🇸"},{name:"Europe",url:"https://eu.wasabee.rocks",short:"🇪🇺"},{name:"Asia/Pacific",url:"https://ap.wasabee.rocks",short:"AP"}],strings:E,defaultOperationColor:"orange",linkStyle:{dashArray:[5,5,1,5],assignedDashArray:[4,2,1],opacity:1,weight:2},selfBlockStyle:{color:"#ff1111",dashArray:[1,5],opacity:4,weight:3},backgroundLinkStyle:{dashArray:[8,5],opacity:.4,weight:2,color:"green",interactive:!1},anchorTemplate:T};let A,k;const S=new WeakMap,v=new WeakMap,O=new WeakMap,D=new WeakMap,N=new WeakMap;let C={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return v.get(e);if("objectStoreNames"===t)return e.objectStoreNames||O.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return R(e[t])},set:(e,t,a)=>(e[t]=a,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function y(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(k||(k=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(I(this),e),R(S.get(this))}:function(...e){return R(t.apply(I(this),e))}:function(e,...a){const o=t.call(I(this),e,...a);return O.set(o,e.sort?e.sort():[e]),R(o)}:(e instanceof IDBTransaction&&function(e){if(v.has(e))return;const t=new Promise(((t,a)=>{const o=()=>{e.removeEventListener("complete",n),e.removeEventListener("error",i),e.removeEventListener("abort",i)},n=()=>{t(),o()},i=()=>{a(e.error||new DOMException("AbortError","AbortError")),o()};e.addEventListener("complete",n),e.addEventListener("error",i),e.addEventListener("abort",i)}));v.set(e,t)}(e),a=e,(A||(A=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>a instanceof e))?new Proxy(e,C):e);var t,a}function R(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,a)=>{const o=()=>{e.removeEventListener("success",n),e.removeEventListener("error",i)},n=()=>{t(R(e.result)),o()},i=()=>{a(e.error),o()};e.addEventListener("success",n),e.addEventListener("error",i)}));return t.then((t=>{t instanceof IDBCursor&&S.set(t,e)})).catch((()=>{})),N.set(t,e),t}(e);if(D.has(e))return D.get(e);const t=y(e);return t!==e&&(D.set(e,t),N.set(t,e)),t}const I=e=>N.get(e),M=["get","getKey","getAll","getAllKeys","count"],P=["put","add","delete","clear"],x=new Map;function U(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(x.get(t))return x.get(t);const a=t.replace(/FromIndex$/,""),o=t!==a,n=P.includes(a);if(!(a in(o?IDBIndex:IDBObjectStore).prototype)||!n&&!M.includes(a))return;const i=async function(e,...t){const i=this.transaction(e,n?"readwrite":"readonly");let r=i.store;return o&&(r=r.index(t.shift())),(await Promise.all([r[a](...t),n&&i.done]))[0]};return x.set(t,i),i}var B;B=C,C={...B,get:(e,t,a)=>U(e,t)||B.get(e,t,a),has:(e,t)=>!!U(e,t)||B.has(e,t)};const K=function(e,t,{blocked:a,upgrade:o,blocking:n,terminated:i}={}){const r=indexedDB.open(e,t),s=R(r);return o&&r.addEventListener("upgradeneeded",(e=>{o(R(r.result),e.oldVersion,e.newVersion,R(r.transaction))})),a&&r.addEventListener("blocked",(()=>a())),s.then((e=>{i&&e.addEventListener("close",(()=>i())),n&&e.addEventListener("versionchange",(()=>n()))})).catch((()=>{})),s}("wasabee",3,{upgrade(e,t,a,o){if(t<1){const t=e.createObjectStore("agents",{keyPath:"id"});t.createIndex("date","date"),t.createIndex("fetched","fetched"),e.createObjectStore("teams",{keyPath:"id"}).createIndex("fetched","fetched");const a=e.createObjectStore("defensivekeys",{keyPath:["GID","PortalID"]});a.createIndex("PortalID","PortalID"),a.createIndex("Count","Count")}if(t<2){const t=e.createObjectStore("operations",{keyPath:"ID"});t.createIndex("fetched","fetched"),t.createIndex("server","server")}if(t<3){const t=e.createObjectStore("blockers",{keyPath:["opID","from","to"]});t.createIndex("opID","opID",{unique:!1}),t.createIndex("from",["opID","from"],{unique:!1}),t.createIndex("to",["opID","to"],{unique:!1}),e.createObjectStore("blockers_portals",{keyPath:["opID","id"]}).createIndex("opID","opID",{unique:!1})}console.debug(a,o)}});const G=K;class H{constructor(e){if("string"==typeof e)return console.trace("agent waits for an object"),null;var t;("shareWD"in e||"squad"in e)&&(t=e,e={...t,shareWDKeys:t.shareWD,loadWDKeys:t.loadWD,shareLocation:t.state,comment:t.squad}),this.id=e.id,this.name=e.name,this.intelname="unset"!==e.intelname?e.intelname:"",this.intelfaction=e.intelfaction,this.communityname=e.communityname||"",this.pic=e.pic?e.pic:null,this.lat=e.lat?e.lat:0,this.lng=e.lng?e.lng:0,this.date=e.date?e.date:null,this.enlid=e.enlid?e.enlid:null,this.vname=e.vname,this.Vverified=!!e.Vverified,this.level=e.level?Number(e.level):0,this.blacklisted=!!e.blacklisted,this.rocksname=e.rocksname,this.rocks=!!e.rocks,this.communityname?this.name=this.communityname:this.Vverified?this.name=this.vname||this.name:this.rocks?this.name=this.rocksname||this.name:this.intelname?this.name=this.intelname+" [!]":this.name=this.name||"[unknown name]",e.shareWDKeys&&(this.shareWDKeys=e.shareWDKeys),e.loadWDKeys&&(this.loadWDKeys=e.loadWDKeys),e.shareLocation&&(this.shareLocation=e.shareLocation),e.comment&&(this.comment=e.comment),this.fetched=e.fetched?e.fetched:Date.now(),this._updateCache()}getName(){return this.communityname?this.communityname:this.Vverified&&this.vname?this.vname:this.rocks&&this.rocksname?this.rocksname:this.intelname?this.intelname:this.name}async _updateCache(){const e=await(await G).get("agents",this.id);if(null!=e){if(!(e.fetched>=this.fetched)){Object.assign(e,this),delete e.shareWDKeys,delete e.loadWDKeys,delete e.comment,delete e.shareLocation;try{await(await G).put("agents",e)}catch(e){console.error(e)}}}else try{await(await G).put("agents",this)}catch(e){console.error(e)}}get latLng(){return this.lat&&this.lng?new L.LatLng(this.lat,this.lng):null}static async get(e){return await(await G).get("agents",e)}}class z{constructor(e){this.opID=e.opID,this.from=e.fromPortal.id,this.to=e.toPortal.id}static async addPortal(e,t){const a=(await G).transaction("blockers_portals","readwrite").store,o={opID:e.ID,id:t.id,name:t.name,lat:t.lat,lng:t.lng};if(o.id===o.name){const t=await a.get([e.ID,o.id]);t&&t.name!==t.id&&(o.name=t.name)}await a.put(o)}static async updatePortal(e,t){const a=(await G).transaction("blockers_portals","readwrite").store;if(t.name===t.id)return!1;const o=await a.get([e.ID,t.id]);return!!o&&(o.lat!==t.lat||o.lng!==t.lng?(await z.removeBlocker(e,t.id),!0):o.name!==t.name&&(await a.put({opID:e.ID,id:t.id,name:t.name,lat:t.lat,lng:t.lng}),!0))}static async removeBlocker(e,t){const a=(await G).transaction("blockers","readwrite").store;let o=await a.index("from").openKeyCursor(IDBKeyRange.only([e.ID,t]));for(;o;)a.delete(o.primaryKey),o=await o.continue();let n=await a.index("to").openKeyCursor(IDBKeyRange.only([e.ID,t]));for(;n;)a.delete(n.primaryKey),n=await n.continue();await(await G).delete("blockers_portals",[e.ID,t])}static async removeBlockers(e){const t=(await G).transaction("blockers","readwrite").store;let a=await t.index("opID").openKeyCursor(IDBKeyRange.only(e));for(;a;)t.delete(a.primaryKey),a=await a.continue();const o=(await G).transaction("blockers_portals","readwrite").store;let n=await o.index("opID").openKeyCursor(IDBKeyRange.only(e));for(;n;)o.delete(n.primaryKey),n=await n.continue()}static async addBlocker(e,t,a){const o=new z({opID:e.ID,fromPortal:t,toPortal:a});await(await G).put("blockers",o),await z.addPortal(e,t),await z.addPortal(e,a)}static async getPortals(e){return await(await G).getAllFromIndex("blockers_portals","opID",e.ID)}static async getAll(e){const t=await(await G).getAllFromIndex("blockers","opID",e.ID),a=await z.getPortals(e),o=new Map;for(const e of a)o.set(e.id,e);for(const e of t)e.fromPortal=o.get(e.from),e.toPortal=o.get(e.to);return t}}function F(e=40){const t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,(e=>("0"+e.toString(16)).substr(-2))).join("")}const W=["pending","assigned","acknowledged","completed"];function Y(e){return W.find((t=>t===e))||"pending"}class Z{constructor(e){this.ID=e.ID||F(),this.zone=+e.zone||1,this.order=+e.order||0,this.assignedTo=e.assignedTo?e.assignedTo:null,this.comment=e.comment?e.comment:"",this.state=e._state||e.state,this.deltaminutes=e.deltaminutes,this.dependsOn=e.dependsOn?Array.from(e.dependsOn):[],this.assignments=e.assignments?Array.from(e.assignments):[],!this.assignedTo&&e.assignments&&e.assignments.length>0&&(this.assignedTo=e.assignments[0])}toServer(){return this.toJSON()}toJSON(){return{ID:this.ID,zone:Number(this.zone),order:Number(this.order),assignedTo:this.assignedTo,state:this._state,comment:this.comment,deltaminutes:this.deltaminutes,dependsOn:this.dependsOn}}get state(){return this._state}set state(e){switch(e){case"assigned":case"acknowledged":if(!this.assignedTo||""==this.assignedTo){this._state="pending";break}this._state=e;break;case"completed":this.complete();break;default:this.assignedTo=null,this._state="pending"}}setOrder(e){this.order=0|+e}assign(e){e!==this.assignedTo&&(this._state=e?"assigned":"pending"),this.assignedTo=e||null}complete(e){this._state="completed"}get completed(){return"completed"==this._state}set completed(e){e?this.complete():this.state="assigned"}}class q extends Z{constructor(e){void 0!==e.throwOrderPos&&(e=function(e){return e.order=+e.throwOrderPos||0,e.state="pending",e.completedID=e.completed?e.assignedTo:null,e.completedID?e.state="completed":e.assignedTo&&(e.state="assigned"),e.description&&(e.comment=e.description),e}(e)),super(e),this.fromPortalId=e.fromPortalId,this.toPortalId=e.toPortalId,this.color=e.color?e.color:"main"}toJSON(){return{...super.toJSON(),fromPortalId:this.fromPortalId,toPortalId:this.toPortalId,color:this.color}}get portalId(){return this.fromPortalId}getLatLngs(e){const t=[],a=e.getPortal(this.fromPortalId);if(!a||!a.lat)return console.log("unable to get source portal"),null;t.push(a.latLng);const o=e.getPortal(this.toPortalId);return o&&o.lat?(t.push(o.latLng),t):(console.log("unable to get destination portal"),null)}setColor(e,t){this.color=e,this.color==t.color&&(this.color="main"),t.update()}getColor(e){let t=this.color;return"main"==t&&(t=e.color),t}length(e){const t=this.getLatLngs(e);return L.latLng(t[0]).distanceTo(t[1])}}const V={MARKER_TYPE_CAPTURE:"CapturePortalMarker",MARKER_TYPE_DECAY:"LetDecayPortalAlert",MARKER_TYPE_EXCLUDE:"ExcludeMarker",MARKER_TYPE_DESTROY:"DestroyPortalAlert",MARKER_TYPE_FARM:"FarmPortalMarker",MARKER_TYPE_GOTO:"GotoPortalMarker",MARKER_TYPE_KEY:"GetKeyPortalMarker",MARKER_TYPE_LINK:"CreateLinkAlert",MARKER_TYPE_MEETAGENT:"MeetAgentPortalMarker",MARKER_TYPE_OTHER:"OtherPortalAlert",MARKER_TYPE_RECHARGE:"RechargePortalAlert",MARKER_TYPE_UPGRADE:"UpgradePortalAlert",MARKER_TYPE_VIRUS:"UseVirusPortalAlert"},j=[V.MARKER_TYPE_DECAY,V.MARKER_TYPE_DESTROY,V.MARKER_TYPE_VIRUS],Q=new Set(Object.values(V)),J={CapturePortalMarker:"capture",LetDecayPortalAlert:"decay",ExcludeMarker:"exclude",DestroyPortalAlert:"destroy",FarmPortalMarker:"farm",GotoPortalMarker:"goto",GetKeyPortalMarker:"key",CreateLinkAlert:"link",MeetAgentPortalMarker:"meetagent",OtherPortalAlert:"other",RechargePortalAlert:"recharge",UpgradePortalAlert:"upgrade",UseVirusPortalAlert:"virus"};class X extends Z{constructor(e){super(e),this.portalId=e.portalId,this.type=e.type,this.attributes=e.attributes?Array.from(e.attributes):[]}static get markerTypes(){return Q}static get constants(){return V}toJSON(){return{...super.toJSON(),portalId:this.portalId,type:this.type,attributes:this.attributes}}get friendlyType(){return J[this.type]}isDestructMarker(){return j.includes(this.type)}static isDestructMarkerType(e){return j.includes(e)}}class $ extends H{constructor(e){if("string"==typeof e)return console.trace("me waits for an object"),null;if(e.id=e.GoogleID||e.id,super(e),this.querytoken=e.querytoken,this.pic=e.pic,this.intelfaction=e.intelfaction,this.lockey=e.lockey,this.vapi=e.vapi,this.Teams=[],e.Teams&&e.Teams.length>0)for(const t of e.Teams)t.ShareWD="On"==t.ShareWD||!0===t.ShareWD,t.LoadWD="On"==t.LoadWD||!0===t.LoadWD,t.State="On"==t.State||!0===t.State,this.Teams.push(t);if(this.Ops=[],e.Ops&&e.Ops.length>0)for(const t of e.Ops)this.Ops.push(t);this.fetched=e.fetched?e.fetched:Date.now(),this._teamMap=null}static maxCacheAge(){return Date.now()-864e5}toJSON(){return this}store(){localStorage["wasabee-me"]=JSON.stringify(this)}remove(){delete localStorage["wasabee-me"]}static localGet(){const e=localStorage["wasabee-me"];return"string"==typeof e?new $(JSON.parse(e)):null}static isLoggedIn(){const e=$.localGet();return!!e&&(e.fetched>$.maxCacheAge()||($.purge(),!1))}static cacheGet(){const e=$.localGet();return e?null==e.fetched||e.fetched<$.maxCacheAge()?($.purge(),null):e:null}static async purge(){const e=$.localGet();delete localStorage["wasabee-me"],delete localStorage.sentToServer;const t=(await G).transaction(["agents","teams","defensivekeys"],"readwrite"),a=t.objectStore("agents"),o=t.objectStore("teams"),n=t.objectStore("defensivekeys");await Promise.all([a.clear(),o.clear(),n.clear(),t.done]),window.map.fire("wasabee:logout",{GID:e?e.id:null})}teamJoined(e){return null==this._teamMap&&this.makeTeamMap(),!!this._teamMap.has(e)}makeTeamMap(){this._teamMap=new Map;for(const e of this.Teams)this._teamMap.set(e.ID,e.State)}}class ee{constructor(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return console.error(e),null}this.id=e.id,e.name.includes(e.id)&&(e.name=e.id),this.name=e.name,this.lat=(+e.lat).toFixed(6),this.lng=(+e.lng).toFixed(6),this.comment=e.comment?e.comment:"",this.hardness=e.hardness?e.hardness:"",this._latLng=e._latLng||{lat:+this.lat,lng:+this.lng}}toJSON(){return{id:this.id,name:this.name,lat:this.lat,lng:this.lng,comment:this.comment,hardness:this.hardness}}get latLng(){return this._latLng}static fake(e,t,a,o){return console.assert(e&&t,"WasabeePortal.fake called w/o lat/lng"),a||(a=F()),o||(o=a),new ee({id:a,name:o,lat:e,lng:t})}get faked(){return 35!=this.id.length||this.id==this.name}get loading(){return 35==this.id.length&&this.id==this.name}get pureFaked(){return 35!=this.id.length}}class te{constructor(e){if(this.id=Number(e.id),this.name=e.name,this.color=e.color?e.color:"#00ff00",this.points=[],e.points)for(const t of e.points)this.points.push(new ae(t))}toJSON(){return{id:+this.id,name:`${this.name}`,color:this.color,points:this.points}}contains(e){this.points.sort(((e,t)=>e.position-t.position));let t=!1;const a=e.lat,o=e.lng;for(let e=0,n=this.points.length-1;eo!=l>o&&a<(s-i)*(o-r)/(l-r)+i&&(t=!t)}return t}}class ae{constructor(e){this.position=Number(e.position),this.lat=+e.lat,this.lng=+e.lng}}function oe(){}class ne{constructor(){this._events={}}on(e,t,a){return e in this._events||(this._events[e]=[]),this._events[e].push({fct:t,context:a}),this}off(e,t,a){const o=this._events[e];if(o)for(const e of o)e.fct===t&&e.context===a&&(e.fct=oe,delete e.context);return this}fire(e,t){const a=(this._events[e]||[]).slice();if(a)for(const e of a){const a=e.fct;e.fct=oe;try{a.call(e.context,t)}catch(e){console.error(e)}e.fct=a}return this}}function ie(){if(window.plugin&&window.plugin.wasabee){let e=localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY];return null==e&&(e=window.plugin.wasabee.static.constants.SERVER_BASE_DEFAULT,localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY]=e),e}return""}const re=Math.PI/180,se=180/Math.PI;function le(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function ce(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function de(e,t){return e.lat===t.lat&&e.lng===t.lng}function ue(e){return e._cartesian||(e._cartesian=function(e,t){e*=re,t*=re;const a=Math.cos(e);return[a*Math.cos(t),a*Math.sin(t),Math.sin(e)]}(e.lat,e.lng)),e}function pe(e,t,a){return function(e,t,a){return ce(le(e,t),a)}(ue(e.latLng)._cartesian,ue(t.latLng)._cartesian,ue(a.latLng)._cartesian)>0?1:-1}function me(e,t,a,o){const n=pe(e,t,a);return pe(e,t,o)*n>0&&pe(t,a,o)*n>0&&pe(a,e,o)*n>0}function he(e,t,a){const o=ue(e.latLng)._cartesian,n=ue(t.latLng)._cartesian,i=ue(a.latLng)._cartesian;return function(e){const t=Math.atan2(e[2],Math.sqrt(e[0]*e[0]+e[1]*e[1])),a=Math.atan2(e[1],e[0]),o=L.latLng({lat:t*se,lng:a*se});return o._cartesian=[...e],o}([o[0]+n[0]+i[0],o[1]+n[1]+i[1],o[2]+n[2]+i[2]])}function ge(...e){const[t,a,o,n]=e.flat();if(de(t,a))return!1;if(de(o,n))return!1;if(de(t,o)||de(t,n))return!1;if(de(a,o)||de(a,n))return!1;if(Math.min(t.lng,a.lng)>Math.max(o.lng,n.lng))return!1;if(Math.max(t.lng,a.lng)0||e>0&&t<0)return!0;const a=ce(l,u),o=ce(l,p);if(a<0&&o>0||a>0&&o<0)return!0;const n=ce(i,m),r=ce(i,h);return n<0&&r>0||n>0&&r<0}const f=ce(g,u),E=ce(g,p),_=ce(g,m),w=ce(g,h);return f>0&&0>E&&_>0&&0>w||0>f&&E>0&&0>_&&w>0}class fe{constructor(e,t){const a=Math.PI/180;if(e.lng==t.lng)throw new Error("Error: cannot calculate latitude for meridians");this.lat1=e.lat*a,this.lat2=t.lat*a,this.lng1=e.lng*a,this.lng2=t.lng*a;const o=this.lng1-this.lng2,n=Math.sin(this.lat1),i=Math.sin(this.lat2),r=Math.cos(this.lat1),s=Math.cos(this.lat2);this.sinLat1CosLat2=n*s,this.sinLat2CosLat1=i*r,this.cosLat1CosLat2SinDLng=r*s*Math.sin(o)}isMeridian(){return this.lng1==this.lng2}latAtLng(e){let t;return t=(e=e*Math.PI/180)==this.lng1?this.lat1:e==this.lng2?this.lat2:Math.atan((this.sinLat1CosLat2*Math.sin(e-this.lng2)-this.sinLat2CosLat1*Math.sin(e-this.lng1))/this.cosLat1CosLat2SinDLng),180*t/Math.PI}bearing(){const e=this.lng1-this.lng2,t=Math.cos(this.lat2),a=Math.sin(e)*t,o=this.sinLat2CosLat1-this.sinLat1CosLat2*Math.cos(e);return Math.atan2(a,o)}}let Ee=null;class _e extends ne{constructor(e){if(super(),this._dirtyCoordsTable=!1,this._batchmode=!1,"string"==typeof e)return console.trace("op waits for an object"),null;this.ID=e.ID?e.ID:F(),this.name=e.name?e.name:"unnamed op",this.creator=e.creator?e.creator:"unset",this.anchors=e.anchors?Array.from(e.anchors):[],this.links=this.convertLinksToObjs(e.links),this.markers=this.convertMarkersToObjs(e.markers),this.color=e.color?e.color:"main",this.comment=e.comment?e.comment:null,this.teamlist=e.teamlist?Array.from(e.teamlist):[],this.fetched=e.fetched?e.fetched:null,this.stored=e.stored?e.stored:null,this.localchanged=!!e.localchanged,this.keysonhand=e.keysonhand?e.keysonhand:[],this.zones=this.convertZonesToObjs(e.zones),this.referencetime=e.referencetime?e.referencetime:null,this.lasteditid=e.lasteditid?e.lasteditid:null,this.remoteChanged=!!e.remoteChanged,this.server=this.fetched?e.server:null,this.fetchedOp=e.fetchedOp?e.fetchedOp:null,this.server||delete this.lasteditid,this.background=!!e.background,this.links||(this.links=[]),this.markers||(this.markers=[]);const t=this.convertPortalsToObjs(e.opportals);if(this._idToOpportals=new Map,this._coordsToOpportals=new Map,t)for(const e of t)this._idToOpportals.set(e.id,e);if(this.buildCoordsLookupTable(),e.blockers)for(const t of e.blockers)z.addBlocker(this,this.getPortal(t.fromPortalId),this.getPortal(t.toPortalId));this.cleanAnchorList(),this.cleanPortalList()}static async load(e){try{const t=await(await G).get("operations",e);if(null==t)return null;const a=new _e(t);if(null==a)throw new Error("corrupted operation");return a}catch(e){console.error(e)}return null}static async delete(e){delete localStorage[e],await(await G).delete("operations",e)}static async migrate(e){if(null==await(await G).get("operations",e))try{const t=localStorage[e];if(null==t)throw new Error("invalid operation ID");const a=JSON.parse(t),o=new _e(a);if(null==o)throw new Error("corrupted operation");await o.store(),delete localStorage[e]}catch(e){console.error(e)}else delete localStorage[e]}async store(){this.stored=Date.now();const e=this.toJSON();e.server=this.server,e.fetchedOp=this.fetchedOp,e.lasteditid=this.lasteditid,e.remoteChanged=this.remoteChanged,e.fetched=this.fetched,e.stored=this.stored,e.localchanged=this.localchanged,e.keysonhand=this.keysonhand,e.teamlist=this.teamlist,e.background=this.background;try{await(await G).put("operations",e)}catch(e){console.error(e)}Ee&&Ee.ID===this.ID&&Ee!==this&&console.trace("store current OP from a different obj, this *should* be followed by makeSelectedOperation",Ee.ID,Ee.name,this.ID,this.name)}toJSON(){return{ID:this.ID,name:this.name,creator:this.creator,opportals:Array.from(this._idToOpportals.values()),anchors:this.anchors,links:this.links,markers:this.markers,color:this.color,comment:this.comment,zones:this.zones,referencetime:this.referencetime}}toExport(){const e=new _e(JSON.parse(JSON.stringify(this)));return JSON.stringify(e)}getFetchedOp(){if(!this.fetchedOp)return null;try{const e=JSON.parse(this.fetchedOp);return new _e(e)}catch(e){return console.error("corrupted fetched op",e),null}}get opportals(){return Array.from(this._idToOpportals.values())}buildCoordsLookupTable(){this._coordsToOpportals.clear(),this._dirtyCoordsTable=!1;for(const e of this._idToOpportals.values()){const t=e.lat+"/"+e.lng,a=this._coordsToOpportals.get(t);a?(this._dirtyCoordsTable=!0,a.pureFaked?this._coordsToOpportals.set(t,e):e.pureFaked||console.warn("operation: portals %s and %s have same coordinates: %s",a.id,e.id,t)):this._coordsToOpportals.set(t,e)}if(this._dirtyCoordsTable){console.debug("operation: removing duplicates");const e=[],t=new Map;for(const[a,o]of this._idToOpportals){const n=o.lat+"/"+o.lng,i=this._idToOpportals.get(this._coordsToOpportals.get(n).id);t.set(a,i.id),a!=i.id&&e.push(a)}for(const e of this.links)e.fromPortalId=t.get(e.fromPortalId),e.toPortalId=t.get(e.toPortalId);for(const e of this.markers)e.portalId=t.get(e.portalId);this.anchors=this.anchors.map((e=>t.get(e)));for(const t of e)this._idToOpportals.delete(t)}this._dirtyCoordsTable=!1}getColor(){return null==this.color?"main":this.color}containsPortal(e){return this._idToOpportals.has(e.id)}getPortalByLatLng(e,t){return this._dirtyCoordsTable&&this.buildCoordsLookupTable(),this._coordsToOpportals.get(e+"/"+t)}containsLinkFromTo(e,t){if(0==this.links.length)return!1;for(const a of this.links)if(a.fromPortalId==e&&a.toPortalId==t||a.toPortalId==e&&a.fromPortalId==t)return!0;return!1}containsLink(e){return this.containsLinkFromTo(e.fromPortalId,e.toPortalId)}containsMarker(e,t){return this.containsMarkerByID(e.id,t)}containsMarkerByID(e,t){if(0==this.markers.length)return!1;for(const a of this.markers)if(a.portalId==e&&a.type==t)return!0;return!1}getLinkByPortalIDs(e,t){for(const a of this.links)if(a.fromPortalId==e&&a.toPortalId==t||a.fromPortalId==t&&a.toPortalId==e)return a;return null}getLink(e,t){return this.getLinkByPortalIDs(e.id,t.id)}getLinkById(e){for(const t of this.links)if(t.ID==e)return t;return null}getLinkListFromPortal(e){return this.links.filter((function(t){return t.fromPortalId==e.id||t.toPortalId==e.id}))}getPortal(e){return this._idToOpportals.get(e)}getMarker(e){for(const t of this.markers)if(t.ID==e)return t;return null}removeAnchor(e){this.anchors=this.anchors.filter((function(t){return t!==e})),this.links=this.links.filter((function(t){return t.fromPortalId!==e&&t.toPortalId!==e})),this.cleanAnchorList(),this.cleanPortalList(),this.update(!0),this.updateBlockers()}removeMarkerByID(e){this.markers=this.markers.filter((function(t){return t.ID!==e})),this.cleanPortalList(),this.update(!0),this.updateBlockers()}removeMarker(e){this.removeMarkerByID(e.ID)}setMarkerComment(e,t){for(const a of this.markers)a.ID==e.ID&&(a.comment=t);this.update(!0)}setMarkerState(e,t){for(const a of this.markers)a.ID==e&&(a.state=t);this.update(!0)}setLinkComment(e,t){for(const a of this.links)a.ID==e.ID&&(a.comment=t);this.update(!0)}setLinkState(e,t){for(const a of this.links)a.ID==e&&(a.state=t);this.update(!0)}setLinkColor(e,t){for(const a of this.links)a.ID==e&&(a.color=t);this.update(!0)}setLinkOrder(e,t){for(const a of this.links)a.ID==e&&a.setOrder(t);this.update(!0)}setMarkerOrder(e,t){for(const a of this.markers)a.ID==e&&a.setOrder(t);this.update(!0)}setPortalComment(e,t){const a=this.getPortal(e.id);a&&(a.comment=t,this.update(!0))}setPortalHardness(e,t){const a=this.getPortal(e.id);a&&(a.hardness=t,this.update(!0))}removeLinkByID(e){this.links=this.links.filter((t=>t.ID!=e)),this.cleanAnchorList(),this.cleanPortalList(),this.update(!0),this.updateBlockers()}removeLink(e,t){const a=[];for(const o of this.links)o.fromPortalId==e&&o.toPortalId==t||a.push(o);this.links=a,this.cleanAnchorList(),this.cleanPortalList(),this.update(!0),this.updateBlockers()}reverseLink(e,t){if(e instanceof q){const t=e.fromPortalId;e.fromPortalId=e.toPortalId,e.toPortalId=t}else for(const a of this.links)a.fromPortalId===e&&a.toPortalId===t&&(a.fromPortalId=t,a.toPortalId=e);this.update(!0)}cleanAll(){this.cleanAnchorList(),this.cleanPortalList(),this.cleanCaches()}cleanCaches(){}cleanAnchorList(){const e=[];for(const t of this.links)e.includes(t.fromPortalId)||e.push(t.fromPortalId),e.includes(t.toPortalId)||e.push(t.toPortalId);this.anchors=e}cleanPortalList(){const e=new Map;for(const t of this.links)e.set(t.fromPortalId,this._idToOpportals.get(t.fromPortalId)),e.set(t.toPortalId,this._idToOpportals.get(t.toPortalId));for(const t of this.markers)e.set(t.portalId,this._idToOpportals.get(t.portalId));for(const t of this.anchors)e.set(t,this._idToOpportals.get(t));const t=new Set,a={links:this.links.length,markers:this.markers.length};for(const[a,o]of e)void 0===o&&(this.links=this.links.filter((e=>e.fromPortalId!=a&&e.toPortalId!=a)),this.markers=this.markers.filter((e=>e.portalId!=a)),t.add(a));a.links-=this.links.length,a.markers-=this.markers.length,a.links+a.markers>0&&(console.trace("op corruption: missing portals"),this.fire("corrupt",{...a,portals:t.size}),this.cleanAnchorList());for(const a of t)e.delete(a);this._idToOpportals=e,this.buildCoordsLookupTable()}addPortal(e){!this.updatePortal(e)&&this._addPortal(e)&&this.update(!1)}_addPortal(e){if(!this.containsPortal(e)){const t=e.lat+"/"+e.lng;return this._coordsToOpportals.has(t)&&(console.debug("add portal %s on portal %s location %s",this._coordsToOpportals.get(t).id,e.id,t),this._dirtyCoordsTable=!0),this._idToOpportals.set(e.id,e),this._coordsToOpportals.set(t,e),!0}return!1}updatePortal(e){return!!this._updatePortal(e)&&(this.update(!0),!0)}_updatePortal(e){const t=this.getPortal(e.id);if(t){if(!e.faked){if(e.lat!==t.lat||e.lng!==t.lng){console.warn("portal %s has moved, replacing by a fake at old location",t.id);const a=ee.fake(t.lat,t.lng,null,t.name);this._coordsToOpportals.delete(t.lat+"/"+t.lng),this._addPortal(a),this._swapPortal(t,a);for(const e of this.markers)e.portalId==t.id&&(e.portalId=a.id);return this._idToOpportals.delete(t.id),this._addPortal(e),!0}return t.name!=e.name&&(t.name=e.name,!0)}}else{const t=this.getPortalByLatLng(e.lat,e.lng);if(t){t.pureFaked||console.warn("update real portal %s by portal %s at location %s",t.id,e.id,e.lat+"/"+e.lng),this._coordsToOpportals.delete(e.lat+"/"+e.lng),this._addPortal(e),this._swapPortal(t,e);for(const a of this.markers)a.portalId==t.id&&(a.portalId=e.id);return this._idToOpportals.delete(t.id),!0}}return!1}addLink(e,t,a={}){if(console.assert(e&&t,"missing portal for link"),e.id===t.id)return console.debug("Operation: Ignoring link where source and target are the same portal."),null;this.addAnchor(e),this.addAnchor(t);const o=this.getLink(e,t),n=o&&a.replace?o:new q({fromPortalId:e.id,toPortalId:t.id});if(a.description&&(n.comment=a.description),a.order&&n.setOrder(a.order),a.color&&(n.color=a.color),o){if(!a.replace)return console.debug("Link Already Exists In Operation -> "+JSON.stringify(n)),o;this.update(!0),this.updateBlockers()}else this.links.push(n),this.update(!0),this.updateBlockers();return n}containsAnchor(e){if(0==this.anchors.length)return!1;for(const t of this.anchors)if(t==e)return!0;return!1}addAnchor(e){this._addPortal(e),this.containsAnchor(e.id)||this.anchors.push(e.id)}get fakedPortals(){const e=Array.from(this._idToOpportals.values()).filter((e=>e.faked));return e}_swapPortal(e,t){this.anchors=this.anchors.filter((function(t){return t!==e.id})),this.containsAnchor(t.id)||this.anchors.push(t.id);const a=[];for(const o of this.links)o.fromPortalId==e.id?o.toPortalId===t.id?(console.debug(`Operation: Removing link '${o.ID}' while swapping because it would create a link with the same source and target.`),a.push(o)):this.containsLinkFromTo(t.id,o.toPortalId)?(console.debug(`Operation: Removing link '${o.ID}' while swapping because it would duplicate an existing link in the operation.`),a.push(o)):o.fromPortalId=t.id:o.toPortalId==e.id&&(o.fromPortalId===t.id?(console.debug(`Operation: Removing link '${o.ID}' while swapping because it would create a link with the same source and target.`),a.push(o)):this.containsLinkFromTo(o.fromPortalId,t.id)?(console.debug(`Operation: Removing link '${o.ID}' while swapping because it would duplicate an existing link in the operation.`),a.push(o)):o.toPortalId=t.id);this.links=this.links.filter((e=>!a.includes(e)))}swapPortal(e,t){this._addPortal(t),this._swapPortal(e,t),this.update(!0),this.updateBlockers()}duplicateAnchor(e,t){const a=!this._batchmode;a&&this.startBatchMode();const o=this.getLinkListFromPortal(e);for(const a of o){let o=this.getPortal(a.fromPortalId),n=this.getPortal(a.toPortalId);o.id===e.id&&(o=t),n.id===e.id&&(n=t),this.addLink(o,n,{description:a.comment,order:a.order,color:a.color,replace:!1})}a&&this.endBatchMode()}addMarker(e,t,a={}){if(!t)return!1;this._addPortal(t);const o=new X({type:e,portalId:t.id});return a&&a.comment&&(o.comment=a.comment),a&&a.zone&&(o.zone=a.zone),a&&a.assign&&o.assign(a.assign),this.markers.push(o),this.update(!0),o.isDestructMarker()&&this.updateBlockers(),!0}assignMarker(e,t){for(const a of this.markers)a.ID==e&&(a.assign(t),this.update(!0))}assignLink(e,t){for(const a of this.links)a.ID==e&&(a.assign(t),this.update(!0))}clearAllItems(){this.anchors=[],this.links=[],this.markers=[],this._idToOpportals.clear(),this._coordsToOpportals.clear(),this.update(!0)}clearAllLinks(){this.links=[],this.cleanAnchorList(),this.cleanPortalList(),this.update(!0)}clearAllMarkers(){this.markers=[],this.cleanPortalList(),this.update(!0)}update(e=!0){!0!==this._batchmode&&(this.fetched&&e&&(this.localchanged=!0),this.store(),this.fire("update"))}updateBlockers(){!0!==this._batchmode&&this.fire("blockers")}startBatchMode(){this._batchmode=!0}endBatchMode(){this._batchmode=!1,this.update(!0),this.updateBlockers()}convertLinksToObjs(e){const t=[];if(!e||0==e.length)return t;for(const a of e)t.push(new q(a));return t}convertMarkersToObjs(e){const t=[];if(!e||0==e.length)return t;if(e)for(const a of e)t.push(new X(a));return t}convertPortalsToObjs(e){const t=[];if(!e||0==e.length)return t;for(const a of e)if(a instanceof ee)t.push(a);else{const e=new ee(a);t.push(e)}return t}convertZonesToObjs(e){if(!e||0==e.length)return[{id:1,name:"Primary",color:"purple"},{id:2,name:"Secondary",color:"yellow"}].map((e=>new te(e)));const t=[];for(const a of e)if(a instanceof te)t.push(a);else{const e=new te(a);t.push(e)}return t}get mbr(){if(0==this._idToOpportals.size)return null;const e=[],t=[];for(const a of this.anchors){const o=this.getPortal(a);e.push(o.lat),t.push(o.lng)}for(const a of this.markers){const o=this.getPortal(a.portalId);e.push(o.lat),t.push(o.lng)}if(!e.length)return null;const a=Math.min.apply(null,e),o=Math.max.apply(null,e),n=Math.min.apply(null,t),i=Math.max.apply(null,t),r=L.latLng(a,n),s=L.latLng(o,i);return L.latLngBounds(r,s)}canWriteServer(){if(!this.isServerOp())return!1;if(!$.isLoggedIn())return!1;if(!this.isOnCurrentServer())return!1;const e=$.cacheGet();if(!e)return!1;if(e.id==this.creator)return!0;if(!e.Teams||0==e.Teams.length)return!1;for(const t of this.teamlist)if("write"==t.role)for(const a of e.Teams)if(t.teamid==a.ID)return!0;return!1}canWrite(){return"write"===this.getPermission()}getPermission(){if(!this.isServerOp())return"write";if(!$.isLoggedIn())return"write";if(!this.isOnCurrentServer())return"write";const e=$.cacheGet();if(!e)return"read";if(e.id==this.creator)return"write";const t=new Set(e.Teams.map((e=>e.ID)));for(const e of this.teamlist)if("write"==e.role&&t.has(e.teamid))return"write";for(const e of this.teamlist)if("read"==e.role&&t.has(e.teamid))return"read";return"assignonly"}isOnCurrentServer(){return this.isServerOp()&&this.server==ie()}isServerOp(){return!!this.fetched}isOwnedOp(){if(!this.isServerOp())return!0;if(!$.isLoggedIn())return!0;const e=$.cacheGet();return!!e&&e.id==this.creator}get nextOrder(){let e=0;for(const t of this.links)e=Math.max(e,t.order);for(const t of this.markers)e=Math.max(e,t.order);return++e}keyOnHand(e,t,a,o){"string"==typeof a&&(a=Number.parseInt(a,10));for(const n of this.keysonhand)if("string"==typeof n.onhand&&(n.onhand=Number.parseInt(n.onhand,10)),n.portalId==e&&n.gid==t)return n.onhand=a,n.capsule=o,void this.update(!1);const n={portalId:e,gid:t,onhand:a,capsule:o};this.keysonhand.push(n),this.update(!1)}KeysOnHandForPortal(e,t){let a=0;for(const o of this.keysonhand)o.portalId!==e||t&&t!==o.gid||(a+=o.onhand);return a}keysOnHandForPortalPerAgent(e){const t={};for(const a of this.keysonhand)a.portalId==e&&(a.gid in t||(t[a.gid]=0),t[a.gid]+=a.onhand);return t}KeysRequiredForPortal(e){let t=0;for(const a of this.links)a.toPortalId==e&&t++;return t}zoneName(e){if(0===e)return 0;for(const t of this.zones)if(t.id==e)return t.name;return e}getZone(e){for(const t of this.zones)if(t.id==e)return t;return null}setZone(e,t){e.zone=Number(t),this.update(!0)}removeZone(e){if(1!=e){for(const t of this.markers)t.zone==e&&(t.zone=1);for(const t of this.links)t.zone==e&&(t.zone=1);this.zones=this.zones.filter((t=>t.id!=e)),this.update(!0)}else console.log("cannot remove zone 1")}removeZonePoints(e){for(const t of this.zones)t.id==e&&(t.points=[]);this.update(!0)}renameZone(e,t){for(const a of this.zones)if(a.id==e){a.name=t;break}this.update(!0)}addZone(){const e=new Set;for(const t of this.zones)e.add(t.id);const t=Math.max(...e)+1;return this.zones.push(new te({id:t,name:`${t}`})),this.update(!0),t}addZonePoint(e,t){for(const a of this.zones)if(a.id==e){a.points.push({lat:t.lat,lng:t.lng,position:a.points.length});break}this.update(!0)}changes(e){const t=new _e(e||this.getFetchedOp()||{}),a=new Map(t.links.map((e=>[e.ID,e]))),o=new Map(t.markers.map((e=>[e.ID,e]))),n=new Map(this.links.map((e=>[e.ID,e]))),i=new Map(this.markers.map((e=>[e.ID,e])));if(t.name!=this.name)return!0;if(t.color!=this.color)return!0;if(t.comment!=this.comment)return!0;for(const[e,a]of this._idToOpportals)if(t._idToOpportals.has(e)){const o=t._idToOpportals.get(e);if(["comment","hardness"].filter((e=>o[e]!=a[e])).map((e=>[e,o[e]])).length>0)return!0}for(const e of a.keys())if(!n.has(e))return!0;for(const e of this.links){if(!a.has(e.ID))return!0;{const t=a.get(e.ID);if(["fromPortalId","toPortalId","color","zone","order","assignedTo","completedID","comment","state"].filter((a=>t[a]!=e[a])).map((e=>[e,t[e]])).length>0)return!0}}for(const e of o.keys())if(!i.has(e))return!0;for(const e of this.markers){if(!o.has(e.ID))return!0;{const t=o.get(e.ID);if(["type","zone","order","assignedTo","completedID","comment","state"].filter((a=>t[a]!=e[a])).map((e=>[e,t[e]])).length>0)return!0}}return!1}checkChanges(){return this.localchanged&&(this.localchanged=this.changes()),this.localchanged}mergeZones(e){const t=new Map;let a=0;for(const e of this.zones)t.set(e.id,e);for(const o of e.zones)t.has(o.id)||(this.zones.push(o),a+=1);return a}determineZone(e){this.zones.sort(((e,t)=>e.id-t.id));for(const t of this.zones)if(t.contains(e))return t.id;return 1}getOrderInfo(){const e=Array.from(this.links);e.sort(((e,t)=>e.order-t.order));const t=new Map,a=[];let o=0,n=0;const i=new Map,r=[];for(const s of e){i.has(s.fromPortalId)||i.set(s.fromPortalId,new Set),i.has(s.toPortalId)||i.set(s.toPortalId,new Set);const e=i.get(s.fromPortalId),l=i.get(s.toPortalId),c=new Set;for(const t of e)l.has(t)&&c.add(t);if(e.add(s.toPortalId),l.add(s.fromPortalId),s.order>0){const e=this.getPortal(s.fromPortalId),a=this.getPortal(s.toPortalId),i=[],l=[];for(const t of c){const o=this.getPortal(t);pe(o,e,a)>0?i.push(o):l.push(o)}if(i.length&&(o+=1),l.length&&(o+=1),i.length>1||l.length>1){let e=0;i.length>1&&(e+=i.length-1),l.length>1&&(e+=l.length-1),r.push([s,e]),n+=e}for(const o of c){const n=this.getPortal(o);for(const i of this.anchors)i===o||i===e.id||i===a.id||t.has(i)||me(e,a,n,this.getPortal(i))&&t.set(i,s)}}t.has(s.fromPortalId)&&a.push(s)}return{fieldCount:o,emptyFieldLinks:r,emptyCount:n,linksFromInner:a,coveredPortals:t}}}class we{constructor(e){if("string"==typeof e)return void console.trace("team waits for an object");let t=!1;"fetched"in e?this.fetched=e.fetched:(this.fetched=Date.now(),t=!0),this.id=e.id,this.name=e.name,this.rc=e.rc,this.rk=e.rk,this.jlt=e.jlt,this.vt=e.vt,this.vr=e.vr,this.agents=e.agents.map((e=>new H({...e,fetched:this.fetched}))),t&&this._updateCache()}async _updateCache(){try{await(await G).put("teams",this)}catch(e){console.error(e)}}static async get(e){return await(await G).get("teams",e)}}let Te=b.strings;const be=b.constants.DEFAULT_LANGUAGE,Ae=b.constants.LANGUAGE_KEY,Le=/\{ *([\w_ -]+) *\}/g;function ke(e,t){const a=function(){window.plugin.wasabee.skin&&window.plugin.wasabee.skin.strings&&(Te=window.plugin.wasabee.skin.strings);let e=localStorage[Ae];return e||(e=be,localStorage[Ae]=be,console.log("no language set, using default")),Te[e]||(e=be,localStorage[Ae]=be,console.log("invalid language set, changing to default")),e}();window.plugin.wasabee.skin&&window.plugin.wasabee.skin.strings&&(Te=window.plugin.wasabee.skin.strings);let o=null;Te[a]&&Te[a][e]&&(o=Te[a][e]),!o&&Te[be]&&Te[be][e]&&(o=Te[be][e]);let n=!1;return window.plugin.userLocation&&(n=!0),n&&Te[a]&&Te[a].smallScreen&&Te[a].smallScreen[e]&&(o=Te[a].smallScreen[e]),o||(o=`${e} not in ${a} or ${be}`),t?o.replace(Le,(function(e,a){const o=t[a];return void 0===o?`{${a}}`:""+o})):o}const Se=ke;function ve(e,t){return window.dialog({title:"Wasabee info",text:t?null:e.toString(),html:t?e:null})}function Oe(e,t){return window.dialog({title:"Wasabee warning",text:t?null:e.toString(),html:t?e:null})}function De(e){return window.dialog({title:"Wasabee error",text:e.toString()})}class Ne{constructor(e){this.code=e.code,this.text=e.text,this.error=e.error,this.code||(this.code=-1,this.text="Unknown error")}toString(){switch(this.code){case 401:return this.error?Se("NOT LOGGED IN",this):Se("NOT LOGGED IN SHORT");case 403:return this.error?Se("PERM DENIED",this):Se("PERM DENIED SHORT");case 410:return this.error?Se("NO LONGER AVAILABLE",this):Se("NO LONGER AVAILABLE SHORT");case 412:return this.error?"Mismatch version: "+this.error:"Mismatch version";default:return this.error?this.text+": "+this.error:this.text}}}function Ce(e){localStorage[window.plugin.wasabee.static.constants.SELECTED_OP_KEY]=e}function ye(){return localStorage[window.plugin.wasabee.static.constants.SELECTED_OP_KEY]}function Re(){return window.plugin.wasabee._selectedOp}async function Ie(){const e=Re(),t=await Be();return t.includes(e.ID)||(0==t.length?await Me():await Pe(t[t.length-1])),Re()}async function Me(){const e=new _e({creator:PLAYER.nickname,name:Se("DEFAULT OP NAME",{date:(new Date).toUTCString()})});return await e.store(),await Pe(e.ID),Re()}async function Pe(e){let t;null!=window.plugin.wasabee._selectedOp&&(t=window.plugin.wasabee._selectedOp.ID,e==window.plugin.wasabee._selectedOp.ID?console.log("makeSelectedOperation called on the current op; replacing with version from local store. not saving live changes first"):(await Be()).includes(window.plugin.wasabee._selectedOp.ID)&&await window.plugin.wasabee._selectedOp.store());const a=await _e.load(e);if(null==a)return console.log("makeSelectedOperation called on invalid opID"),void De("attempted to load invalid opID");a.on("update",(()=>window.map.fire("wasabee:op:change"))),a.on("blockers",(()=>window.map.fire("wasabee:crosslinks"))),a.on("corrupt",(e=>Oe(`Oops, something went wrong and OP ${a.name} got corrupted. Fix by removing ${e.portals} missing portals and ${e.links} links and ${e.markers} markers. Please check your OP and report to the devs.`))),delete window.plugin.wasabee._selectedOp,window.plugin.wasabee._selectedOp=a,function(e){Ee=e}(a),Ce(window.plugin.wasabee._selectedOp.ID),t!==e?window.map.fire("wasabee:op:select",{previous:t,current:e}):window.map.fire("wasabee:op:change"),window.map.fire("wasabee:crosslinks")}async function xe(e){await _e.delete(e),z.removeBlockers(e),window.map.fire("wasabee:op:delete",e)}function Ue(){try{const e=localStorage[window.plugin.wasabee.static.constants.OPS_LIST_HIDDEN_KEY];return JSON.parse(e)}catch{return[]}}async function Be(e=!0){let t=[];try{const e=localStorage[window.plugin.wasabee.static.constants.OPS_LIST_KEY];t=JSON.parse(e),t=t.filter((e=>localStorage[e]))}catch{}const a=await window.plugin.wasabee.idb.getAllKeys("operations");for(const e of a)t.includes(e)||t.push(e);if(!e){const e=Ue();return t.filter((t=>!e.includes(t)))}return t}async function Ke(e){let t=null;return t=e==window.plugin.wasabee._selectedOp.ID?window.plugin.wasabee._selectedOp:await _e.load(e),t=new _e({name:t.name+" "+(new Date).toUTCString(),creator:window.PLAYER.nickname,opportals:t.opportals,links:t.links,markers:t.markers,color:t.color,comment:t.comment,zones:t.zones,referencetime:t.referencetime}),await t.store(),t}async function Ge(e){if(e.GID){for(const t of await Be()){const a=await _e.load(t);(!a||a.isServerOp()&&a.creator!==e.GID)&&(await _e.delete(t),z.removeBlockers(t))}await Ie()}}function He(e){if(e&&e.options&&e.options.data&&e.options.guid){const t=e.options.data,a=e.options.guid;if(t.title)return new ee({id:a,name:t.title,lat:(t.latE6/1e6).toFixed(6),lng:(t.lngE6/1e6).toFixed(6)});if(t.latE6)return ee.fake((t.latE6/1e6).toFixed(6),(t.lngE6/1e6).toFixed(6),a)}return null}function ze(e){return window.portals[e.id]&&window.portals[e.id].options.data?window.portals[e.id].options.data.team:""}function Fe(e){return e.pureFaked?Se("FAKED",{portalId:e.id}):e.loading?Se("LOADING1",{portalGuid:e.id}):e.name}function We(e,t=!1){const a=e.latLng,o=`${e.lat},${e.lng}`,n=Fe(e),i=L.DomUtil.create("a","wasabee-portal");!0===t&&e.name.length>12?i.textContent=n.slice(0,8)+"...":i.textContent=n;const r=ze(e);return"E"==r&&i.classList.add("enl"),"R"==r&&i.classList.add("res"),"M"==r&&i.classList.add("mac"),"N"==r&&i.classList.add("unclaimed"),i.href=`/intel?ll=${o}&pll=${o}`,L.DomEvent.on(i,"click",(t=>(window.selectedPortal!=e.id&&35==e.id.length?window.renderPortalDetails(e.id):window.map.panTo(a),t.preventDefault(),!1))).on(i,"dblclick",(t=>(window.selectedPortal!=e.id&&35==e.id.length&&window.renderPortalDetails(e.id),window.map.getBounds().contains(a)?window.zoomToAndShowPortal(e.id,a):window.map.panTo(a),t.preventDefault(),!1))),i}function Ye(e){return He(window.portals[e])}function Ze(){return window.selectedPortal?Ye(window.selectedPortal):null}function qe(e){const t=window.map.getBounds(),a=[];for(const o in window.portals)if(t.contains(window.portals[o].getLatLng())){if(e.containsMarkerByID(window.portals[o].options.guid,X.constants.MARKER_TYPE_EXCLUDE))continue;const t=He(window.portals[o]);t&&a.push(t)}return a}function Ve(e){if(!e.portal.options.data.title)return;const t=Re(),a=He(e.portal);t.updatePortal(a),z.updatePortal(t,a).then((e=>{e&&window.map.fire("wasabee:crosslinks:update")}))}function je(e){if(!e.success)return;const t=new ee({id:e.guid,name:e.details.title,lat:(e.details.latE6/1e6).toFixed(6),lng:(e.details.lngE6/1e6).toFixed(6)}),a=Re();a.updatePortal(t),z.updatePortal(a,t).then((e=>{e&&window.map.fire("wasabee:crosslinks:update")}))}function Qe(e){Array.isArray(e)?window.plugin.wasabee.portalDetailQueue=window.plugin.wasabee.portalDetailQueue.concat(e):window.plugin.wasabee.portalDetailQueue.push(e);const t=localStorage[window.plugin.wasabee.static.constants.PORTAL_DETAIL_RATE_KEY]||1e3;window.plugin.wasabee.portalDetailIntervalID||(window.plugin.wasabee.portalDetailIntervalID=window.setInterval(Je,t),console.log("starting portal details request queue: "+window.plugin.wasabee.portalDetailIntervalID))}function Je(){const e=window.plugin.wasabee.portalDetailQueue.shift();if(void 0===e)return console.debug("closing portal details request queue: "+window.plugin.wasabee.portalDetailIntervalID),window.clearInterval(window.plugin.wasabee.portalDetailIntervalID),void(window.plugin.wasabee.portalDetailIntervalID=null);35==e.length&&window.portalDetail.request(e)}function Xe(e,t=!1){if("true"!==(localStorage[window.plugin.wasabee.static.constants.AUTO_LOAD_FAKED]||!1)&&!t)return;const a=[];for(const t of e.fakedPortals)a.push(t.id);a.length>0&&Qe(a)}async function $e(e,t=!1){if("true"!==(localStorage[window.plugin.wasabee.static.constants.AUTO_LOAD_FAKED]||!1)&&!t)return;const a=(await z.getPortals(e)).filter((e=>e.id===e.name)).map((e=>e.id));a.length>0&&Qe(a)}function et(e,t,a){if(ge(t.getLatLngs(),e.getLatLngs(a))){if(!a.markers||0==a.markers.length)return!0;for(const e of a.markers)if(!(e.type!=X.constants.MARKER_TYPE_DESTROY&&e.type!=X.constants.MARKER_TYPE_VIRUS&&e.type!=X.constants.MARKER_TYPE_DECAY||e.portalId!=t.options.data.dGuid&&e.portalId!=t.options.data.oGuid))return!1;return!0}return!1}function tt(e){const t=L.geodesicPolyline(e.getLatLngs(),{color:"#d22",opacity:.7,weight:5,interactive:!1,dashArray:[8,8],guid:e.options.guid});t.addTo(window.plugin.wasabee.crossLinkLayers),window.plugin.wasabee._crosslinkCache.set(e.options.guid,t)}function at(e,t){if(!window.plugin.wasabee._crosslinkCache.has(e.options.guid))for(const a of t.links)if(et(a,e,t)){tt(e);let a=t.getPortal(e.options.data.oGuid)||Ye(e.options.data.oGuid);a||(a=ee.fake((e.options.data.oLatE6/1e6).toFixed(6),(e.options.data.oLngE6/1e6).toFixed(6),e.options.data.oGuid));let o=t.getPortal(e.options.data.dGuid)||Ye(e.options.data.dGuid);o||(o=ee.fake((e.options.data.dLatE6/1e6).toFixed(6),(e.options.data.dLngE6/1e6).toFixed(6),e.options.data.dGuid)),z.addBlocker(t,a,o);break}}function ot(e,t){for(const a of t.links)if(e.ID!=a.ID&&ge(a.getLatLngs(t),e.getLatLngs(t)))return!0;return!1}function nt(){if(!1===window.isLayerGroupDisplayed("Wasabee Cross Links"))return;const e=Re();if(window.plugin.wasabee.crossLinkLayers.clearLayers(),window.plugin.wasabee._crosslinkCache.clear(),!e.links||0==e.links.length)return;const t=function*(){const e=Object.getOwnPropertyNames(window.links);for(const t of e)null!=window.links[t]&&(yield window.links[t])}();for(const a of t)at(a,e);for(const t of e.links)if(ot(t,e)){const a=L.geodesicPolyline(t.getLatLngs(e),window.plugin.wasabee.skin.selfBlockStyle);a.options.interactive=!1,a.addTo(window.plugin.wasabee.crossLinkLayers)}window.map.fire("wasabee:crosslinks:done")}function it(e){at(e.link,Re())}function rt(){window.removeHook("linkAdded",it)}function st(){!1!==window.isLayerGroupDisplayed("Wasabee Cross Links")&&(window.plugin.wasabee.crossLinkLayers.bringToFront(),nt(),window.addHook("linkAdded",it))}const lt=new MessageChannel,ct=lt.port1;function dt(e){"analytics"===e.id&&"true"!==localStorage[w.SEND_ANALYTICS_KEY]||"analytics"!==e.id&&"true"===localStorage[w.FIREBASE_DISABLE]||("wasabeeLogin"==e.id&&(e.server=ie(),e.jwt=_t()),e.app_name="Wasabee-IITC",e.app_version=window.plugin.wasabee.info.version,ct.postMessage(e))}async function ut(e,t=86400){const a=await H.get(e);if(a&&a.fetched>Date.now()-1e3*t)return new H(a);if(!$.isLoggedIn())return null;try{const t=await(o=e,It(`/api/v1/agent/${o}`));return new H(t)}catch(e){console.error(e)}var o;return null}async function pt(e,t){const a=$.localGet();if(null===a||null==a.fetched||a.fetched<$.maxCacheAge()||e)try{const e=await It("/api/v1/me");new $(e).store()}catch(a){if(e&&!t)throw a}return $.localGet()}async function mt(e,t=60){const a=await we.get(e);if(a){const e=new we(a);if(e.fetched>Date.now()-1e3*t)return e}if(!$.isLoggedIn())return null;try{const t=await(o=e,It(`/api/v1/team/${o}`));return new we(t)}catch(e){console.error(e)}var o;return null}async function ht(e,t=60){const a=[],o=[];for(const n of e){const e=await we.get(n);if(e){const o=new we(e);if(o.fetched>Date.now()-1e3*t){a.push(o);continue}}o.push(n)}if(!$.isLoggedIn())return[];if(o.length)try{const e=await function(e){return Mt("/api/v1/teams",JSON.stringify({teamids:e}),"application/json")}(o);for(const t of e)a.push(new we(t))}catch(e){console.error(e)}return a}const gt="wasabee-jwt";function ft(e){localStorage[gt]=e}function Et(){localStorage.removeItem(gt)}function _t(){return localStorage.getItem(gt)}async function wt(e){const t=await(a=e,Mt("/aptok",JSON.stringify({accessToken:a}),"application/json;charset=UTF-8"));var a;return t&&t.jwt&&ft(t.jwt),t?new $(t):pt(!0)}const Tt={};function bt(){Tt.client=google.accounts.oauth2.initTokenClient({client_id:window.plugin.wasabee.static.constants.OAUTH_CLIENT_ID,scope:"email profile openid",callback:e=>{const{resolve:t,reject:a}=Tt;if(delete Tt.resolve,delete Tt.reject,t&&a)return e.error?a(e):t(e.access_token)}})}function At(e=!1){return new Promise(((t,a)=>{Tt.resolve=t,Tt.reject=a,Tt.client.requestAccessToken({prompt:e?"consent":""})})).catch((t=>(dt({id:"exception",error:t.error}),"idpiframe_initialization_failed"===t.error?Promise.reject("You need enable cookies or allow [*.]google.com"):e||"user_logged_out"!=t.error&&"immediate_failed"!=t.error?void 0:At(!0))))}function Lt(e=!1){const t=crypto.randomUUID(),a=`https://accounts.google.com/o/oauth2/v2/auth?client_id=${window.plugin.wasabee.static.constants.OAUTH_CLIENT_ID}&redirect_uri=https%3A//intel.ingress.com&response_type=token&scope=profile&access_type=online&state=${t}`;return e?{state:t,url:a+"&prompt=select_account"}:{state:t,url:a}}function kt(){if(window.plugin&&window.plugin.wasabee){let e=localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY];return null==e&&(e=window.plugin.wasabee.static.constants.SERVER_BASE_DEFAULT,localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY]=e),e}return""}function St(e){(e=e.trim()).startsWith("http")||(e="https://"+e),e.endsWith("/")&&(e=e.slice(0,-1)),localStorage[window.plugin.wasabee.static.constants.SERVER_BASE_KEY]=e}function vt(e,t){return It(`/api/v1/me?lat=${e}&lon=${t}`)}function Ot(e,t,a){const o=new FormData;return o.append("name",e),o.append("faction",t),o.append("qt",a),Pt("/api/v1/me/intelid",o)}function Dt(e,t,a="ad hoc"){return Mt(`/api/v1/agent/${e}/target`,JSON.stringify({Name:t.name,Lat:t.lat,Lng:t.lng,ID:t.id,Type:a}),"application/json;charset=UTF-8")}async function Nt(e){let t="Sat, 29 Oct 1994 19:43:31 GMT";const a=await _e.load(e);null!=a&&a.fetched&&(t=a.fetched);try{const o=await Rt({url:`/api/v1/draw/${e}`,method:"GET",headers:a?a.lasteditid?{"If-None-Match":a.lasteditid}:{"If-Modified-Since":t}:null}),n=new _e(o);return n.localchanged=!1,n.server=kt(),n.fetchedOp=JSON.stringify(o),n.fetched=(new Date).toUTCString(),n}catch(t){if(!(t instanceof Ne))return console.error(t),Promise.reject(new Ne({code:-1,text:`Unexpected error: ${t}`}));switch(t.code){case 304:return a.server=kt(),a;case 403:case 410:await xe(e);default:return Promise.reject(t)}}}function Ct(e,t){return It(`/api/v1/draw/${e}/link/${t}`)}function yt(e,t){return It(`/api/v1/draw/${e}/marker/${t}`)}async function Rt(e){const t={method:e.method,mode:"cors",cache:"default",credentials:"include",redirect:"manual",referrerPolicy:"origin",headers:{}};if(e.body&&(t.body=e.body),e.headers&&(t.headers=e.headers),e.url.startsWith("/api")){const e=_t();e&&(t.headers.Authorization=`Bearer ${e}`)}try{const a=await fetch(kt()+e.url,t),o=await a.text();let n;if(!e.raw){if(!o&&!e.retried){if(a.ok)return console.warn(`server answer is empty on[${e.url}], retry once, just in case `),Rt({...e,retried:!0});if("opaqueredirect"===a.type&&0===a.status)return console.warn(`server answer is a redirect on[${e.url}], retry once, just in case `),Rt({...e,retried:!0})}try{n=JSON.parse(o)}catch{if(a.ok)return Promise.reject(new Ne({code:-1,text:"unexpected server answer"}))}}switch(a.status){case 200:return!e.raw&&n.updateID&&(window.plugin&&window.plugin.wasabee?window.plugin.wasabee._updateList:window.wasabeewebui._updateList).set(n.updateID,Date.now()),Promise.resolve(e.raw?o:n);case 401:$.purge();default:return Promise.reject(new Ne({code:a.status,text:a.statusText,error:n?n.error:null}))}}catch(e){return console.error(e),Promise.reject(new Ne({code:-1,text:"Network error"}))}}function It(e){return Rt({method:"GET",url:e})}function Mt(e,t,a){return Rt({url:e,method:"POST",body:t,headers:a?{"Content-Type":a}:null})}function Pt(e,t){return Rt({url:e,method:"PUT",body:t})}function xt(e,t){return Rt({url:e,method:"DELETE",body:t})}const Ut=L.Class.extend({initialize:function(e){this._map=e,this._pane=e._panes.tooltipPane,this._container=L.DomUtil.create("div","wasabee-tooltip",this._pane),L.DomUtil.addClass(this._container,"wasabee-tooltip-single"),window.map.on("mousemove",this._onMouseMove,this)},dispose:function(){window.map.off("mousemove",this._onMouseMove,this),this._pane.removeChild(this._container),this._container=null},updateContent:function(e,t){return t&&e instanceof Node?this._container.replaceChildren(e):this._container.textContent=e,this},_onMouseMove:function(e){e.layerPoint&&L.DomUtil.setPosition(this._container,e.layerPoint)},updatePosition:function(e){const t=this._map.latLngToLayerPoint(e);return L.DomUtil.setPosition(this._container,t),this},showAsError:function(){return L.DomUtil.addClass(this._container,"wasabee-error-tooltip"),this},removeError:function(){return L.DomUtil.removeClass(this._container,"wasabee-error-tooltip"),this}}),Bt=L.Handler.extend({options:{paneId:"wasabee",paneName:"Wasabee",default:null},initialize:function(e){L.setOptions(this,e),window.useAndroidPanes()&&android.addPane(this.options.paneId,this.options.paneName),window.addHook("paneChanged",(e=>{e===this.options.paneId?this.enable():this.disable()})),this._container=L.DomUtil.create("div","wasabee-pane hidden",document.body),window.map.on("wasabee:pane:set",(e=>{e.pane===this.options.paneId&&(this._dialog&&this._dialog.closeDialog(),this._dialog=e.dialog,this._container.textContent="",this._container.appendChild(this._dialog._container),window.show(e.pane))})),window.map.on("wasabee:pane:clear",(e=>{e.pane===this.options.paneId&&this._dialog===e.dialog&&delete this._dialog}))},addHooks:function(){this._container.classList.remove("hidden"),!this._dialog&&this.options.default&&this.options.default().enable()},removeHooks:function(){this._container.classList.add("hidden")}}),Kt=L.Handler.extend({statics:{TYPE:"Unextended Wasabee Dialog"},needWritePermission:!1,options:{usePane:!1,paneId:"wasabee"},initialize:function(e){L.setOptions(this,e),this._smallScreen=this._isMobile(),window.map.fire("wdialog",{dialogType:this.constructor.TYPE}),this.options.usePane=this.options.usePane&&window.isSmartphone()&&"true"===localStorage[window.plugin.wasabee.static.constants.USE_PANES]},addHooks:function(){window.map.on("wasabee:ui:skin",this.update,this),window.map.on("wasabee:ui:lang",this.update,this),window.map.on("wasabee:op:change wasabee:op:select",Kt.prototype.onOpChange,this)},removeHooks:function(){window.map.off("wasabee:ui:skin",this.update,this),window.map.off("wasabee:ui:lang",this.update,this),window.map.off("wasabee:op:change wasabee:op:select",Kt.prototype.onOpChange,this)},onOpChange:function(){if(this.needWritePermission){const e=window.plugin.wasabee._selectedOp;e&&e.canWrite()||this._dialog&&this.closeDialog()}},enable:function(){if(this.needWritePermission){const e=window.plugin.wasabee._selectedOp;if(!e||!e.canWrite())return}L.Handler.prototype.enable.call(this)},update:function(){},createDialog:function(e){if(this.options.title=e.title,e.dialogClass="wasabee-dialog wasabee-dialog-"+e.dialogClass,this._smallScreen&&(e.dialogClass+=" wasabee-small-screen"),this.options.usePane){if(this._container=L.DomUtil.create("div",e.dialogClass),e.id&&(this._container.id=e.id),this._header=L.DomUtil.create("div","header",this._container),e.title&&(this._header.textContent=e.title),this._content=L.DomUtil.create("div","content",this._container),e.html&&this._content.appendChild(e.html),this._buttons=L.DomUtil.create("div","buttonset",this._container),e.buttons){e.buttons instanceof Array||(e.buttons=Object.entries(e.buttons).map((([e,t])=>({text:e,click:t}))));for(const t of e.buttons){const e=L.DomUtil.create("button",null,this._buttons);e.textContent=t.text,L.DomEvent.on(e,"click",t.click)}}window.map.fire("wasabee:pane:set",{pane:this.options.paneId,dialog:this})}else{if(e.closeCallback||(e.closeCallback=()=>{this.disable(),delete this._dialog}),window.isSmartphone()&&!e.autofocus&&e.html instanceof HTMLElement){const t=L.DomUtil.create("input");t.autofocus=!0,t.type="hidden",e.html.appendChild(t)}this._dialog=window.dialog(e),e.buttons&&this._dialog.dialog("option","buttons",e.buttons)}},setTitle:function(e){this._dialog?this._dialog.dialog("option","title",e):this._header&&(this._header.textContent=e)},setContent:function(e){this._dialog?this._dialog.html(e):this._container&&(this._content.textContent="",this._content.appendChild(e))},closeDialog:function(){this._dialog?(this._dialog.dialog("close"),delete this._dialog):this._container&&(window.map.fire("wasabee:pane:clear",{pane:this.options.paneId,dialog:this}),this.disable(),delete this._container,window.show("map"))},_isMobile:function(){return!!window.plugin.userLocation}}),Gt=L.Control.extend({onAdd:function(){for(const e of this.options.buttons.values())e.setControl(this);const e=L.DomUtil.create("div","wasabee-buttons");return e.appendChild(this.options.container),window.map.on("wasabee:login wasabee:logout",this.update,this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),e},onRemove:function(){window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:login wasabee:logout",this.update,this)},update:function(){for(const e of this.options.buttons.values())e.update()},disableAllExcept:function(e){for(const[t,a]of this.options.buttons)t!=e&&a.disable()}}),Ht=L.Class.extend({statics:{TYPE:"unextendedWButton"},_enabled:!1,title:"Unset",needWritePermission:!1,initialize:function(e){console.log("WButton init"),this.type=Ht.TYPE,this.title="Unextended WButton",this._container=e,this.handler=this._toggleActions},update:function(){if(!this.button||!this.needWritePermission)return;const e=window.plugin.wasabee._selectedOp;e&&e.canWrite()?this.button.style.display="block":this.button.style.display="none"},_toggleActions:function(){this._enabled?this.disable():this.enable()},setControl:function(e){this.control=e},disable:function(){this._enabled&&(this._enabled=!1,this.actionsContainer&&(this.actionsContainer.style.display="none"))},enable:function(){this._enabled||(this.control&&this.control.disableAllExcept(this.type),this._enabled=!0,this.actionsContainer&&(this.actionsContainer.style.display="block"))},setSubActions:function(e){this.actionsContainer||(this.actionsContainer=L.DomUtil.create("ul","wasabee-actions",this._container)),this.actionsContainer.textContent="";for(const t of e){const e=L.DomUtil.create("li","wasabee-subactions",this.actionsContainer);this._createButton({...t,container:e})}},_createButton:function(e){const t=L.DomUtil.create("a",e.className||"",e.container);if(e.text&&(t.innerHTML=e.text),e.html&&t.appendChild(e.html),e.accesskey&&(t.accessKey=e.accesskey),e.buttonImage){const a=L.DomUtil.create("img","wasabee-actions-image",t);a.id=this.type,a.src=e.buttonImage}return e.title&&(t.title=e.title),L.DomEvent.disableClickPropagation(t),L.DomEvent.on(t,"click",e.callback,e.context),t}});var zt=a(818),Ft=a.n(zt);function Wt(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function Yt(e){for(var t=1;te.length)&&(t=e.length);for(var a=0,o=new Array(t);a0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function za(e){for(var t=[],a=(e||[]).length>>>0;a--;)t[a]=e[a];return t}function Fa(e){return e.classList?za(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function Wa(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Ya(e){return Object.keys(e||{}).reduce((function(t,a){return t+"".concat(a,": ").concat(e[a].trim(),";")}),"")}function Za(e){return e.size!==Ga.size||e.x!==Ga.x||e.y!==Ga.y||e.rotate!==Ga.rotate||e.flipX||e.flipY}function qa(){var e="fa",t=pa,a=Ua.familyPrefix,o=Ua.replacementClass,n=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';if(a!==e||o!==t){var i=new RegExp("\\.".concat(e,"\\-"),"g"),r=new RegExp("\\--".concat(e,"\\-"),"g"),s=new RegExp("\\.".concat(t),"g");n=n.replace(i,".".concat(a,"-")).replace(r,"--".concat(a,"-")).replace(s,".".concat(o))}return n}var Va=!1;function ja(){Ua.autoAddCss&&!Va&&(function(e){if(e&&da){var t=sa.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var a=sa.head.childNodes,o=null,n=a.length-1;n>-1;n--){var i=a[n],r=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(r)>-1&&(o=i)}sa.head.insertBefore(t,o)}}(qa()),Va=!0)}var Qa={mixout:function(){return{dom:{css:qa,insertCss:ja}}},hooks:function(){return{beforeDOMElementCreation:function(){ja()},beforeI2svg:function(){ja()}}}},Ja=ra||{};Ja.___FONT_AWESOME___||(Ja.___FONT_AWESOME___={}),Ja.___FONT_AWESOME___.styles||(Ja.___FONT_AWESOME___.styles={}),Ja.___FONT_AWESOME___.hooks||(Ja.___FONT_AWESOME___.hooks={}),Ja.___FONT_AWESOME___.shims||(Ja.___FONT_AWESOME___.shims=[]);var Xa=Ja.___FONT_AWESOME___,$a=[],eo=!1;function to(e){da&&(eo?setTimeout(e,0):$a.push(e))}function ao(e){var t=e.tag,a=e.attributes,o=void 0===a?{}:a,n=e.children,i=void 0===n?[]:n;return"string"==typeof e?Wa(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,a){return t+"".concat(a,'="').concat(Wa(e[a]),'" ')}),"").trim()}(o),">").concat(i.map(ao).join(""),"")}function oo(e,t,a){if(e&&e[t]&&e[t][a])return{prefix:t,iconName:a,icon:e[t][a]}}da&&((eo=(sa.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(sa.readyState))||sa.addEventListener("DOMContentLoaded",(function e(){sa.removeEventListener("DOMContentLoaded",e),eo=1,$a.map((function(e){return e()}))})));var no=function(e,t,a,o){var n,i,r,s=Object.keys(e),l=s.length,c=void 0!==o?function(e,t){return function(a,o,n,i){return e.call(t,a,o,n,i)}}(t,o):t;for(void 0===a?(n=1,r=e[s[0]]):(n=0,r=a);n=55296&&n<=56319&&a2&&void 0!==arguments[2]?arguments[2]:{},o=a.skipHooks,n=void 0!==o&&o,i=ro(t);"function"!=typeof Xa.hooks.addPack||n?Xa.styles[e]=Yt(Yt({},Xa.styles[e]||{}),i):Xa.hooks.addPack(e,ro(t)),"fas"===e&&so("fa",t)}var lo=Xa.styles,co=Xa.shims,uo=Object.values(Aa),po=null,mo={},ho={},go={},fo={},Eo={},_o=Object.keys(Ta);function wo(e,t){var a,o=t.split("-"),n=o[0],i=o.slice(1).join("-");return n!==e||""===i||(a=i,~Ma.indexOf(a))?null:i}var To,bo=function(){var e=function(e){return no(lo,(function(t,a,o){return t[o]=no(a,e,{}),t}),{})};mo=e((function(e,t,a){return t[3]&&(e[t[3]]=a),t[2]&&t[2].filter((function(e){return"number"==typeof e})).forEach((function(t){e[t.toString(16)]=a})),e})),ho=e((function(e,t,a){return e[a]=a,t[2]&&t[2].filter((function(e){return"string"==typeof e})).forEach((function(t){e[t]=a})),e})),Eo=e((function(e,t,a){var o=t[2];return e[a]=a,o.forEach((function(t){e[t]=a})),e}));var t="far"in lo||Ua.autoFetchSvg,a=no(co,(function(e,a){var o=a[0],n=a[1],i=a[2];return"far"!==n||t||(n="fas"),"string"==typeof o&&(e.names[o]={prefix:n,iconName:i}),"number"==typeof o&&(e.unicodes[o.toString(16)]={prefix:n,iconName:i}),e}),{names:{},unicodes:{}});go=a.names,fo=a.unicodes,po=vo(Ua.styleDefault)};function Ao(e,t){return(mo[e]||{})[t]}function Lo(e,t){return(Eo[e]||{})[t]}function ko(e){return go[e]||{prefix:null,iconName:null}}function So(){return po}function vo(e){var t=ba[e]||ba[Ta[e]],a=e in Xa.styles?e:null;return t||a||null}function Oo(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.skipLookups,o=void 0!==a&&a,n=null,i=e.reduce((function(e,t){var a=wo(Ua.familyPrefix,t);if(lo[t]?(t=uo.includes(t)?La[t]:t,n=t,e.prefix=t):_o.indexOf(t)>-1?(n=t,e.prefix=vo(t)):a?e.iconName=a:t!==Ua.replacementClass&&e.rest.push(t),!o&&e.prefix&&e.iconName){var i="fa"===n?ko(e.iconName):{},r=Lo(e.prefix,e.iconName);i.prefix&&(n=null),e.iconName=i.iconName||r||e.iconName,e.prefix=i.prefix||e.prefix,"far"!==e.prefix||lo.far||!lo.fas||Ua.autoFetchSvg||(e.prefix="fas")}return e}),{prefix:null,iconName:null,rest:[]});return"fa"!==i.prefix&&"fa"!==n||(i.prefix=So()||"fas"),i}To=function(e){po=vo(e.styleDefault)},Ba.push(To),bo();var Do=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,a;return t=e,a=[{key:"add",value:function(){for(var e=this,t=arguments.length,a=new Array(t),o=0;o0&&s.forEach((function(t){"string"==typeof t&&(e[n][t]=r)})),e[n][i]=r})),e}}],a&&qt(t.prototype,a),Object.defineProperty(t,"prototype",{writable:!1}),e}(),No=[],Co={},yo={},Ro=Object.keys(yo);function Io(e,t){for(var a=arguments.length,o=new Array(a>2?a-2:0),n=2;n1?t-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{};return da?(Mo("beforeI2svg",e),Po("pseudoElements2svg",e),Po("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot;!1===Ua.autoReplaceSvg&&(Ua.autoReplaceSvg=!0),Ua.observeMutations=!0,to((function(){Go({autoReplaceSvgRoot:t}),Mo("watch",e)}))}},Ko={noAuto:function(){Ua.autoReplaceSvg=!1,Ua.observeMutations=!1,Mo("noAuto")},config:Ua,dom:Bo,parse:{icon:function(e){if(null===e)return null;if("object"===Zt(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Lo(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],a=vo(e[0]);return{prefix:a,iconName:Lo(a,t)||t}}if("string"==typeof e&&(e.indexOf("".concat(Ua.familyPrefix,"-"))>-1||e.match(ka))){var o=Oo(e.split(" "),{skipLookups:!0});return{prefix:o.prefix||So(),iconName:Lo(o.prefix,o.iconName)||o.iconName}}if("string"==typeof e){var n=So();return{prefix:n,iconName:Lo(n,e)||e}}}},library:Uo,findIconDefinition:xo,toHtml:ao},Go=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot,a=void 0===t?sa:t;(Object.keys(Xa.styles).length>0||Ua.autoFetchSvg)&&da&&Ua.autoReplaceSvg&&Ko.dom.i2svg({node:a})};function Ho(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return ao(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(da){var t=sa.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function zo(e){var t=e.icons,a=t.main,o=t.mask,n=e.prefix,i=e.iconName,r=e.transform,s=e.symbol,l=e.title,c=e.maskId,d=e.titleId,u=e.extra,p=e.watchable,m=void 0!==p&&p,h=o.found?o:a,g=h.width,f=h.height,E="fak"===n,_=[Ua.replacementClass,i?"".concat(Ua.familyPrefix,"-").concat(i):""].filter((function(e){return-1===u.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(u.classes).join(" "),w={children:[],attributes:Yt(Yt({},u.attributes),{},{"data-prefix":n,"data-icon":i,class:_,role:u.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(g," ").concat(f)})},T=E&&!~u.classes.indexOf("fa-fw")?{width:"".concat(g/f*16*.0625,"em")}:{};m&&(w.attributes[ma]=""),l&&(w.children.push({tag:"title",attributes:{id:w.attributes["aria-labelledby"]||"title-".concat(d||Ha())},children:[l]}),delete w.attributes.title);var b=Yt(Yt({},w),{},{prefix:n,iconName:i,main:a,mask:o,maskId:c,transform:r,symbol:s,styles:Yt(Yt({},T),u.styles)}),A=o.found&&a.found?Po("generateAbstractMask",b)||{children:[],attributes:{}}:Po("generateAbstractIcon",b)||{children:[],attributes:{}},L=A.children,k=A.attributes;return b.children=L,b.attributes=k,s?function(e){var t=e.prefix,a=e.iconName,o=e.children,n=e.attributes,i=e.symbol,r=!0===i?"".concat(t,"-").concat(Ua.familyPrefix,"-").concat(a):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Yt(Yt({},n),{},{id:r}),children:o}]}]}(b):function(e){var t=e.children,a=e.main,o=e.mask,n=e.attributes,i=e.styles,r=e.transform;if(Za(r)&&a.found&&!o.found){var s={x:a.width/a.height/2,y:.5};n.style=Ya(Yt(Yt({},i),{},{"transform-origin":"".concat(s.x+r.x/16,"em ").concat(s.y+r.y/16,"em")}))}return[{tag:"svg",attributes:n,children:t}]}(b)}function Fo(e){var t=e.content,a=e.width,o=e.height,n=e.transform,i=e.title,r=e.extra,s=e.watchable,l=void 0!==s&&s,c=Yt(Yt(Yt({},r.attributes),i?{title:i}:{}),{},{class:r.classes.join(" ")});l&&(c[ma]="");var d=Yt({},r.styles);Za(n)&&(d.transform=function(e){var t=e.transform,a=e.width,o=void 0===a?16:a,n=e.height,i=void 0===n?16:n,r=e.startCentered,s=void 0!==r&&r,l="";return l+=s&&ua?"translate(".concat(t.x/Ka-o/2,"em, ").concat(t.y/Ka-i/2,"em) "):s?"translate(calc(-50% + ".concat(t.x/Ka,"em), calc(-50% + ").concat(t.y/Ka,"em)) "):"translate(".concat(t.x/Ka,"em, ").concat(t.y/Ka,"em) "),(l+="scale(".concat(t.size/Ka*(t.flipX?-1:1),", ").concat(t.size/Ka*(t.flipY?-1:1),") "))+"rotate(".concat(t.rotate,"deg) ")}({transform:n,startCentered:!0,width:a,height:o}),d["-webkit-transform"]=d.transform);var u=Ya(d);u.length>0&&(c.style=u);var p=[];return p.push({tag:"span",attributes:c,children:[t]}),i&&p.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),p}function Wo(e){var t=e.content,a=e.title,o=e.extra,n=Yt(Yt(Yt({},o.attributes),a?{title:a}:{}),{},{class:o.classes.join(" ")}),i=Ya(o.styles);i.length>0&&(n.style=i);var r=[];return r.push({tag:"span",attributes:n,children:[t]}),a&&r.push({tag:"span",attributes:{class:"sr-only"},children:[a]}),r}var Yo=Xa.styles;function Zo(e){var t=e[0],a=e[1],o=jt(e.slice(4),1)[0];return{found:!0,width:t,height:a,icon:Array.isArray(o)?{tag:"g",attributes:{class:"".concat(Ua.familyPrefix,"-").concat(ya)},children:[{tag:"path",attributes:{class:"".concat(Ua.familyPrefix,"-").concat(Ia),fill:"currentColor",d:o[0]}},{tag:"path",attributes:{class:"".concat(Ua.familyPrefix,"-").concat(Ra),fill:"currentColor",d:o[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:o}}}}var qo={found:!1,width:512,height:512};function Vo(e,t){var a=t;return"fa"===t&&null!==Ua.styleDefault&&(t=So()),new Promise((function(o,n){if(Po("missingIconAbstract"),"fa"===a){var i=ko(e)||{};e=i.iconName||e,t=i.prefix||t}if(e&&t&&Yo[t]&&Yo[t][e])return o(Zo(Yo[t][e]));!function(e,t){wa||Ua.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),o(Yt(Yt({},qo),{},{icon:Ua.showMissingIcons&&e&&Po("missingIconAbstract")||{}}))}))}var jo=function(){},Qo=Ua.measurePerformance&&ca&&ca.mark&&ca.measure?ca:{mark:jo,measure:jo},Jo='FA "6.1.1"',Xo=function(e){return Qo.mark("".concat(Jo," ").concat(e," begins")),function(){return function(e){Qo.mark("".concat(Jo," ").concat(e," ends")),Qo.measure("".concat(Jo," ").concat(e),"".concat(Jo," ").concat(e," begins"),"".concat(Jo," ").concat(e," ends"))}(e)}},$o=function(){};function en(e){return"string"==typeof(e.getAttribute?e.getAttribute(ma):null)}function tn(e){return sa.createElementNS("http://www.w3.org/2000/svg",e)}function an(e){return sa.createElement(e)}function on(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.ceFn,o=void 0===a?"svg"===e.tag?tn:an:a;if("string"==typeof e)return sa.createTextNode(e);var n=o(e.tag);Object.keys(e.attributes||[]).forEach((function(t){n.setAttribute(t,e.attributes[t])}));var i=e.children||[];return i.forEach((function(e){n.appendChild(on(e,{ceFn:o}))})),n}var nn={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(on(e),t)})),null===t.getAttribute(ma)&&Ua.keepOriginalSource){var a=sa.createComment(function(e){var t=" ".concat(e.outerHTML," ");return"".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(a,t)}else t.remove()},nest:function(e){var t=e[0],a=e[1];if(~Fa(t).indexOf(Ua.replacementClass))return nn.replace(e);var o=new RegExp("".concat(Ua.familyPrefix,"-.*"));if(delete a[0].attributes.id,a[0].attributes.class){var n=a[0].attributes.class.split(" ").reduce((function(e,t){return t===Ua.replacementClass||t.match(o)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});a[0].attributes.class=n.toSvg.join(" "),0===n.toNode.length?t.removeAttribute("class"):t.setAttribute("class",n.toNode.join(" "))}var i=a.map((function(e){return ao(e)})).join("\n");t.setAttribute(ma,""),t.innerHTML=i}};function rn(e){e()}function sn(e,t){var a="function"==typeof t?t:$o;if(0===e.length)a();else{var o=rn;"async"===Ua.mutateApproach&&(o=ra.requestAnimationFrame||rn),o((function(){var t=!0===Ua.autoReplaceSvg?nn.replace:nn[Ua.autoReplaceSvg]||nn.replace,o=Xo("mutate");e.map(t),o(),a()}))}}var ln=!1;function cn(){ln=!0}function dn(){ln=!1}var un=null;function pn(e){if(la&&Ua.observeMutations){var t=e.treeCallback,a=void 0===t?$o:t,o=e.nodeCallback,n=void 0===o?$o:o,i=e.pseudoElementsCallback,r=void 0===i?$o:i,s=e.observeMutationsRoot,l=void 0===s?sa:s;un=new la((function(e){if(!ln){var t=So();za(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!en(e.addedNodes[0])&&(Ua.searchPseudoElements&&r(e.target),a(e.target)),"attributes"===e.type&&e.target.parentNode&&Ua.searchPseudoElements&&r(e.target.parentNode),"attributes"===e.type&&en(e.target)&&~Ca.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute(ga):null,a=e.getAttribute?e.getAttribute(fa):null;return t&&a}(e.target)){var o=Oo(Fa(e.target)),i=o.prefix,s=o.iconName;e.target.setAttribute(ga,i||t),s&&e.target.setAttribute(fa,s)}else(l=e.target)&&l.classList&&l.classList.contains&&l.classList.contains(Ua.replacementClass)&&n(e.target);var l}))}})),da&&un.observe(l,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function mn(e){var t=e.getAttribute("style"),a=[];return t&&(a=t.split(";").reduce((function(e,t){var a=t.split(":"),o=a[0],n=a.slice(1);return o&&n.length>0&&(e[o]=n.join(":").trim()),e}),{})),a}function hn(e){var t,a,o=e.getAttribute("data-prefix"),n=e.getAttribute("data-icon"),i=void 0!==e.innerText?e.innerText.trim():"",r=Oo(Fa(e));return r.prefix||(r.prefix=So()),o&&n&&(r.prefix=o,r.iconName=n),r.iconName&&r.prefix||r.prefix&&i.length>0&&(r.iconName=(t=r.prefix,a=e.innerText,(ho[t]||{})[a]||Ao(r.prefix,io(e.innerText)))),r}function gn(e){var t=za(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),a=e.getAttribute("title"),o=e.getAttribute("data-fa-title-id");return Ua.autoA11y&&(a?t["aria-labelledby"]="".concat(Ua.replacementClass,"-title-").concat(o||Ha()):(t["aria-hidden"]="true",t.focusable="false")),t}function fn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},a=hn(e),o=a.iconName,n=a.prefix,i=a.rest,r=gn(e),s=Io("parseNodeAttributes",{},e),l=t.styleParser?mn(e):[];return Yt({iconName:o,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:n,transform:Ga,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:i,styles:l,attributes:r}},s)}var En=Xa.styles;function _n(e){var t="nest"===Ua.autoReplaceSvg?fn(e,{styleParser:!1}):fn(e);return~t.extra.classes.indexOf(Sa)?Po("generateLayersText",e,t):Po("generateSvgReplacementMutation",e,t)}function wn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!da)return Promise.resolve();var a=sa.documentElement.classList,o=function(e){return a.add("".concat(Ea,"-").concat(e))},n=function(e){return a.remove("".concat(Ea,"-").concat(e))},i=Ua.autoFetchSvg?Object.keys(Ta):Object.keys(En),r=[".".concat(Sa,":not([").concat(ma,"])")].concat(i.map((function(e){return".".concat(e,":not([").concat(ma,"])")}))).join(", ");if(0===r.length)return Promise.resolve();var s=[];try{s=za(e.querySelectorAll(r))}catch(e){}if(!(s.length>0))return Promise.resolve();o("pending"),n("complete");var l=Xo("onTree"),c=s.reduce((function(e,t){try{var a=_n(t);a&&e.push(a)}catch(e){wa||"MissingIcon"===e.name&&console.error(e)}return e}),[]);return new Promise((function(e,a){Promise.all(c).then((function(a){sn(a,(function(){o("active"),o("complete"),n("pending"),"function"==typeof t&&t(),l(),e()}))})).catch((function(e){l(),a(e)}))}))}function Tn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;_n(e).then((function(e){e&&sn([e],t)}))}var bn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.transform,o=void 0===a?Ga:a,n=t.symbol,i=void 0!==n&&n,r=t.mask,s=void 0===r?null:r,l=t.maskId,c=void 0===l?null:l,d=t.title,u=void 0===d?null:d,p=t.titleId,m=void 0===p?null:p,h=t.classes,g=void 0===h?[]:h,f=t.attributes,E=void 0===f?{}:f,_=t.styles,w=void 0===_?{}:_;if(e){var T=e.prefix,b=e.iconName,A=e.icon;return Ho(Yt({type:"icon"},e),(function(){return Mo("beforeDOMElementCreation",{iconDefinition:e,params:t}),Ua.autoA11y&&(u?E["aria-labelledby"]="".concat(Ua.replacementClass,"-title-").concat(m||Ha()):(E["aria-hidden"]="true",E.focusable="false")),zo({icons:{main:Zo(A),mask:s?Zo(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:T,iconName:b,transform:Yt(Yt({},Ga),o),symbol:i,title:u,maskId:c,titleId:m,extra:{attributes:E,styles:w,classes:g}})}))}},An={mixout:function(){return{icon:(e=bn,function(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(t||{}).icon?t:xo(t||{}),n=a.mask;return n&&(n=(n||{}).icon?n:xo(n||{})),e(o,Yt(Yt({},a),{},{mask:n}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=wn,e.nodeCallback=Tn,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,a=void 0===t?sa:t,o=e.callback;return wn(a,void 0===o?function(){}:o)},e.generateSvgReplacementMutation=function(e,t){var a=t.iconName,o=t.title,n=t.titleId,i=t.prefix,r=t.transform,s=t.symbol,l=t.mask,c=t.maskId,d=t.extra;return new Promise((function(t,u){Promise.all([Vo(a,i),l.iconName?Vo(l.iconName,l.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(l){var u=jt(l,2),p=u[0],m=u[1];t([e,zo({icons:{main:p,mask:m},prefix:i,iconName:a,transform:r,symbol:s,maskId:c,title:o,titleId:n,extra:d,watchable:!0})])})).catch(u)}))},e.generateAbstractIcon=function(e){var t,a=e.children,o=e.attributes,n=e.main,i=e.transform,r=Ya(e.styles);return r.length>0&&(o.style=r),Za(i)&&(t=Po("generateAbstractTransformGrouping",{main:n,transform:i,containerWidth:n.width,iconWidth:n.width})),a.push(t||n.icon),{children:a,attributes:o}}}},Ln={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.classes,o=void 0===a?[]:a;return Ho({type:"layer"},(function(){Mo("beforeDOMElementCreation",{assembler:e,params:t});var a=[];return e((function(e){Array.isArray(e)?e.map((function(e){a=a.concat(e.abstract)})):a=a.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(Ua.familyPrefix,"-layers")].concat(Qt(o)).join(" ")},children:a}]}))}}}},kn={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.title,o=void 0===a?null:a,n=t.classes,i=void 0===n?[]:n,r=t.attributes,s=void 0===r?{}:r,l=t.styles,c=void 0===l?{}:l;return Ho({type:"counter",content:e},(function(){return Mo("beforeDOMElementCreation",{content:e,params:t}),Wo({content:e.toString(),title:o,extra:{attributes:s,styles:c,classes:["".concat(Ua.familyPrefix,"-layers-counter")].concat(Qt(i))}})}))}}}},Sn={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.transform,o=void 0===a?Ga:a,n=t.title,i=void 0===n?null:n,r=t.classes,s=void 0===r?[]:r,l=t.attributes,c=void 0===l?{}:l,d=t.styles,u=void 0===d?{}:d;return Ho({type:"text",content:e},(function(){return Mo("beforeDOMElementCreation",{content:e,params:t}),Fo({content:e,transform:Yt(Yt({},Ga),o),title:i,extra:{attributes:c,styles:u,classes:["".concat(Ua.familyPrefix,"-layers-text")].concat(Qt(s))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var a=t.title,o=t.transform,n=t.extra,i=null,r=null;if(ua){var s=parseInt(getComputedStyle(e).fontSize,10),l=e.getBoundingClientRect();i=l.width/s,r=l.height/s}return Ua.autoA11y&&!a&&(n.attributes["aria-hidden"]="true"),Promise.resolve([e,Fo({content:e.innerHTML,width:i,height:r,transform:o,title:a,extra:n,watchable:!0})])}}},vn=new RegExp('"',"ug"),On=[1105920,1112319];function Dn(e,t){var a="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise((function(o,n){if(null!==e.getAttribute(a))return o();var i,r,s,l=za(e.children).filter((function(e){return e.getAttribute(ha)===t}))[0],c=ra.getComputedStyle(e,t),d=c.getPropertyValue("font-family").match(va),u=c.getPropertyValue("font-weight"),p=c.getPropertyValue("content");if(l&&!d)return e.removeChild(l),o();if(d&&"none"!==p&&""!==p){var m=c.getPropertyValue("content"),h=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(d[2])?ba[d[2].toLowerCase()]:Oa[u],g=function(e){var t,a,o,n,i=e.replace(vn,""),r=(o=(t=i).length,(n=t.charCodeAt(0))>=55296&&n<=56319&&o>1&&(a=t.charCodeAt(1))>=56320&&a<=57343?1024*(n-55296)+a-56320+65536:n),s=r>=On[0]&&r<=On[1],l=2===i.length&&i[0]===i[1];return{value:io(l?i[0]:i),isSecondary:s||l}}(m),f=g.value,E=g.isSecondary,_=d[0].startsWith("FontAwesome"),w=Ao(h,f),T=w;if(_){var b=(r=fo[i=f],s=Ao("fas",i),r||(s?{prefix:"fas",iconName:s}:null)||{prefix:null,iconName:null});b.iconName&&b.prefix&&(w=b.iconName,h=b.prefix)}if(!w||E||l&&l.getAttribute(ga)===h&&l.getAttribute(fa)===T)o();else{e.setAttribute(a,T),l&&e.removeChild(l);var A={iconName:null,title:null,titleId:null,prefix:null,transform:Ga,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},L=A.extra;L.attributes[ha]=t,Vo(w,h).then((function(n){var i=zo(Yt(Yt({},A),{},{icons:{main:n,mask:{prefix:null,iconName:null,rest:[]}},prefix:h,iconName:T,extra:L,watchable:!0})),r=sa.createElement("svg");"::before"===t?e.insertBefore(r,e.firstChild):e.appendChild(r),r.outerHTML=i.map((function(e){return ao(e)})).join("\n"),e.removeAttribute(a),o()})).catch(n)}}else o()}))}function Nn(e){return Promise.all([Dn(e,"::before"),Dn(e,"::after")])}function Cn(e){return!(e.parentNode===document.head||~_a.indexOf(e.tagName.toUpperCase())||e.getAttribute(ha)||e.parentNode&&"svg"===e.parentNode.tagName)}function yn(e){if(da)return new Promise((function(t,a){var o=za(e.querySelectorAll("*")).filter(Cn).map(Nn),n=Xo("searchPseudoElements");cn(),Promise.all(o).then((function(){n(),dn(),t()})).catch((function(){n(),dn(),a()}))}))}var Rn=!1,In=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var a=t.toLowerCase().split("-"),o=a[0],n=a.slice(1).join("-");if(o&&"h"===n)return e.flipX=!0,e;if(o&&"v"===n)return e.flipY=!0,e;if(n=parseFloat(n),isNaN(n))return e;switch(o){case"grow":e.size=e.size+n;break;case"shrink":e.size=e.size-n;break;case"left":e.x=e.x-n;break;case"right":e.x=e.x+n;break;case"up":e.y=e.y-n;break;case"down":e.y=e.y+n;break;case"rotate":e.rotate=e.rotate+n}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},Mn={mixout:function(){return{parse:{transform:function(e){return In(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var a=t.getAttribute("data-fa-transform");return a&&(e.transform=In(a)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,a=e.transform,o=e.containerWidth,n=e.iconWidth,i={transform:"translate(".concat(o/2," 256)")},r="translate(".concat(32*a.x,", ").concat(32*a.y,") "),s="scale(".concat(a.size/16*(a.flipX?-1:1),", ").concat(a.size/16*(a.flipY?-1:1),") "),l="rotate(".concat(a.rotate," 0 0)"),c={outer:i,inner:{transform:"".concat(r," ").concat(s," ").concat(l)},path:{transform:"translate(".concat(n/2*-1," -256)")}};return{tag:"g",attributes:Yt({},c.outer),children:[{tag:"g",attributes:Yt({},c.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:Yt(Yt({},t.icon.attributes),c.path)}]}]}}}},Pn={x:0,y:0,width:"100%",height:"100%"};function xn(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var Un,Bn={hooks:function(){return{parseNodeAttributes:function(e,t){var a=t.getAttribute("data-fa-mask"),o=a?Oo(a.split(" ").map((function(e){return e.trim()}))):{prefix:null,iconName:null,rest:[]};return o.prefix||(o.prefix=So()),e.mask=o,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,a=e.children,o=e.attributes,n=e.main,i=e.mask,r=e.maskId,s=e.transform,l=n.width,c=n.icon,d=i.width,u=i.icon,p=function(e){var t=e.transform,a=e.iconWidth,o={transform:"translate(".concat(e.containerWidth/2," 256)")},n="translate(".concat(32*t.x,", ").concat(32*t.y,") "),i="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),r="rotate(".concat(t.rotate," 0 0)");return{outer:o,inner:{transform:"".concat(n," ").concat(i," ").concat(r)},path:{transform:"translate(".concat(a/2*-1," -256)")}}}({transform:s,containerWidth:d,iconWidth:l}),m={tag:"rect",attributes:Yt(Yt({},Pn),{},{fill:"white"})},h=c.children?{children:c.children.map(xn)}:{},g={tag:"g",attributes:Yt({},p.inner),children:[xn(Yt({tag:c.tag,attributes:Yt(Yt({},c.attributes),p.path)},h))]},f={tag:"g",attributes:Yt({},p.outer),children:[g]},E="mask-".concat(r||Ha()),_="clip-".concat(r||Ha()),w={tag:"mask",attributes:Yt(Yt({},Pn),{},{id:E,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[m,f]},T={tag:"defs",children:[{tag:"clipPath",attributes:{id:_},children:(t=u,"g"===t.tag?t.children:[t])},w]};return a.push(T,{tag:"rect",attributes:Yt({fill:"currentColor","clip-path":"url(#".concat(_,")"),mask:"url(#".concat(E,")")},Pn)}),{children:a,attributes:o}}}},Kn={provides:function(e){var t=!1;ra.matchMedia&&(t=ra.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],a={fill:"currentColor"},o={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:Yt(Yt({},a),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var n=Yt(Yt({},o),{},{attributeName:"opacity"}),i={tag:"circle",attributes:Yt(Yt({},a),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||i.children.push({tag:"animate",attributes:Yt(Yt({},o),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Yt(Yt({},n),{},{values:"1;0;1;1;0;1;"})}),e.push(i),e.push({tag:"path",attributes:Yt(Yt({},a),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:Yt(Yt({},n),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:Yt(Yt({},a),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Yt(Yt({},n),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}};Un={mixoutsTo:Ko}.mixoutsTo,No=[Qa,An,Ln,kn,Sn,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=yn,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,a=void 0===t?sa:t;Ua.searchPseudoElements&&yn(a)}}},{mixout:function(){return{dom:{unwatch:function(){cn(),Rn=!0}}}},hooks:function(){return{bootstrap:function(){pn(Io("mutationObserverCallbacks",{}))},noAuto:function(){un&&un.disconnect()},watch:function(e){var t=e.observeMutationsRoot;Rn?dn():pn(Io("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},Mn,Bn,Kn,{hooks:function(){return{parseNodeAttributes:function(e,t){var a=t.getAttribute("data-fa-symbol"),o=null!==a&&(""===a||a);return e.symbol=o,e}}}}],Co={},Object.keys(yo).forEach((function(e){-1===Ro.indexOf(e)&&delete yo[e]})),No.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"==typeof t[e]&&(Un[e]=t[e]),"object"===Zt(t[e])&&Object.keys(t[e]).forEach((function(a){Un[e]||(Un[e]={}),Un[e][a]=t[e][a]}))})),e.hooks){var a=e.hooks();Object.keys(a).forEach((function(e){Co[e]||(Co[e]=[]),Co[e].push(a[e])}))}e.provides&&e.provides(yo)}));var Gn=Ko.icon,Hn=a(55),zn=a(619),Fn=a(986),Wn=a(375),Yn=a(610),Zn=a(371),qn=a(755),Vn=a(117),jn=a(102),Qn=a(789),Jn=a(98),Xn=a(49),$n=a(467);function ei(e,t="#000000"){try{return Ft().to.hex(Ft().get.rgb(function(e){switch(e){case"groupa":return"orange";case"groupb":return"yellow";case"groupc":return"lime";case"groupd":return"purple";case"groupe":return"teal";case"groupf":return"fuchsia";case"main":return window.plugin.wasabee.skin.defaultOperationColor;default:return e}}(e)))}catch{return t}}function ti(e){let[t,a,o]=[0,0,0];for(const n of e){const e=Ft().get.rgb(n);t+=e[0],a+=e[1],o+=e[2]}return e.length&&(t=Math.floor(t/e.length),a=Math.floor(a/e.length),o=Math.floor(o/e.length)),Ft().to.hex(t,a,o)}const ai={check:Hn.LE,trash:zn.$,server:Fn.xf,"arrows-rotate":Wn.T8,"left-right":Yn.Bq,pen:Zn.Iw,eraser:qn.xf,ban:Vn.gP,palette:jn.q2,asterisk:Qn.$X,desktop:Jn.tc,"carret-right":Xn.I4,"location-dot":$n.op};function oi(e,t){if(e in ai){const a=Gn(ai[e]).node[0];t.appendChild(a)}}const ni=Kt.extend({statics:{TYPE:"agent"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:async function(){const e=L.DomUtil.create("div",null);try{const t=await ut(this.options.gid);L.DomUtil.create("h2","wasabee-agent-label",e).textContent=t.getName();const a=L.DomUtil.create("ul","",e),o=[["Server name: ",t.name],["Ingress name: ",t.communityname],["V name: ",t.vname],["V verified: ",t.Vverified],["Rocks name: ",t.rocksname],["Rocks Verified: ",t.rocks]];for(const[e,t]of o){const o=L.DomUtil.create("li","",a);L.DomUtil.create("label",null,o).textContent=e,!0===t?oi("check",o):L.DomUtil.create("span",null,o).textContent=t}L.DomUtil.create("img",null,e).src=t.pic}catch(t){console.error(t),e.innerHTML=t.toString()}const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("AGENT_STATS"),html:e,width:"auto",dialogClass:"agent",buttons:t})},_displaySmallDialog:function(){this._displayDialog()}});function ii(e){const t=L.DomUtil.create("a","wasabee-agent-label");(e.Vverified||e.rocks)&&L.DomUtil.addClass(t,"enl"),e.blacklisted&&L.DomUtil.addClass(t,"res"),L.DomEvent.on(t,"click",(t=>{L.DomEvent.stop(t),new ni({gid:e.id}).enable()}));let a="";return e.communityname&&(a+="C"),e.Vverified?a+="V":e.vname===e.name&&(a+="v"),e.rocks?a+="R":e.rocksname===e.name&&(a+="r"),e.intelname&&((e.rocksname||e.vname)&&(e.rocks||e.Vverified)?e.intelname===e.name?a+="I":e.intelname.toLowerCase()===e.name.toLowerCase()&&(a+="i"):a+="I"),t.textContent=a?`[${a}] `+e.getName():e.getName(),t}function ri(e){if(!e.date)return"";const t=Date.parse(e.date+"Z");if(Number.isNaN(t))return`(${e.date} UTC)`;if(0==t)return"";const a=Math.floor((Date.now()-t)/1e3);if(a<0)return"";let o=Math.floor(a/31536e3/2592e3/86400);return o>1?Se("AGES"):(o=Math.floor(a/3600),o>1?Se("HOURS",{hours:o}):(o=Math.floor(a/60),o>1?Se("MINUTES",{minutes:o}):(o=Math.floor(a),Se("SECONDS",{seconds:o}))))}const si=Kt.extend({statics:{TYPE:"confirmDialog"},options:{title:Se("NO_TITLE"),label:Se("NO_LABEL")},_skippable:function(){const e=localStorage[window.plugin.wasabee.static.constants.SKIP_CONFIRM];if("always"===e)return!0;if("entity"===e)switch(this.options.type){case"anchor":case"link":case"marker":case"zone":case"agent":return!0}return!1},addHooks:function(){Kt.prototype.addHooks.call(this),this._skippable()?(console.log("skipping dialog display"),this.options.callback&&this.options.callback()):this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this.options.callback&&this.options.callback(),this.closeDialog()},e[Se("CANCEL")]=()=>{this.options.cancelCallback&&this.options.cancelCallback(),this.closeDialog()},this.createDialog({title:this.options.title,html:this._buildContent(),width:"auto",dialogClass:"confirm",buttons:e})},_buildContent:function(){const e=L.DomUtil.create("div","title");return"string"==typeof this.options.label?e.textContent=this.options.label:e.appendChild(this.options.label),e}});function li(e,t=7){return t<6?function(){const e=document.createElementNS("http://www.w3.org/2000/svg","svg");return e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.setAttribute("viewBox","200 70 630 520"),e.setAttribute("height","30"),e.setAttribute("width","30"),e.setAttribute("style","fill-rule: evenodd; clip-rule: evenodd; stroke-miterlimit: 10;"),e.innerHTML='',e}():t>=6&&t<9?function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.setAttribute("viewBox","0 0 52 68"),t.innerHTML=`\n \n \n `,t}(e):t>=9&&t<15?function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.setAttribute("viewBox","0 0 52 68"),t.innerHTML=`\n \n \n `,t}(e):function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.setAttribute("viewBox","0 0 52 68"),t.innerHTML=`\n \n \n `,t}(e)}function ci(e=7){return e<6?[30,30]:e>=6&&e<9?[36,47]:e>=9&&e<15?[40,52]:[46,60]}function di(e=7){return e<6?[15,30]:e>=6&&e<9?[18,47]:e>=9&&e<15?[20,52]:[23,60]}const ui=L.Marker.extend({initialize:function(e){const t=window.map.getZoom();L.Marker.prototype.initialize.call(this,e.latLng,{title:e.getName(),icon:L.divIcon({className:"wasabee-agent-icon",iconSize:ci(t),iconAnchor:di(t),popupAnchor:L.point(0,-70),html:li(e,t)}),id:e.id,agent:e,zoom:t}),this.bindPopup((e=>e._getPopup()),{className:"wasabee-popup",closeButton:!1}),this.off("click",this._openPopup),window.registerMarkerForOMS(this),this.on("spiderfiedclick",this._openPopup)},update:function(){const e=window.map.getZoom();this.options.zoom!=e?(this.options.zoom=e,this.setIcon(L.divIcon({className:"wasabee-agent-icon",iconSize:ci(e),iconAnchor:di(e),popupAnchor:L.point(0,-70),html:li(this.options.agent,e)}))):L.Marker.prototype.update.call(this)},_getPopup:function(){const e=this.options.agent,t=L.DomUtil.create("div","wasabee-agent-popup"),a=L.DomUtil.create("div","desc",t);a.id=e.id,a.textContent=e.getName();const o=L.DomUtil.create("div","desc",t);o.id=e.id,o.textContent=ri(e),ut(this.options.id).then(ii).then((t=>{a.textContent="",a.appendChild(t),o.textContent=ri(e)}));const n=L.DomUtil.create("button",null,t);n.textContent=Se("SEND TARGET"),L.DomEvent.on(n,"click",(t=>{L.DomEvent.stop(t);const a=Ze();a?new si({title:Se("SEND TARGET"),label:Se("SEND TARGET CONFIRM",{portalName:Fe(a),agent:e.getName()}),type:"agent",callback:async()=>{try{await Dt(e.id,a),ve(Se("TARGET SENT"))}catch(e){console.error(e)}}}).enable():Oe(Se("SELECT PORTAL"))}));const i=Re(),r=L.DomUtil.create("ul","assignments",t);for(const t of i.markers){if(t.assignedTo!=e.id)continue;const a=L.DomUtil.create("li","assignment",r),o=i.getPortal(t.portalId);a.textContent=`${t.order}: ${Se(t.type)} `,a.appendChild(We(o))}return t}});class pi{constructor(){this._items=[],this._fields=[],this._sortBy=0,this._sortAsc=!0,this._table=L.DomUtil.create("table","wasabee-table"),this._head=L.DomUtil.create("thead",null,this._table),this._body=L.DomUtil.create("tbody",null,this._table),this._foot=L.DomUtil.create("tfoot",null,this._table),this._smallScreen=!!window.plugin.userLocation,this._sortByStoreKey="",this._sortAscStoreKey="",this._done=!0}get sortBy(){return this._sortBy}set sortBy(e){this._sortBy=Number(e),this.renderHead(),this.sort()}get sortAsc(){return this._sortAsc}set sortAsc(e){!0!==e&&(e=!1),this._sortAsc=e,this.renderHead(),this.sort()}set sortByStoreKey(e){this._sortByStoreKey=e,null==localStorage[this._sortByStoreKey]&&(localStorage[this._sortByStoreKey]=0),this.sortBy=localStorage[this._sortByStoreKey]}set sortAscStoreKey(e){this._sortAscStoreKey=e,null==localStorage[this._sortAscStoreKey]&&(localStorage[this._sortAscStoreKey]="true"),this.sortAsc="true"==localStorage[this._sortAscStoreKey]}get table(){return this._table}get items(){return this._items.map((e=>e.obj))}set items(e){this._body.textContent="";let t=0;const a=[],o=e.map((async e=>{const o=L.DomUtil.create("tr"),n={obj:e,row:o,index:t,values:[],sortValues:[]};t++;for(const t of this._fields){let a=t.value(e);null!=a&&a instanceof Promise&&(a=await a),n.values.push(a);let i=a;t.sortValue&&(i=t.sortValue(a,e),null!=i&&i instanceof Promise&&(i=await i)),n.sortValues.push(i);const r=o.insertCell(-1);t.className&&r.classList.add(t.className),t.format?t.format(r,a,e):r.textContent=a,t.smallScreenHide&&this._smallScreen&&(r.style.display="none")}return a.push(n),n}));a.length===o.length?(this._items=a,this.sort(),this._done=!0):this._done=Promise.all(o).then((e=>(this._items=e,this.sort(),!0)),(e=>{console.log("rejected",e),this._done=!1}))}get fields(){return this._fields}set fields(e){this._fields=e,this.renderHead(),this.renderFoot()}get done(){return this._done}renderHead(){this._head.textContent="";const e=this._head.insertRow(-1);for(const[t,a]of this._fields.entries()){const o=L.DomUtil.create("th",a.className,e);o.textContent=a.name,a.smallScreenHide&&this._smallScreen&&(o.style.display="none"),null!==a.sort&&(L.DomUtil.addClass(o,"sortable"),t==this._sortBy&&L.DomUtil.addClass(o,this._sortAsc?"asc":"desc"),L.DomEvent.on(o,"click",(a=>{L.DomEvent.stop(a);for(const t of e.children)L.DomUtil.removeClass(t,"asc"),L.DomUtil.removeClass(t,"desc");t==this._sortBy&&(this._sortAsc=!this._sortAsc),L.DomUtil.addClass(o,this._sortAsc?"asc":"desc"),this._sortBy=t,null!=this._sortByStoreKey&&(localStorage[this._sortByStoreKey]=this._sortBy),null!=this._sortAscStoreKey&&(localStorage[this._sortAscStoreKey]=this._sortAsc.toString()),this.sort()}),!1))}}renderFoot(){if(this._foot.textContent="",this._fields.every((e=>!e.foot)))return;const e=this._foot.insertRow(-1);for(const t of this._fields){const a=L.DomUtil.create("td",t.className,e);t.foot&&t.foot(a)}}sort(){const e=this._fields[this._sortBy];this._items.sort(((t,a)=>{const o=t.sortValues[this._sortBy],n=a.sortValues[this._sortBy];if(void 0===o&&null==n)return 0;if(null==o)return-1;if(null==n)return 1;let i=0;return"function"==typeof e.sort?i=e.sort(o,n,t.obj,a.obj):(o>n&&(i=1),n>o&&(i=-1)),0==i&&(i=t.index-a.index),this._sortAsc?i:-i}));for(const[e,t]of this._items.entries())t.index=e,this._body.appendChild(t.row)}}const mi=window.plugin.wasabee;function hi(){mi.skin={},mi.skin.defaultOperationColor=mi.static.defaultOperationColor,mi.skin.layerTypes=new Map(mi.static.layerTypes),mi.skin.linkStyle=mi.static.linkStyle,mi.skin.selfBlockStyle=mi.static.selfBlockStyle,mi.skin.backgroundLinkStyle=mi.static.backgroundLinkStyle,mi.skin.anchorTemplate=mi.static.anchorTemplate,mi.skin.strings=Object.assign({},mi.static.strings);for(const e of Object.getOwnPropertyNames(mi.static.CSS))gi(e,mi.static.CSS[e]);_i(),Ei()}function gi(e,t){mi._css||(mi._css=[]),mi._css.includes(e)&&(document.getElementById("wasabee-css-"+e).remove(),mi._css.splice(mi._css.indexOf(e)));const a=L.DomUtil.create("style",null,document.head);a.textContent=t,a.id="wasabee-css-"+e,mi._css.push(e)}function fi(e){window.plugin.wasabeeSkins||(window.plugin.wasabeeSkins={}),0==e.length&&delete localStorage[mi.static.constants.SKIN_KEY],delete mi.skin,function(){for(const e of mi._css)document.getElementById("wasabee-css-"+e).remove();mi._css=[]}(),hi();const t=[];for(const a of e){if(!window.plugin.wasabeeSkins[a]||!window.plugin.wasabeeSkins[a].static)continue;t.push(a);const e=window.plugin.wasabeeSkins[a].static;if(e.strings)for(const t of Object.getOwnPropertyNames(e.strings))t==a&&(localStorage[mi.static.constants.LANGUAGE_KEY]=a),mi.skin.strings[t]=e.strings[t];for(const t of Object.getOwnPropertyNames(e.CSS))gi(t,e.CSS[t]);if(e.defaultOperationColor&&(mi.skin.defaultOperationColor=e.defaultOperationColor),e.layerTypes)for(const[t,a]of e.layerTypes)mi.skin.layerTypes.set(t,a);e.linkStyle&&(mi.skin.linkStyle=e.linkStyle),e.selfBlockStyle&&(mi.skin.selfBlockStyle=e.selfBlockStyle),void 0!==e.anchorTemplate&&(mi.skin.anchorTemplate=e.anchorTemplate)}return _i(),Ei(),localStorage[window.plugin.wasabee.static.constants.SKIN_KEY]=JSON.stringify(t),window.map.fire("wasabee:ui:skin"),!0}function Ei(){const e=document.getElementById("wasabee-anchor-svg");e&&e.remove();const t=mi.skin.anchorTemplate;if(t){const e=L.DomUtil.create("div");e.innerHTML=t;const a=e.firstChild;a.id="wasabee-anchor-svg",document.body.appendChild(a)}}function _i(){const e=document.getElementById("wasabee-colors-datalist");e&&e.remove();const t=L.DomUtil.create("datalist",null,document.body);t.id="wasabee-colors-datalist";for(const e of mi.skin.layerTypes.values())L.DomUtil.create("option",null,t).value=e.color}function wi(e){const t=document.getElementById("wasabee-colors-datalist");if(!t)return;for(const a of t.children)if(a.value==e)return void t.insertBefore(a,t.firstChild);const a=L.DomUtil.create("option");a.value=e,t.insertBefore(a,t.firstChild)}function Ti(e,t,a=!1){const o=L.DomUtil.create("div",null);o.appendChild(We(t.getPortal(e.fromPortalId),a));const n=L.DomUtil.create("span","wasabee-link-seperator",o);n.style.color=ei(e.getColor(t)),oi("carret-right",n);const i=L.DomUtil.create("input","hidden-color-picker",n);return i.type="color",i.value=ei(e.getColor(t)),i.setAttribute("list","wasabee-colors-datalist"),i.disabled=!t.canWrite(),L.DomEvent.on(n,"click",(()=>{i.click()})),L.DomEvent.on(i,"change",(a=>{const o=a.target.value;e.setColor(o,t),wi(o)})),o.appendChild(We(t.getPortal(e.toPortalId),a)),o}const bi=Kt.extend({statics:{TYPE:"assignDialog"},needWritePermission:!0,options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this.localAssign(this._currentAssign),this.closeDialog()};const t=this._buildContent();this.createDialog({title:this._name,html:t,width:"auto",dialogClass:"assign",buttons:e,id:b.dialogNames.assign,autofocus:!0})},_buildContent:function(){const e=L.DomUtil.create("div","container"),t=this.options.target,a=Re();this._currentAssign=null,this._targetID=t.ID;const o=L.DomUtil.create("div","desc",e),n=L.DomUtil.create("div","wasabee-agent-menu",e);if(t instanceof q){const e=a.getPortal(t.fromPortalId);this._type="Link",this._name=Se("ASSIGN LINK PROMPT",{portalName:Fe(e)}),o.appendChild(Ti(t,a)),L.DomUtil.create("label",null,n).textContent=Se("LINK ASSIGNMENT"),this._currentAssign=t.assignedTo}if(t instanceof X){const e=a.getPortal(t.portalId);this._type="Marker",this._name=Se("ASSIGN MARKER PROMPT",{portalName:Fe(e)}),o.appendChild(We(e)),L.DomUtil.create("label",null,n).textContent=Se("MARKER ASSIGNMENT"),this._currentAssign=t.assignedTo}if(t instanceof ee){const e=t;this._type="Anchor",this._name=Se("ASSIGN OUTBOUND PROMPT",{portalName:Fe(e)}),o.appendChild(We(e)),L.DomUtil.create("label",null,n).textContent=Se("ANCHOR ASSIGNMENT");for(const t of a.getLinkListFromPortal(e))if(t.fromPortalId===e.id&&t.assignedTo){this._currentAssign=t.assignedTo;break}}const i=L.DomUtil.create("select",null,n),r=L.DomUtil.create("option",null,i);return r.value="",r.textContent=Se("UNASSIGNED"),L.DomEvent.on(i,"change",(e=>{this._currentAssign=e.target.value,this.localAssign(e.target.value)})),this._populateAgentSelect(i,this._currentAssign),e},_populateAgentSelect:async function(e,t){const a=new Array,o=await pt(),n=await ht(Re().teamlist.map((e=>e.teamid)).filter((e=>o.teamJoined(e))),300);for(const o of n)for(const n of o.agents)if(!a.includes(n.id)){a.push(n.id);const o=L.DomUtil.create("option","",e);o.value=n.id,o.textContent=n.getName(),n.id==t&&(o.selected=!0)}},localAssign:function(e){const t=Re();if("Marker"==this._type&&t.assignMarker(this._targetID,e),"Link"==this._type&&t.assignLink(this._targetID,e),"Anchor"==this._type){const a=t.getLinkListFromPortal(this.options.target);for(const o of a)o.fromPortalId==this.options.target.id&&t.assignLink(o.ID,e)}}}),Ai=bi,Li=Kt.extend({statics:{TYPE:"stateDialog"},needWritePermission:!0,options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this.closeDialog()},this._buildContent(),this.createDialog({title:this._name,html:this._html,width:"auto",dialogClass:"state",buttons:e,id:b.dialogNames.state,autofocus:!0})},_buildContent:function(){this._targetID=this.options.target.ID,this._html=L.DomUtil.create("div",null);const e=L.DomUtil.create("div","desc",this._html),t=this._getStateMenu(this.options.target),a=Re();if(this.options.opID!=a.ID&&(console.log("operation changed between create/setup?!"),this.options.opID=a.ID),this.options.target instanceof q){this._type="Link",this._name=Se("LINK STATE PROMPT"),e.appendChild(Ti(this.options.target,a));const o=L.DomUtil.create("label",null);o.textContent=Se("LINK STATE"),t.prepend(o)}if(this.options.target instanceof X){const o=a.getPortal(this.options.target.portalId);this._type="Marker",this._name=Se("MARKER STATE PROMPT"),e.appendChild(We(o));const n=L.DomUtil.create("label",null);n.textContent=Se("MARKER STATE"),t.prepend(n)}this._html.appendChild(t)},_getStateMenu:function(e){const t=L.DomUtil.create("div","wasabee-state-menu"),a=L.DomUtil.create("select",null,t),o=["pending","acknowledged","completed"];for(const t of o){const o=a.appendChild(L.DomUtil.create("option",null));o.value=t,o.textContent=Se(t),e.state==t&&(o.selected=!0)}return a.addEventListener("change",(e=>{this.setState(e)})),t},setState:function(e){const t=Re();this.options.opID==t.ID?("Marker"==this._type&&t.setMarkerState(this._targetID,e.srcElement.value),"Link"==this._type&&t.setLinkState(this._targetID,e.srcElement.value)):console.log("operation changed -- bailing")}}),ki=Kt.extend({statics:{TYPE:"setCommentDialog"},needWritePermission:!0,options:{},initialize:function(e){Kt.prototype.initialize.call(this,e),this.options.target instanceof q&&(this.commentType="link",this.dialogTitle=Se("SET_LCOMMENT"),this.portal=this.options.operation.getPortal(this.options.target.fmPortalId)),this.options.target instanceof X&&(this.commentType="marker",this.portal=this.options.operation.getPortal(this.options.target.portalId),this.dialogTitle=Se("SET_MCOMMENT",{portalName:Fe(this.portal)})),this.options.target instanceof ee&&(this.commentType="portal",this.dialogTitle=Se("SET_PCOMMENT",{portalName:Fe(this.options.target)}),this.portal=this.options.target),this.commentType||(console.log("comment dialog requested for unknown type"),console.log(this.options.target))},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this.closeDialog()},this.createDialog({title:this.dialogTitle,html:this._buildHtml(),width:"auto",dialogClass:"setcomment",buttons:e,id:b.dialogNames.setComment,autofocus:!0})},_buildHtml:function(){const e=L.DomUtil.create("form","container");L.DomEvent.on(e,"submit",this.closeDialog,this);const t=L.DomUtil.create("div","desc",e),a=L.DomUtil.create("input",null,e);if(a.placeholder=Se("COMMENT"),"link"==this.commentType&&(t.textContent=Se("SET_LINK_COMMENT"),t.appendChild(Ti(this.options.target,this.options.operation)),this.options.target.comment&&(a.value=this.options.target.comment),a.addEventListener("change",(()=>{this.options.operation.setLinkComment(this.options.target,a.value)}),!1)),"marker"==this.commentType&&(t.textContent=Se("SET_MARKER_COMMENT"),t.appendChild(We(this.portal)),this.options.target.comment&&(a.value=this.options.target.comment),a.addEventListener("change",(()=>{this.options.operation.setMarkerComment(this.options.target,a.value)}),!1)),"portal"==this.commentType){t.textContent=Se("SET_PORT_COMMENT"),t.appendChild(We(this.portal)),this.portal.comment&&(a.value=this.portal.comment),a.addEventListener("change",(()=>{this.options.operation.setPortalComment(this.options.target,a.value)}),!1);const o=L.DomUtil.create("input",null,e);o.placeholder=Se("dialog.setcomment.portal_hardness"),this.portal.hardness&&(o.value=this.portal.hardness),o.addEventListener("change",(()=>{this.options.operation.setPortalHardness(this.options.target,o.value)}),!1)}return e}}),Si=Kt.extend({statics:{TYPE:"markerButton"},needWritePermission:!0,options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=Re(),t=L.DomUtil.create("div","content"),a=e.getPortal(this.options.marker.portalId);L.DomUtil.create("div","portal",t).appendChild(We(a)),this._type=L.DomUtil.create("select",null,t);for(const e of X.markerTypes){const t=L.DomUtil.create("option",null,this._type);t.value=e,t.textContent=Se(e)}this._type.value=this.options.marker.type;const o={};o[Se("OK")]=()=>{X.markerTypes.has(this._type.value)&&(e.startBatchMode(),e.removeMarker(this.options.marker),e.addMarker(this._type.value,a,{zone:this.options.marker.zone,comment:this.options.marker.comment,assign:this.options.marker.assignedTo}),X.isDestructMarkerType(this._type.value)&&z.removeBlocker(e,a.id),e.endBatchMode()),this.closeDialog()},o[Se("CANCEL")]=()=>{this.closeDialog()},this.createDialog({title:Se("SET_MARKER_TYPE_TITLE"),html:t,width:"auto",dialogClass:"markerchange",buttons:o,id:b.dialogNames.markerButton,autofocus:!0})}});function vi(){const e=Re();e.startBatchMode();for(const t of e.markers){const a=e.getPortal(t.portalId).latLng,o=e.determineZone(a);e.setZone(t,o)}e.endBatchMode()}function Oi(){const e=Re();e.startBatchMode();for(const t of e.links){const a=e.getPortal(t.fromPortalId).latLng,o=e.determineZone(a);e.setZone(t,o)}e.endBatchMode()}let Di=null;function Ni(e,t){if("and"===t.op)return t.list.every((t=>Ni(e,t)));if("or"===t.op)return t.list.some((t=>Ni(e,t)));if("not"===t.op)return!Ni(e,t.list[0]);if("kind"===t.op)return"link"===t.value?e instanceof q:"marker"===t.value&&e instanceof X;if("in"===t.op&&t.key){const a=t.value instanceof Array?t.value:[t.value];return t.key in e&&a.includes(e[t.key])}return"match"===t.op&&t.key?t.key in e&&"string"==typeof t.value&&"string"==typeof e[t.key]&&e[t.key].toLowerCase().includes(t.value.toLocaleLowerCase()):"=="===t.op&&t.key?t.key in e&&e[t.key]===t.value:"<="===t.op&&t.key?t.key in e&&e[t.key]<=t.value:!(">="!==t.op||!t.key)&&t.key in e&&e[t.key]>=t.value}function Ci(e){return"and"===e.op||"or"===e.op?e.list instanceof Array&&e.list.every((e=>Ci(e))):"not"===e.op?e.list instanceof Array&&1==e.list.length&&Ci(e.list[0]):"kind"===e.op?"link"===e.value||"marker"===e.value:"in"===e.op?e.key&&e.value instanceof Array:"match"===e.op?e.key&&"string"==typeof e.value:"=="===e.op?!!e.key:("<="===e.op||">="===e.op)&&e.key&&"number"==typeof e.value}function yi(e){try{return Ci(e)}catch{return!1}}function Ri(e){return!Di||Ni(e,Di)}const Ii=Kt.extend({statics:{TYPE:"operationChecklist"},SORTBY_KEY:"wasabee-checklist-sortby",SORTASC_KEY:"wasabee-checklist-sortasc",options:{usePane:!0},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),window.map.on("wasabee:filter",this.update,this),window.addHook("portalAdded",Ve),window.addHook("portalDetailsLoaded",je),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:filter",this.update,this),window.removeHook("portalAdded",Ve),window.removeHook("portalDetailsLoaded",je)},_displayDialog:async function(){const e=Re();Xe(e),this.sortable=this.getListDialogContent(e,e.links.concat(e.markers),this.SORTBY_KEY,this.SORTASC_KEY);const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("LOAD PORTALS")]=()=>{Xe(Re(),!0)},t[Se("dialog.checklist.count_fields")]=()=>{this.countFields(Re(),!0)},e.canWrite()&&(t[Se("SET_MARKERS_ZONES")]=()=>{vi()},t[Se("SET_LINKS_ZONES")]=()=>{Oi()}),await this.sortable.done,this.createDialog({title:Se("OP_CHECKLIST",{opName:e.name}),html:this.sortable.table,width:"auto",dialogClass:"ui-resizable wasabee-dialog wasabee-dialog-checklist",buttons:t,id:b.dialogNames.operationChecklist})},update:async function(){if(!this.sortable)return;const e=Re();this.setTitle(Se("OP_CHECKLIST",{opName:e.name})),this.sortable=this.getListDialogContent(e,e.links.concat(e.markers),this.SORTBY_KEY,this.SORTASC_KEY),await this.sortable.done,this.setContent(this.sortable.table)},getFields:function(e){const t=e.canWrite(),a=[{name:this._smallScreen?"#":Se("ORDER"),className:"order",value:e=>e.order,format:(a,o,n)=>{const i=L.DomUtil.create("input");i.value=o,i.disabled=!t,i.type="number",i.step=1,L.DomEvent.on(i,"change",(t=>{L.DomEvent.stop(t),i.value=parseInt(i.value,10),n instanceof q?e.setLinkOrder(n.ID,+i.value):e.setMarkerOrder(n.ID,+i.value)})),a.appendChild(i)}},{name:Se("PORTAL"),value:t=>e.getPortal(t.portalId).name,sort:(e,t)=>e.localeCompare(t),format:(t,a,o)=>{o instanceof q?(t.appendChild(Ti(o,e)),t.colSpan=2):t.appendChild(We(e.getPortal(o.portalId)))}},{name:Se("TYPE"),value:t=>t instanceof q?e.getPortal(t.toPortalId).name:Se(t.type),sort:(e,t)=>e.localeCompare(t),format:(e,a,o)=>{const n=L.DomUtil.create("span",null,e);o.type&&L.DomUtil.addClass(n,o.type),n.textContent=a,o instanceof q?e.style.display="none":o instanceof X&&t&&L.DomEvent.on(e,"click",(e=>{L.DomEvent.stop(e),new Si({marker:o}).enable()}))}},{name:Se("ZONE"),value:e=>e.zone,sort:(e,t)=>e-t,format:(a,o,n)=>{const i=L.DomUtil.create("select",null,a);for(const t of e.zones){const e=L.DomUtil.create("option",null,i);e.textContent=t.name,e.value=t.id,t.id==n.zone&&(e.selected=!0)}i.disabled=!t,L.DomEvent.on(i,"change",(t=>{L.DomEvent.stop(t),e.setZone(n,i.value)}))},smallScreenHide:!0},{name:Se("COMMENT"),value:e=>e.comment,sort:(e,t)=>e.localeCompare(t),format:(a,o,n)=>{o||(o=". . ."),L.DomUtil.create("a",null,a).textContent=o,t&&L.DomEvent.on(a,"click",(t=>{L.DomEvent.stop(t),new ki({target:n,operation:e}).enable()}))},smallScreenHide:!0},{name:Se("ASS_TO"),value:async e=>{if(null!=e.assignedTo&&""!=e.assignedTo){const t=await ut(e.assignedTo);return null!=t?t.getName():"GID: ["+e.assignedTo+"]"}return". . ."},sort:(e,t)=>e.localeCompare(t),format:(t,a,o)=>{L.DomUtil.create("a",null,t).textContent=a,e.canWriteServer()&&L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),new Ai({target:o}).enable()}))},smallScreenHide:!0},{name:Se("STATE"),value:e=>e.state,sort:(e,t)=>e.localeCompare(t),format:(a,o,n)=>{const i=L.DomUtil.create("a",null,a);i.href="#",i.textContent=Se(o),t&&L.DomEvent.on(a,"click",(t=>{L.DomEvent.stop(t),new Li({target:n,opID:e.ID}).enable()}))},smallScreenHide:!0}];return t&&a.push({name:this._smallScreen?Se("dialog.common.commands_short"):Se("dialog.common.commands"),className:"actions",value:e=>typeof e,format:(t,a,o)=>{if(o instanceof q){const a=L.DomUtil.create("a",null,t);a.href="#",a.title=Se("REVERSE"),oi("left-right",a),L.DomEvent.on(a,"click",(t=>{L.DomEvent.stop(t),e.reverseLink(o.fromPortalId,o.toPortalId)}));const n=L.DomUtil.create("a",null,t);n.href="#",n.title=Se("dialog.common.delete"),oi("trash",n),L.DomEvent.on(n,"click",(t=>{L.DomEvent.stop(t),e.removeLink(o.fromPortalId,o.toPortalId)}))}else{const a=L.DomUtil.create("a",null,t);a.href="#",a.title=Se("dialog.common.delete"),oi("trash",a),L.DomEvent.on(a,"click",(t=>{L.DomEvent.stop(t),e.removeMarker(o)}))}}}),a},getListDialogContent:function(e,t,a,o){const n=new pi;return n.fields=this.getFields(e),n.sortByStoreKey=a,n.sortAscStoreKey=o,n.items=t.filter(Ri),n},countFields:function(e,t){const{fieldCount:a,emptyCount:o,emptyFieldLinks:n,linksFromInner:i,coveredPortals:r}=e.getOrderInfo();if(t){const t=L.DomUtil.create("div","field-count");if(n.length){L.DomUtil.create("div",null,t).textContent=Se("dialog.checklist.count_fields.with_empty",{fieldCount:a,emptyCount:o,linkCount:n.length});const i=L.DomUtil.create("ul",null,t);for(const[t,a]of n){const o=L.DomUtil.create("li","empty-field-link",i);o.textContent=a,o.appendChild(Ti(t,e))}}else L.DomUtil.create("div",null,t).textContent=Se("dialog.checklist.count_fields.no_empty",{fieldCount:a});if(i.length){L.DomUtil.create("div",null,t).textContent=Se("dialog.checklist.count_fields.link_from_inside",{count:i.length});const a=L.DomUtil.create("ul",null,t);for(const t of i){const o=r.get(t.fromPortalId),n=L.DomUtil.create("li","inner-link",a);n.append(`${t.order}: `),n.appendChild(Ti(t,e)),n.append(Se("dialog.checklist.count_fields.link_from_inside.covered_at_order",{order:o.order})),n.appendChild(Ti(o,e))}}n.length||i.length?Oe(t,!0):ve(t,!0)}}}),Mi=Ii.extend({statics:{TYPE:"linkListDialog"},SORTBY_KEY:"wasabee-linklist-sortby",SORTASC_KEY:"wasabee-linklist-sortasc",options:{usePane:!0},getFields:function(e){const t=Ii.prototype.getFields.call(this,e);t[2].name="";const a=[{name:Se("dialog.link_list.length"),value:t=>t.length(e),format:(e,t)=>{e.classList.add("length"),e.textContent=t>1e3?(t/1e3).toFixed(1)+"km":t.toFixed(1)+"m"},smallScreenHide:!0},{name:Se("dialog.link_list.level"),title:Se("MIN_SRC_PORT_LVL"),value:t=>t.length(e),format:(t,a,o)=>{t.appendChild(function(e,t){const a=e.length(t);let o=Se("UNKNOWN");const n=L.DomUtil.create("span",null);if(a>6881280)o=Se("IMPOSSIBLE");else if(a>1966080)o=Se("VRLA"),n.title=Se("VRLA DESC"),n.classList.add("help");else if(a>655360)o=Se("LA"),n.title=Se("LA DESC"),n.classList.add("help");else{const e=Math.max(1,Math.ceil(8*Math.pow(a/160,.25))/8),t=8*(e-Math.floor(e));o="L"+e,0!=t&&(1&t||(o+=" "),1&t||2&t||(o+=" "),o=o+" = L"+Math.floor(e)+"0⅛¼⅜½⅝¾⅞".charAt(t))}return n.textContent=o,n}(o,e))},smallScreenHide:!0}];return t.slice(0,3).concat(a,t.slice(3))},_displayDialog:async function(){const e=Re();Xe(e);const t=e.getLinkListFromPortal(this.options.portal),a=t.filter((e=>e.fromPortalId==this.options.portal.id)).length,o=t.length-a;this.sortable=this.getListDialogContent(e,t,this.SORTBY_KEY,this.SORTASC_KEY);const n={};n[Se("CLOSE")]=()=>{this.closeDialog()},n[Se("dialog.link_list.all_from")]=()=>{this._setAllLinksDirection(!0)},n[Se("dialog.link_list.all_to")]=()=>{this._setAllLinksDirection(!1)},await this.sortable.done,this.createDialog({title:Se("LINKS2",{portalName:Fe(this.options.portal),outgoing:a,incoming:o}),html:this.sortable.table,width:"auto",dialogClass:"checklist",buttons:n,id:b.dialogNames.linkList})},update:async function(){if(!this.sortable)return;const e=Re(),t=e.getLinkListFromPortal(this.options.portal),a=t.filter((e=>e.fromPortalId==this.options.portal.id)).length,o=t.length-a;this.sortable=this.getListDialogContent(e,t,this.SORTBY_KEY,this.SORTASC_KEY),await this.sortable.done,this.setContent(this.sortable.table),this.setTitle(Se("LINKS2",{portalName:Fe(this.options.portal),outgoing:a,incoming:o}))},_setAllLinksDirection(e){const t=Re();t.startBatchMode();const a=t.getLinkListFromPortal(this.options.portal);for(const o of a)e&&o.toPortalId===this.options.portal.id&&t.reverseLink(o),e||o.fromPortalId!==this.options.portal.id||t.reverseLink(o);t.endBatchMode()}}),Pi=Mi,xi=Kt.extend({statics:{TYPE:"sendTargetDialog"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this._sendTarget()},this._html=L.DomUtil.create("div",null),this._setup(),this.createDialog({title:Se("SEND TARGET AGENT"),html:this._html,width:"auto",dialogClass:"sendtarget",buttons:e,id:b.dialogNames.assign,autofocus:!0})},_setup:async function(){const e=L.DomUtil.create("div","desc",this._html),t=await this._getAgentMenu(this.options.target.assignedTo);this._targettype="ad hoc target";const a=Re();if(this.options.target instanceof X){this._portal=a.getPortal(this.options.target.portalId),this._targettype=this.options.target.type,e.appendChild(We(this._portal));const o=L.DomUtil.create("label",null);o.textContent=Se("SEND TARGET AGENT"),t.prepend(o)}if(this.options.target instanceof ee){this._portal=this.options.target,this._targettype="anchor",e.appendChild(We(this._portal));const a=L.DomUtil.create("label",null);a.textContent=Se("SEND TARGET AGENT"),t.prepend(a)}this._html.appendChild(t)},_buildContent:function(){const e=L.DomUtil.create("div");return"string"==typeof this._label?e.textContent=this._label:e.appendChild(this._label),e},_getAgentMenu:async function(e){const t=L.DomUtil.create("div","wasabee-agent-menu"),a=L.DomUtil.create("select",null,t);let o=a.appendChild(L.DomUtil.create("option",null));o.value="",o.textContent=Se("UNASSIGNED");const n=new Set,i=Re();a.addEventListener("change",(()=>{this._value=a.value}));const r=await pt(),s=await ht(i.teamlist.map((e=>e.teamid)).filter((e=>r.teamJoined(e))),300);for(const t of s)for(const o of t.agents)if(!n.has(o.id)){n.add(o.id);const t=L.DomUtil.create("option");t.value=o.id,t.textContent=o.getName(),o.id==e&&(t.selected=!0),a.appendChild(t)}return t},_sendTarget:function(){this._value&&this._portal?Dt(this._value,this._portal,this._targettype).then((()=>{ve(Se("TARGET SENT")),this.closeDialog()})).catch((e=>De(e))):this.closeDialog()}}),Ui=xi,Bi=L.Marker.extend({type:"portal",initialize:function(e){const t=Re().getPortal(e.portalId);e.title=t.name,L.Marker.prototype.initialize.call(this,t.latLng,e),this.bindPopup((e=>e._popupContent()),{className:"wasabee-popup",closeButton:!1}),this.off("click",this._openPopup),window.registerMarkerForOMS(this),this.on("spiderfiedclick",this._openPopup),this.on("spiderfiedclick",this._onClick)},_onClick:function(){const e=Re().getPortal(this.options.portalId);e&&window.map.fire("wasabee:portal:click",{portal:e})},_popupContent:function(){return L.DomUtil.create("div",`wasabee-${this.type}-popup`)},_popupPortalComments:function(e,t,a){const o=L.DomUtil.create("div","wasabee-portal-comment",e),n=L.DomUtil.create("a",null,o);if(n.textContent=t.comment||Se("SET_PORTAL_COMMENT"),a&&(n.href="#",L.DomEvent.on(n,"click",this._setPortalComment,this)),t.hardness){const o=L.DomUtil.create("div","wasabee-portal-hardness",e),n=L.DomUtil.create("a",null,o);n.textContent=t.hardness,a&&(n.href="#",L.DomEvent.on(n,"click",this._setPortalComment,this))}},_setPortalComment:function(e){L.DomEvent.stop(e);const t=Re(),a=t.getPortal(this.options.portalId);new ki({target:a,operation:t}).enable(),this.closePopup()},_assignButton:function(e,t,a){const o=L.DomUtil.create("button",null,e);o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new Ai({target:a}).enable(),this.closePopup()}))},_deleteButton:function(e,t){const a=L.DomUtil.create("button",null,e);a.textContent=t,L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),this._deleteAction&&this._deleteAction(),this.closePopup()}))},_sendTargetButton:function(e,t,a){const o=L.DomUtil.create("button",null,e);o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new Ui({target:a}).enable(),this.closePopup()}))},_mapButton:function(e,t){const a=L.DomUtil.create("button",null,e);a.textContent=t,L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),this.closePopup();const t=this.getLatLng();void 0!==window.android&&window.android&&window.android.intentPosLink?window.android.intentPosLink(+t.lat,+t.lng,window.map.getZoom(),this.options.title,!0):window.open("https://www.google.com/maps/search/?api=1&query="+t.lat+","+t.lng)}))}}),Ki=Bi.extend({type:"anchor",initialize:function(e,t,a="main"){"main"===a&&(a=t.color);const o=L.divIcon({className:"wasabee-anchor-icon",shadowUrl:null,iconAnchor:[12,41],iconSize:[25,41],popupAnchor:[0,-35],html:L.Util.template('',{color:"main"===a?window.plugin.wasabee.skin.defaultOperationColor:a})});Bi.prototype.initialize.call(this,{portalId:e,id:e,icon:o,color:a})},_popupContent:function(){const e=Re(),t=e.canWrite(),a=e.getPortal(this.options.portalId),o=Bi.prototype._popupContent.call(this),n=L.DomUtil.create("div","desc",o);n.appendChild(We(a)),this._popupPortalComments(n,a,t);const i=L.DomUtil.create("div","info-block",o),r=L.DomUtil.create("div","key-required",i),s=e.KeysOnHandForPortal(a.id);let l=0;const c={};for(const t of e.links){if(!Ri(t))continue;const e=t.assignedTo||"[unassigned]";t.toPortalId==this.options.portalId&&(t.completed||(c[e]=(c[e]||0)+1,l++))}if(r.textContent=Se("popup.anchor.keys",{onHand:s,required:l}),s=l)for(const e in c)if(!d[e]||d[e]{L.DomEvent.stop(e),new Pi({portal:t}).enable(),this.closePopup()}))},_swapButton:function(e){const t=Re(),a=t.getPortal(this.options.portalId),o=L.DomUtil.create("button","swap",e);o.textContent=Se("SWAP"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),function(e,t){const a=Ze();if(!a)return void De(Se("SELECT PORTAL"));if(t.id===a.id)return void De(Se("SELF SWAP"));const o=L.DomUtil.create("div",null);o.textContent=Se("SWAP PROMPT"),o.appendChild(We(t)),L.DomUtil.create("span",null,o).textContent=Se("SWAP WITH"),o.appendChild(We(a)),L.DomUtil.create("span",null,o).textContent="?",new si({title:Se("SWAP TITLE"),label:o,type:"anchor",callback:()=>{e.swapPortal(t,a)}}).enable()}(t,a),this.closePopup()}))},_dupButton:function(e){const t=Re(),a=t.getPortal(this.options.portalId),o=L.DomUtil.create("button","duplicate",e);o.textContent=Se("popup.anchor.duplicate"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),function(e,t){const a=Ze();a?t.id!==a.id&&e.duplicateAnchor(t,a):De(Se("SELECT PORTAL"))}(t,a),this.closePopup()}))},_deleteAction:function(){const e=Re(),t=e.getPortal(this.options.portalId);!function(e,t){const a=L.DomUtil.create("div",null);a.textContent=Se("DELETE ANCHOR PROMPT"),a.appendChild(We(t)),new si({title:Se("DELETE ANCHOR TITLE"),label:a,type:"anchor",callback:()=>{e.removeAnchor(t.id)}}).enable()}(e,t)}}),Gi=L.GeodesicPolyline.extend({initialize:function(e,t){const a=e.getLatLngs(t);let o=e.getColor(t);"main"==o&&(o=window.plugin.wasabee.skin.defaultOperationColor),o=ei(o);const n=L.extend({color:o,opID:t.ID,linkID:e.ID},window.plugin.wasabee.skin.linkStyle);e.assignedTo&&(n.dashArray=n.assignedDashArray),L.GeodesicPolyline.prototype.initialize.call(this,a,n),this._wlink=e,this.bindPopup((e=>e._getPopup()),{className:"wasabee-popup",closeButton:!1})},_getPopup:function(){const e=Re(),t=this._wlink,a=L.DomUtil.create("div","wasabee-link-popup");L.DomUtil.create("div",null,a).appendChild(Ti(t,e)),t.comment&&(L.DomUtil.create("div","enl",a).textContent=t.comment);const o=L.DomUtil.create("div","info-block",a);L.DomUtil.create("div","link-order",o).textContent="#"+t.order;const n=t.length(e);L.DomUtil.create("div","link-length",o).textContent=n>1e3?(n/1e3).toFixed(1)+"km":n.toFixed(1)+"m";const i=L.DomUtil.create("div","buttonset",a);if(e.canWrite()){const a=L.DomUtil.create("button",null,i);a.textContent=Se("DELETE_LINK"),L.DomEvent.on(a,"click",(a=>{L.DomEvent.stop(a),e.removeLink(t.fromPortalId,t.toPortalId)}));const o=L.DomUtil.create("button",null,i);o.textContent=Se("REVERSE"),L.DomEvent.on(o,"click",(a=>{L.DomEvent.stop(a),e.reverseLink(t.fromPortalId,t.toPortalId)}))}if(e.canWriteServer()){const e=L.DomUtil.create("button",null,i);e.textContent=Se("ASSIGN"),L.DomEvent.on(e,"click",(e=>{L.DomEvent.stop(e),new Ai({target:t}).enable()}))}return a}}),Hi=Bi.extend({type:"marker",initialize:function(e){Bi.prototype.initialize.call(this,{portalId:e.portalId,id:e.ID,state:e.state,icon:L.divIcon({className:`wasabee-marker-icon ${e.type} wasabee-status-${e.state}`,shadowUrl:null,iconSize:L.point(24,40),iconAnchor:L.point(12,40),popupAnchor:L.point(-1,-48)})})},setState:function(e){e!=this.options.state&&(L.DomUtil.removeClass(this._icon,`wasabee-status-${this.options.state}`),L.DomUtil.addClass(this._icon,`wasabee-status-${e}`),this.options.state=e)},_popupContent:function(){const e=Re(),t=e.getMarker(this.options.id),a=e.getPortal(t.portalId);if(null==a)return console.log("null portal getting marker popup"),L.DomUtil.create("div","wasabee-marker-popup").textContent="invalid portal";const o=e.canWrite(),n=Bi.prototype._popupContent.call(this),i=L.DomUtil.create("div","desc",n),r=L.DomUtil.create("span",`wasabee-marker-popup-kind ${t.type}`,i);r.textContent=Se(t.type),i.appendChild(We(a)),o&&(r.href="#",L.DomEvent.on(r,"click",this._setMarkerType,this)),this._popupMarkerComment(i,t,o),this._popupPortalComments(i,a,o),this._popupAssignState(n,t);const s=L.DomUtil.create("div","wasabee-marker-buttonset",n);return o&&this._deleteButton(s,Se("DELETE_ANCHOR")),e.canWriteServer()&&this._assignButton(s,Se("ASSIGN"),t),o&&this._stateButton(s,t),o&&this._swapButton(s,t),e.isOnCurrentServer()&&this._sendTargetButton(s,Se("SEND TARGET"),t),this._mapButton(s,Se("ANCHOR_GMAP")),n},_popupMarkerComment:function(e,t,a){const o=L.DomUtil.create("div","wasabee-marker-popup-comment",e);o.textContent=t.comment||Se("SET_COMMENT"),a&&L.DomEvent.on(o,"click",this._setComment,this)},_popupAssignState:async function(e,t){const a=L.DomUtil.create("div","wasabee-popup-assignment",e);if("completed"!=t.state&&t.assignedTo)try{const e=await ut(t.assignedTo);a.textContent=Se("ASS_TO"),e?a.appendChild(ii(e)):a.textContent+=" "+t.assignedTo}catch(e){console.error(e)}},_stateButton:function(e,t){const a=Re(),o=L.DomUtil.create("button",null,e);o.textContent=Se("popup.marker.state_button"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new Li({target:t,opID:a.ID}).enable(),this.closePopup()}))},_swapButton:function(e,t){const a=Re(),o=L.DomUtil.create("button",null,e);o.textContent=Se("SWAP"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),function(e,t){const a=Ze();if(!a)return void De(Se("SELECT PORTAL"));if(t.portalId===a.id)return void De(Se("SELF SWAP"));const o=e.getPortal(t.portalId),n=L.DomUtil.create("div",null);n.textContent=Se("swap.marker.prompt"),n.appendChild(We(o)),L.DomUtil.create("span",null,n).textContent=Se("SWAP WITH"),n.appendChild(We(a)),L.DomUtil.create("span",null,n).textContent="?",new si({title:Se("swap.marker.title"),label:n,type:"anchor",callback:()=>{e.startBatchMode(),e.removeMarker(t),e.addMarker(t.type,a,{zone:t.zone,comment:t.comment,assign:t.assignedTo}),X.isDestructMarkerType(t.type)&&z.removeBlocker(e,o.id),e.endBatchMode()}}).enable()}(a,t),this.closePopup()}))},_deleteAction:function(){const e=Re(),t=e.getPortal(this.options.portalId),a=e.getMarker(this.options.id);!function(e,t,a){const o=L.DomUtil.create("div",null);o.textContent=Se("DELETE MARKER PROMPT"),o.appendChild(We(a)),new si({title:Se("DELETE MARKER TITLE"),label:o,type:"marker",callback:()=>{e.removeMarker(t),window.map.fire("wasabee:crosslinks")}}).enable()}(e,a,t)},_setComment:function(e){L.DomEvent.stop(e);const t=Re(),a=t.getMarker(this.options.id);new ki({target:a,operation:t}).enable(),this.closePopup()},_setMarkerType:function(e){L.DomEvent.stop(e);const t=Re().getMarker(this.options.id);new Si({marker:t}).enable(),this.closePopup()}}),zi={stroke:!1,opacity:.7,fill:!0},Fi=L.FeatureGroup.extend({initialize:function(e){e.points.sort(((e,t)=>e.position-t.position));const t=[];if(1==e.points.length)t.push(L.marker(e.points[0],{icon:new L.DivIcon.ColoredSvg(e.color),title:e.name}));else if(2==e.points.length)t.push(L.polyline(e.points,{color:e.color}));else if(e.points.length>2){const a=L.polygon(e.points,{color:e.color,shapeOptions:zi});a.bindTooltip(e.name,{className:"ui-tooltip wasabee-zone-tooltip",sticky:!0}),t.push(a)}L.FeatureGroup.prototype.initialize.call(this,t)},onAdd(e){L.FeatureGroup.prototype.onAdd.call(this,e),this.bringToBack()}}),Wi=window.plugin.wasabee;function Yi(){const e=Re();!function(e){if(!1===window.isLayerGroupDisplayed("Wasabee Draw Portals"))return;if(!e.anchors||0==e.anchors.length)return void Wi.portalLayerGroup.clearLayers();const t=new Set,a=new Map;for(const o of e.links){if(!Ri(o))continue;t.add(o.fromPortalId),t.add(o.toPortalId);const n=o.fromPortalId,i=a.get(n)||[],r=ei("main"===o.color?"main"===e.color?Wi.skin.defaultOperationColor:e.color:o.color);i.push(r),a.set(n,i)}const o=new Map;for(const e of Wi.portalLayerGroup.getLayers()){const t=a.get(e.options.portalId),n=t?ti(t):"main";e.options.color!=n?Wi.portalLayerGroup.removeLayer(e._leaflet_id):o.set(e.options.id,e._leaflet_id)}for(const n of t)if(o.has(n))o.delete(n);else{const t=a.get(n),o=t?ti(t):"main";new Ki(n,e,o).addTo(Wi.portalLayerGroup)}for(const e of o.values())Wi.portalLayerGroup.removeLayer(e)}(e),function(e){if(!1===window.isLayerGroupDisplayed("Wasabee Draw Markers"))return;if(!e.markers||0==e.markers.length)return void Wi.markerLayerGroup.clearLayers();const t=new Map;for(const e of Wi.markerLayerGroup.getLayers())t.set(e.options.id,e._leaflet_id);for(const a of e.markers)Ri(a)&&(t.has(a.ID)?(Wi.markerLayerGroup.getLayer(t.get(a.ID)).setState(a.state),t.delete(a.ID)):new Hi(a).addTo(Wi.markerLayerGroup));for(const e of t.values())Wi.markerLayerGroup.removeLayer(e)}(e),function(e){if(!1!==window.isLayerGroupDisplayed("Wasabee Draw Links")&&(Wi.linkLayerGroup.clearLayers(),e.links&&0!=e.links.length))for(const t of e.links)Ri(t)&&new Gi(t,e).addTo(Wi.linkLayerGroup)}(e),function(e){if(Wi.zoneLayerGroup.clearLayers(),e.zones&&0!=e.zones.length){for(const t of e.zones)new Fi(t).addTo(Wi.zoneLayerGroup);Wi.zoneLayerGroup.bringToBack()}}(e)}async function Zi(e){if(!1===window.isLayerGroupDisplayed("Wasabee Background Ops"))return;Wi.backgroundOpsGroup.clearLayers();const t=Re().ID;void 0===e&&(e=await Be());for(const a of e){if(a===t)continue;const e=await _e.load(a);e.background&&qi(e)}}function qi(e,t,a){if(e&&e.links&&0!=e.links.length){t||(t=Wi.backgroundOpsGroup),a||(a=Wi.skin.backgroundLinkStyle);for(const o of e.links){const n=o.getLatLngs(e);n&&new L.GeodesicPolyline(n,a).addTo(t)}}}async function Vi(){if(!1===window.isLayerGroupDisplayed("Wasabee Agents"))return;if(!$.isLoggedIn())return;const e=ji();let t=[];const a=await pt();await ht(a.Teams.map((e=>e.ID)),15);for(const o of a.Teams){const a=await Qi(o.ID,e,t);t=t.concat(a)}for(const a of t)e.delete(a);for(const[t,a]of e)console.debug("removing stale agent",t),Wi.agentLayerGroup.removeLayer(a)}function ji(){const e=new Map;for(const t of Wi.agentLayerGroup.getLayers())e.set(t.options.id,Wi.agentLayerGroup.getLayerId(t));return e}async function Qi(e,t,a){const o=[];if(!1===window.isLayerGroupDisplayed("Wasabee Agents"))return o;void 0===a&&(a=[]),void 0===t&&(t=ji());try{const n=await mt(e,15);if(null==n)return o;for(const e of n.agents)!a.includes(e.id)&&Ji(e,t)&&o.push(e.id)}catch(e){console.error(e)}return o}function Ji(e,t=ji()){if(!e.id||!e.lat&&!e.lng)return!1;if(t.has(e.id)){const a=t.get(e.id),o=Wi.agentLayerGroup.getLayer(a),n=o.getLatLng();e.lat==n.lat&&e.lng==n.lng||o.setLatLng(e.latLng)}else{const a=new ui(e);a.addTo(Wi.agentLayerGroup),t.set(e.id,Wi.agentLayerGroup.getLayerId(a))}return!0}function Xi(){if("true"===localStorage[w.POPULATE_OPPORTALS]){const e=Re(),t=[];for(const a of e.opportals)a.id in window.portals||t.push([a.id,-1,["p","N",Math.trunc(1e6*+a.lat),Math.trunc(1e6*+a.lng)]]);window.mapDataRequest.render.processGameEntities(t,"core")}window.removeHook("mapDataEntityInject",Xi)}function $i(){if("true"===localStorage[w.POPULATE_OPPORTALS]){const e=Re();for(const t of e.opportals)window.mapDataRequest.render.seenPortalsGuid[t.id]=!0}}class er{constructor(){this.anchor1=null,this.anchor2=null}getName(){return Se("toolbar.quick_draw.mode.multilayer")}onPortalClick(e,t,a){this.anchor1?this.anchor2?this.anchor1.id!==t.id&&this.anchor2.id!==t.id&&(e.startBatchMode(),e.addLink(t,this.anchor1,{order:e.nextOrder,color:a.color}),e.addLink(t,this.anchor2,{order:e.nextOrder,color:a.color}),e.endBatchMode()):this.anchor1.id!==t.id&&(e.addLink(t,this.anchor1,{description:Se("QDBASE"),order:e.nextOrder,color:a.color}),this.anchor2=t,localStorage[w.ANCHOR_TWO_KEY]=JSON.stringify(this.anchor2)):(this.anchor1=t,localStorage[w.ANCHOR_ONE_KEY]=JSON.stringify(this.anchor1))}getGuides(e){return this.anchor1?this.anchor2?[[this.anchor1.latLng,e],[this.anchor2.latLng,e]]:[[this.anchor1.latLng,e]]:[]}getTooltip(){return this.anchor1?this.anchor2?Se("QDCONT"):Se("QDNEXT"):Se("QDSTART")}}class tr{constructor(){this.prev=null}getName(){return Se("toolbar.quick_draw.mode.singlelink")}onPortalClick(e,t,a){this.prev&&this.prev.id!==t.id&&e.addLink(t,this.prev,{order:e.nextOrder,color:a.color}),this.prev=t}getGuides(e){return this.prev?[[this.prev.latLng,e]]:[]}getTooltip(){return this.prev?Se("toolbar.quick_draw.tooltip.single_mode.next"):Se("toolbar.quick_draw.tooltip.single_mode.first")}}class ar{constructor(){this.anchor=null}getName(){return Se("toolbar.quick_draw.mode.starburst")}onPortalClick(e,t,a){this.anchor?this.anchor.id!==t.id&&e.addLink(t,this.anchor,{order:e.nextOrder,color:a.color}):this.anchor=t}getGuides(e){return this.anchor?[[this.anchor.latLng,e]]:[]}getTooltip(){return this.anchor?Se("toolbar.quick_draw.tooltip.star_mode.portal"):Se("toolbar.quick_draw.tooltip.star_mode.anchor")}}class or{constructor(e){this.anchor=null,this.op=e}getName(){return Se("toolbar.quick_draw.mode.burst")}getCandidates(e,t){const a=[];if(2==e.anchors.length)a.push(e.getPortal(e.anchors[0])),a.push(e.getPortal(e.anchors[1]));else for(const o of e.anchors){const n=e.getPortal(o);e.links.every((a=>!ge([t,n.latLng],a.getLatLngs(e))))&&a.push(n)}return a}onPortalClick(e,t,a){if(0==e.anchors.length)this.anchor?(e.addLink(t,this.anchor,{order:e.nextOrder,color:a.color}),this.anchor=null):this.anchor=t;else{const o=this.getCandidates(e,t.latLng).map((e=>[window.map.distance(t.latLng,e.latLng),e]));o.sort(((e,t)=>t[0]-e[0])),e.startBatchMode();for(const[,n]of o)e.addLink(t,n,{order:e.nextOrder,color:a.color});e.endBatchMode()}}getGuides(e){return 0==this.op.anchors.length&&this.anchor?[[e,this.anchor.latLng]]:this.getCandidates(this.op,e).map((t=>[e,t.latLng]))}getTooltip(){return Se("toolbar.quick_draw.tooltip.burst.portal")}}class nr extends Ht{constructor(e){super(e),this.needWritePermission=!0,this.title=Se("QD TITLE"),this.handler=new ir({button:this}),this._container=e,this.type=nr.TYPE,this.button=this._createButton({title:this.title,container:e,className:"wasabee-toolbar-quickdraw",callback:this.handler.enable,context:this.handler}),this.picker=L.DomUtil.create("input","hidden-color-picker"),this.picker.type="color",this.picker.value="#000000",this.picker.setAttribute("list","wasabee-colors-datalist"),L.DomEvent.on(this.picker,"change",(e=>{this.handler._nextDrawnLinksColor=e.target.value})),this.setSubActions(this.getSubActions()),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("QD TITLE"),this.setSubActions(this.getSubActions()),this.handler.updateTooltip()})),this.update()}getSubActions(){const e={title:Se("QD BUTTON CHANGE COLOR"),text:Se("QD CHANGE COLOR"),html:this.picker,callback:()=>{this.picker.click()},context:null};return[{title:Se("QD BUTTON TOGGLE MODE"),text:Se("toolbar.quick_draw.toggle.text",{mode:this.handler.getMode().getName()}),callback:()=>{this.handler._toggleMode()},context:null},e,{title:Se("QD BUTTON END"),text:Se("QD END"),callback:this.handler.disable,context:this.handler}]}enable(){Ht.prototype.enable.call(this),this.button.classList.add("active")}disable(){Ht.prototype.disable.call(this),this.handler.enabled()&&this.handler.disable.call(this.handler),this.button.classList.remove("active")}}nr.TYPE="QuickdrawButton";class ir extends L.Handler{constructor(e){super(window.map),L.setOptions(this,e),this._modes=[er,tr,ar,or]}enable(){return this.enabled()?(this.disable(),this):(super.enable(),this.options.button.enable(),dt({id:"analytics",action:"quickdrawStart"}),this)}disable(){return this.enabled()?(super.disable(),this.options.button.disable(),dt({id:"analytics",action:"quickdrawEnd"}),this):this}addHooks(){L.DomUtil.disableTextSelection(),this._tooltip=new Ut(this._map),this._guideLayerGroup=new L.LayerGroup,window.addLayerGroup("Wasabee Quickdraw Guide",this._guideLayerGroup,window.isSmartphone()),this._operation=Re(),this._nextDrawnLinksColor=this._operation.color,this._opID=this._operation.ID,this._currentMode=new this._modes[0](this._operation),this._tooltip.updateContent(this._currentMode.getTooltip()),window.map.on("wasabee:portal:click",this._portalClicked,this),window.map.on("wasabee:op:select",this._opchange,this),window.map.on("keyup",this._keyUpListener,this),window.map.on("mousemove",this._onMouseMove,this)}removeHooks(){window.removeLayerGroup(this._guideLayerGroup),L.DomUtil.enableTextSelection(),this._tooltip.dispose(),this._tooltip=null,window.map.off("wasabee:portal:click",this._portalClicked,this),window.map.off("wasabee:op:select",this._opchange,this),window.map.off("keyup",this._keyUpListener,this),window.map.off("mousemove",this._onMouseMove,this)}getMode(){return this._currentMode||(this._currentMode=new this._modes[0](this._operation)),this._currentMode}updateTooltip(){this.enabled()&&this._tooltip.updateContent(this._currentMode.getTooltip())}_opchange(){this.enabled()&&Re().ID!=this._opID&&(console.log("operation changed mid-quickdraw - disabling"),this.disable())}_keyUpListener(e){if(this.enabled())switch(e.originalEvent.key){case"Escape":case"Esc":this.disable();break;case"/":case"g":dt({id:"analytics",action:"quickdrawGuides"}),this._guideLayerToggle();break;case"t":case"m":dt({id:"analytics",action:"quickdrawMode"}),this._toggleMode();break;case"X":dt({id:"analytics",action:"quickdrawClearAll"}),this._operation.clearAllLinks(),window.map.fire("wasabee:crosslinks")}}_onMouseMove(e){e.latlng&&this._guideUpdate(e)}_guideUpdate(e){this._guideLayerGroup.clearLayers();for(const t of this._currentMode.getGuides(e.latlng))L.polyline(t,w.QUICKDRAW_GUIDE_STYLE).addTo(this._guideLayerGroup);const t=[];for(const e of this._guideLayerGroup.getLayers()){const a=e.getLatLngs()[0].distanceTo(e.getLatLngs()[1]);t.push(a>1e3?(.001*a).toFixed(2)+" km":a.toFixed(0)+" m")}if(0===t.length)return;const a=document.createDocumentFragment();a.append(t.join(" / "),L.DomUtil.create("br"),this._currentMode.getTooltip()),this._tooltip.updateContent(a,!0)}_guideLayerToggle(){window.map.hasLayer(this._guideLayerGroup)?this._guideLayerGroup.remove():(this._guideLayerGroup.addTo(window.map),window.mapDataRequest.render.bringPortalsToFront())}_portalClicked(e){const t=e.portal;t instanceof ee?(this._currentMode.onPortalClick(this._operation,t,{color:this._nextDrawnLinksColor}),this._tooltip.updateContent(this._currentMode.getTooltip())):this._tooltip.updateContent(Se("toolbar.quick_draw.tooltip.portal_fail"))}_toggleMode(){this._modes.push(this._modes.shift()),this._currentMode=new this._modes[0](this._operation),this._guideLayerGroup.clearLayers(),this._tooltip.updateContent(this._currentMode.getTooltip()),this.options.button.setSubActions(this.options.button.getSubActions())}}const rr=nr,sr=Kt.extend({statics:{TYPE:"promptDialog"},options:{title:Se("NO_TITLE"),label:Se("NO_LABEL"),placeholder:"",current:"",suggestions:[],nonEmpty:!1},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this)},_submit:function(){this.options.nonEmpty&&!this.inputField.value||(this.options.callback&&this.options.callback(),this.closeDialog())},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this._submit()},e[Se("CANCEL")]=()=>{this.options.cancelCallback&&this.options.cancelCallback(),this.closeDialog()},this.createDialog({title:this.options.title,html:this._buildContent(),width:"auto",dialogClass:"prompt",buttons:e,autofocus:!0})},_buildContent:function(){const e=L.DomUtil.create("form","container");if("string"==typeof this.options.label?L.DomUtil.create("label",null,e).textContent=this.options.label:e.appendChild(this.options.label),this.inputField=L.DomUtil.create("input",null,e),this.inputField.id="inputField",this.inputField.placeholder=this.options.placeholder,this.inputField.value=this.options.current,this.inputField.required=this.options.nonEmpty,this.options.suggestions){const t=L.DomUtil.create("datalist",null,e);t.id="wasabee-prompt-suggestions";for(const e of this.options.suggestions){const a=L.DomUtil.create("option",null,t);"string"==typeof e?a.value=e:(a.textContent=e.text,a.value=e.value)}this.inputField.setAttribute("list","wasabee-prompt-suggestions")}return L.DomEvent.on(e,"submit",this._submit,this),e}}),lr=Kt.extend({statics:{TYPE:"teamMembershipList"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:team:update",this.update,this),window.map.on("wasabee:logout",this.closeDialog,this),this._displayDialog().catch((e=>{console.error(e),De(e)}))},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:team:update",this.update,this),window.map.off("wasabee:logout",this.closeDialog,this)},_displayDialog:async function(){this._table=this._setupTable();const e=await mt(this.options.teamID,10);this._table.items=e.agents;const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:e.name,html:this._table.table,width:"auto",dialogClass:"teamlist",buttons:t})},update:async function(){const e=await mt(this.options.teamID,10);this._table.items=e.agents,this.setTitle(e.name)},_setupTable:function(){const e=new pi;return e.fields=[{name:Se("AGENT"),value:e=>e.getName(),sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>e.appendChild(ii(a))},{name:Se("COMMENT"),value:e=>e.comment,sort:(e,t)=>e.localeCompare(t)},{name:Se("dialog.team_members.location"),value:e=>e.shareLocation,sort:(e,t)=>e.localeCompare(t),format:(e,t)=>{t&&(e.textContent="✅")}},{name:Se("dialog.team_members.wd_keys"),value:e=>e.shareWDKeys,sort:(e,t)=>e.localeCompare(t),format:(e,t)=>{t&&(e.textContent="✅")}}],e.sortBy=0,e}}),cr=lr,dr=Kt.extend({statics:{TYPE:"manageTeamDialog"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:team:update",this.update,this),window.map.on("wasabee:logout",this.closeDialog,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:team:update",this.update,this),window.map.off("wasabee:logout",this.closeDialog,this)},_setupTable:async function(){const e=new pi;return e.fields=[{name:Se("AGENT"),value:e=>e.getName(),sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>e.appendChild(ii(a))},{name:Se("TEAM STATE"),value:e=>e.shareLocation,sort:(e,t)=>e&&!t},{name:Se("COMMENT"),value:e=>e.comment,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e);const o=new sr({title:Se("dialog.agent_comment.title",{agentName:a.name}),label:Se("dialog.agent_comment.text"),callback:async()=>{try{await function(e,t,a){const o=new FormData;return o.append("squad",a),Mt(`/api/v1/team/${t}/${e}/comment`,o)}(a.id,this.options.team.ID,o.inputField.value),await mt(this.options.team.ID,0),window.map.fire("wasabee:team:update")}catch(e){console.error(e),De(e)}},current:t,placeholder:"boots"});o.enable()}))}},{name:Se("REMOVE"),value:e=>e.id,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=L.DomUtil.create("button",null,e);o.textContent=Se("REMOVE"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new si({title:Se("dialog.remove_agent.title",{agentName:a.name}),label:Se("dialog.remove_agent.text",{agentName:a.name,teamName:this.options.team.Name}),type:"agent",callback:async()=>{try{await(e=t,a=this.options.team.ID,xt(`/api/v1/team/${a}/${e}`)),await mt(this.options.team.ID,0)}catch(e){console.error(e)}var e,a;window.map.fire("wasabee:team:update")}}).enable()}))}}],e.sortBy=0,await this._refreshTeam(e),e},_refreshTeam:async function(e){try{const t=(await mt(this.options.team.ID,5)).agents;t&&t.length>0&&(e.items=t)}catch(e){console.error(e)}},update:async function(){const e=await this._dialogContent();this.setContent(e),this.setTitle(Se("MANAGE_TEAM",{teamName:this.options.team.Name}))},_dialogContent:async function(){const e=L.DomUtil.create("div","container"),t=L.DomUtil.create("div","list",e),a=await this._setupTable();t.appendChild(a.table),await a.done;const o=await mt(this.options.team.ID);this.options.team.Name=o.name,L.DomUtil.create("label",null,e).textContent=Se("ADD_AGENT");const n=L.DomUtil.create("input",null,e);n.placeholder=Se("INGNAME_GID");const i=L.DomUtil.create("button",null,e);i.textContent=Se("ADD"),L.DomEvent.on(i,"click",(async e=>{L.DomEvent.stop(e);try{await(t=n.value,a=this.options.team.ID,Mt(`/api/v1/team/${a}/${t}`,new FormData)),await mt(this.options.team.ID,0),ve(Se("ADD_SUCC_INSTR")),window.map.fire("wasabee:team:update")}catch(e){console.error(e),De(e)}var t,a})),L.DomUtil.create("label",null,e).textContent=Se("RENAME_TEAM");const r=L.DomUtil.create("input",null,e);r.placeholder=Se("BAT_TOAD"),r.value=o.name;const s=L.DomUtil.create("button",null,e);s.textContent=Se("RENAME"),L.DomEvent.on(s,"click",(async e=>{L.DomEvent.stop(e);try{await function(e,t){const a=new FormData;return a.append("teamname",t),Pt(`/api/v1/team/${e}/rename`,a)}(o.id,r.value),await mt(this.options.team.ID,0),window.map.fire("wasabee:team:update")}catch(e){console.error(e),De(e)}})),L.DomUtil.create("label",null,e).textContent=Se("ROCKS_COM");const l=L.DomUtil.create("input",null,e);l.placeholder="xxyyzz.com",o.rc&&(l.value=o.rc),L.DomUtil.create("label",null,e).textContent=Se("API_KEY");const c=L.DomUtil.create("input",null,e);c.placeholder="...",o.rk&&(c.value=o.rk);const d=L.DomUtil.create("button",null,e);if(d.textContent=Se("SET"),L.DomEvent.on(d,"click",(async e=>{L.DomEvent.stop(e);try{await(t=o.id,a=l.value,n=c.value,It(`/api/v1/team/${t}/rockscfg?rockscomm=${a}&rockskey=${n}`)),ve("updated rocks info"),this.update()}catch(e){console.error(e),De(e)}var t,a,n})),L.DomUtil.create("label",null,e).textContent=Se("dialog.team_manage.join_link"),o.jlt){const t=L.DomUtil.create("input",null,e),a=kt();t.value=L.Util.template(w.JOIN_TEAM_TEMPLATE,{server:a,teamid:o.id,token:o.jlt}),t.readOnly=!0,L.DomEvent.on(t,"click",(e=>e.target.select()));const n=L.DomUtil.create("button",null,e);n.textContent=Se("dialog.team_manage.join_link.revoke"),L.DomEvent.on(n,"click",(async e=>{var t;L.DomEvent.stop(e),await(t=o.id,It(`/api/v1/team/${t}/delJoinKey`)),this.update()}))}else{L.DomUtil.create("span",null,e).textContent=Se("NOT_SET");const t=L.DomUtil.create("button",null,e);t.textContent=Se("dialog.team_manage.join_link.create"),L.DomEvent.on(t,"click",(async e=>{var t;L.DomEvent.stop(e),await(t=o.id,It(`/api/v1/team/${t}/genJoinKey`)),this.update()}))}L.DomUtil.create("label",null,e).textContent=Se("REMOVE_TEAM");const u=L.DomUtil.create("button",null,e);return u.textContent=Se("REMOVE"),L.DomEvent.on(u,"click",(e=>{L.DomEvent.stop(e),new si({title:Se("REMOVE_TEAM_CONFIRM_TITLE",{teamName:o.name}),label:Se("REMOVE_TEAM_CONFIRM_LABEL",{teamName:o.name}),callback:async()=>{try{await(e=o.id,xt(`/api/v1/team/${e}`)),this.closeDialog(),await pt(!0)}catch(e){console.error(e),De(e)}var e;window.map.fire("wasabee:teams")}}).enable()})),e},_displayDialog:async function(){const e=await this._dialogContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("MANAGE_TEAM",{teamName:this.options.team.Name}),width:"auto",html:e,dialogClass:"manageteam",buttons:t,id:b.dialogNames.manageTeam})}}),ur=dr,pr=Kt.extend({statics:{TYPE:"wasabeeButton"},addHooks:async function(){Kt.prototype.addHooks.call(this),this._me=await pt(!0,!0),window.map.on("wasabee:teams",this.update,this),window.map.on("wasabee:logout",this.closeDialog,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:teams",this.update,this),window.map.off("wasabee:logout",this.closeDialog,this)},update:function(){this._enabled&&(this._me=$.localGet(),this.setContent(this._buildContent()))},_buildContent:function(){const e=new pi;e.fields=[{name:Se("TEAM_NAME"),value:e=>e.Name,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=L.DomUtil.create("a","enl",e);o.href="#",o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new cr({teamID:a.ID}).enable()}))}},{name:Se("TEAM STATE"),value:e=>e.State,format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.textContent=Se(t?"dialog.common.on":"dialog.common.off"),t&&L.DomUtil.addClass(o,"enl"),o.onclick=async()=>{await this.toggleTeam(a.ID,t),this.update()}}},{name:Se("dialog.team_list.share_wd_keys"),value:e=>e.ShareWD,format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.textContent=Se(t?"dialog.common.on":"dialog.common.off"),t&&L.DomUtil.addClass(o,"enl"),o.onclick=async()=>{await this.toggleShareWD(a.ID,t),this.update(),window.map.fire("wasabee:defensivekeys")}}},{name:Se("dialog.team_list.load_wd_keys"),value:e=>e.LoadWD,format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.textContent=Se(t?"dialog.common.on":"dialog.common.off"),t&&L.DomUtil.addClass(o,"enl"),o.onclick=async()=>{await this.toggleLoadWD(a.ID,t),this.update(),window.map.fire("wasabee:defensivekeys")}}},{name:"",value:()=>"",sort:null,format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);if(o.textContent="",this._me.id!=a.Owner)o.textContent=Se("LEAVE"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),new si({title:Se("dialog.leave_team.title",{teamName:a.Name}),label:Se("dialog.leave_team.text",{teamName:a.Name}),type:"team",callback:async()=>{try{await(e=a.ID,xt(`/api/v1/me/${e}`)),this._me=await pt(!0),window.map.fire("wasabee:teams"),window.map.fire("wasabee:defensivekeys")}catch(e){console.error(e)}var e}}).enable()}));else{const t=L.DomUtil.create("a","enl",e);t.textContent=Se("MANAGE"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),new ur({team:a}).enable()}))}}}],e.sortBy=0;const t=L.DomUtil.create("div","container");return t.appendChild(e.table),e.items=this._me.Teams,t},_displayDialog:function(){if(!this._me)return void this.disable();const e={};e[Se("CLOSE")]=()=>{this.closeDialog()},e[Se("NEW_TEAM")]=()=>{const e=new sr({title:Se("CREATE_NEW_TEAM"),label:Se("NTNAME"),callback:async()=>{const t=e.inputField.value;if(t){try{await(a=t,It(`/api/v1/team/new?name=${a}`)),ve(Se("TEAM_CREATED",{teamName:t})),this._me=await pt(!0)}catch(e){console.error(e),De(e)}var a;window.map.fire("wasabee:teams")}else De(Se("NAME_REQ"))},current:Se("NEW_TEAM_NAME"),placeholder:Se("AMAZ_TEAM_NAME")});e.enable()},this.createDialog({title:Se("CUR_USER_INFO"),html:this._buildContent(),width:"auto",dialogClass:"wasabee",buttons:e,id:b.dialogNames.wasabeeButton})},toggleTeam:async function(e,t){const a=t?"Off":"On";try{await function(e,t){return It(`/api/v1/me/${e}?state=${t}`)}(e,a),this._me=await pt(!0)}catch(e){console.error(e),De(e)}return a},toggleShareWD:async function(e,t){const a=t?"Off":"On";try{await function(e,t){return It(`/api/v1/me/${e}/wdshare?state=${t}`)}(e,a),await pt(!0)}catch(e){console.error(e),De(e)}return a},toggleLoadWD:async function(e,t){const a=t?"Off":"On";try{await function(e,t){return It(`/api/v1/me/${e}/wdload?state=${t}`)}(e,a),await pt(!0)}catch(e){console.error(e),De(e)}return a}}),mr=pr;function hr(e,t,a){const o={};let n=!1;for(const i of a)JSON.stringify(e[i])!==JSON.stringify(t[i])&&(o[i]=t[i],n=!0);return n?o:null}function gr(e,t){return{id:e.ID,type:"edition",props:hr(e,t,["fromPortalId","toPortalId","color","zone","order","assignedTo","comment","state","deltaminutes"])}}function fr(e,t){return{id:e.ID,type:"edition",props:hr(e,t,["type","zone","order","assignedTo","comment","state","deltaminutes"])}}function Er(e,t){return{id:e.id,type:"edition",props:hr(e,t,["comment","hardness"])}}function _r(e,t){return{id:e.id,type:"edition",props:hr(e,t,["name","color","points"])}}function wr(e,t,a,o){const n=e.slice(),i=t.slice();n.sort(((e,t)=>e[a]t[a]?1:0)),i.sort(((e,t)=>e[a]t[a]?1:0));const r=[];let s=0,l=0;for(;st[a])r.push({id:t[a],type:"addition",value:t}),l+=1;else{const a=o(e,t);a.props&&r.push(a),s+=1,l+=1}}for(;se.idt.id?1:0)),t.sort(((e,t)=>e.idt.id?1:0));const n=[],i=[];let r=0,s=0;for(;rc.id)n.push(c),s+=1;else{if("addition"===l.type||"addition"===c.type)if(a){const e=br(l.props,c.props);e&&n.push({id:c.id,type:"edition",props:e})}else i.push({id:c.id,type:"addition/addition"});else if("deletion"===l.type&&"deletion"===c.type);else if("edition"===l.type&&"edition"===c.type){const e=br(l.props,c.props);if(e){let t=!0;for(const a in e)if(a in l.props){t=!1;break}for(const e in l.props)if(!t||o.includes(e)){t=!1;break}for(const e in c.props)if(!t||o.includes(e)){t=!1;break}t?n.push({id:c.id,type:"edition",props:e}):i.push({id:c.id,type:"edition/edition",master:l,follower:c})}}else a?"edition"===c.type&&n.push(c):i.push({id:c.id,type:l.type+"/"+c.type,master:l,follower:c});r+=1,s+=1}}for(;s"addition"===e.type)),n=t.filter((e=>"addition"===e.type));for(const e of n)for(const t of o)if(a(e.value,t.value)){e.id=t.id;break}}(o.links,n.links,((e,t)=>e.fromPortalId===t.fromPortalId&&e.toPortalId===t.toPortalId||e.fromPortalId===t.toPortalId&&e.toPortalId===t.fromPortalId));const i={props:br(o.props,n.props),portals:Ar(o.portals,n.portals,!0),links:Ar(o.links,n.links,!1,["fromPortalId","toPortalId"]),markers:Ar(o.markers,n.markers,!1),zones:Ar(o.zones,n.zones,!0)};return Sr(t,i),i}function kr(e,t){for(const a in t)e[a]=t[a]}function Sr(e,t){for(const a of t.portals.conflict)a.value=e.getPortal(a.id);for(const a of t.zones.conflict)a.value=e.getZone(a.id);for(const a of t.markers.conflict)a.value=e.getMarker(a.id);for(const a of t.links.conflict)a.value=e.getLinkById(a.id)}function vr(e,t,a){kr(e,a.props);for(const a of t.opportals)e._addPortal(new ee(a));for(const a of t.zones)e.getZone(a.id)||e.zones.push(new te(a));for(const t of a.portals.result)if("addition"===t.type)e._addPortal(t.value);else if("edition"===t.type){const a=e.getPortal(t.id);a&&kr(a,t.props)}for(const t of a.zones.result)if("addition"===t.type)e.getZone(t.id)||e.zones.push(new te(t.value));else if("edition"===t.type){const a=e.getZone(t.id);a&&kr(a,t.props)}for(const t of a.markers.result)if("deletion"===t.type)e.markers=e.markers.filter((e=>e.ID!==t.id));else if("addition"===t.type)e.markers.push(new X(t.value));else{const a=e.getMarker(t.id);a&&kr(a,t.props)}for(const t of a.links.result)if("deletion"===t.type)e.links=e.links.filter((e=>e.ID!==t.id));else if("addition"===t.type)e.links.push(new q(t.value));else{const a=e.getLinkById(t.id);a&&kr(a,t.props)}for(const t of a.portals.conflict)t.value&&e._updatePortal(t.value);for(const t of a.zones.conflict)t.value&&(e.zones=e.zones.filter((e=>e.id!==t.id)),e.zones.push(t.value));for(const t of a.markers.conflict)e.markers=e.markers.filter((e=>e.ID!==t.id)),t.value&&e.markers.push(t.value);for(const t of a.links.conflict)e.links=e.links.filter((e=>e.ID!==t.id)),t.value&&e.links.push(t.value);e.links=e.links.filter((t=>e.getLinkByPortalIDs(t.fromPortalId,t.toPortalId)===t)),e.cleanAnchorList(),e.cleanPortalList()}const Or=Kt.extend({statics:{TYPE:"conflictDialog"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._layer=new L.LayerGroup,this._layer.addTo(window.map),this._displayDialog()},removeHooks:function(){Kt.prototype.addHooks.call(this),this._layer.remove()},rebase:async function(e){vr(this._opRebase,this.options.opOwn,e),await this._opRebase.store(),Re().ID==this._opRebase.ID&&await Pe(this._opRebase.ID),this.options.updateCallback&&this.options.updateCallback(this._opRebase),this.closeDialog()},useServer:async function(){await this.options.opRemote.store(),Re().ID==this.options.opRemote.ID&&await Pe(this.options.opRemote.ID),this.closeDialog()},useLocal:function(){this.options.updateCallback&&this.options.updateCallback(this.options.opOwn),this.closeDialog()},_displayDialog:function(){this._opRebase=new _e(this.options.opRemote),this._origin=this.options.opOwn.getFetchedOp()?new _e(this.options.opOwn.getFetchedOp()):new _e({ID:this.options.opOwn.ID,name:this.options.opOwn.name,comment:this.options.opOwn.comment,color:this.options.opOwn.color,referencetime:this.options.opOwn.referencetime});const e=Lr(this._origin,this._opRebase,this.options.opOwn);console.debug(e);const t=[];for(const a of e.portals.conflict)"edition/edition"===a.type&&t.push({kind:"portal",conflict:a,masterValue:this._opRebase.getPortal(a.id),followerValue:this.options.opOwn.getPortal(a.id)});for(const a of e.zones.conflict)"edition/edition"===a.type&&t.push({kind:"zone",conflict:a,masterValue:this._opRebase.getZone(a.id),followerValue:this.options.opOwn.getZone(a.id)});for(const a of e.markers.conflict)"addition/addition"!==a.type&&t.push({kind:"marker",conflict:a,masterValue:this._opRebase.getMarker(a.id),followerValue:this.options.opOwn.getMarker(a.id)});for(const a of e.links.conflict)"addition/addition"!==a.type&&t.push({kind:"link",conflict:a,masterValue:this._opRebase.getLinkById(a.id),followerValue:this.options.opOwn.getLinkById(a.id)});if(0===t.length)return void this.rebase(e);const a=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",a).textContent=Se("MERGE_MESSAGE"),L.DomUtil.create("h3","",a).textContent=Se("dialog.conflict.conflicts");const o=L.DomUtil.create("table","conflicts",a),n=L.DomUtil.create("tr","",o);L.DomUtil.create("th","master",n).textContent=Se("dialog.conflict.server");const i=L.DomUtil.create("input","",L.DomUtil.create("th","master",n));i.type="radio",i.name=this.options.opOwn.ID;const r=L.DomUtil.create("input","",L.DomUtil.create("th","follower",n));r.type="radio",r.name=this.options.opOwn.ID,L.DomUtil.create("th","follower",n).textContent=Se("dialog.conflict.local"),L.DomEvent.on(i,"change",(()=>{if(i.checked){o.querySelectorAll("td.master input").forEach((e=>e.checked=!0));for(const e of t)e.conflict.value=e.masterValue}})),L.DomEvent.on(r,"change",(()=>{if(r.checked){o.querySelectorAll("td.follower input").forEach((e=>e.checked=!0));for(const e of t)e.conflict.value=e.followerValue}}));for(const e of t){const t=L.DomUtil.create("tr","",o);this.formatConflict(e,e.conflict.master,this._opRebase,L.DomUtil.create("td","master",t));const a=L.DomUtil.create("input","",L.DomUtil.create("td","master",t));a.type="radio",a.name=e.conflict.id,a.value="master",a.checked=!0;const n=L.DomUtil.create("input","",L.DomUtil.create("td","follower",t));n.type="radio",n.name=e.conflict.id,n.value="master",this.formatConflict(e,e.conflict.follower,this.options.opOwn,L.DomUtil.create("td","follower",t)),L.DomEvent.on(a,"change",(()=>{a.checked&&(e.conflict.value=e.masterValue,r.checked=!1)})),L.DomEvent.on(n,"change",(()=>{n.checked&&(e.conflict.value=e.followerValue,i.checked=!1)}))}const s=[];s.push({text:Se("MERGE_REBASE"),click:()=>this.rebase(e)}),s.push({text:Se("MERGE_REPLACE"),click:()=>this.useServer()}),s.push({text:Se("MERGE_LOCAL"),click:()=>this.useLocal()}),(this.options.updateCallback||this.options.cancelText)&&s.push({text:this.options.cancelText||Se("CANCEL"),click:()=>this.closeDialog()}),this.createDialog({title:this.options.title||Se("MERGE_TITLE"),html:a,width:"auto",dialogClass:"conflict",buttons:s})},formatConflict(e,t,a,o){try{if("link"===e.kind){const e=this._origin.getLinkById(t.id),n=Ti(e,this._origin);if(o.appendChild(n),"deletion"===t.type)n.classList.add("strike");else{const n=L.DomUtil.create("ul","",o);for(const o in t.props)this.formatProp(o,e,t.props,a,n)}}else if("marker"===e.kind){const e=this._origin.getMarker(t.id),n=function(e,t){const a=t.getPortal(e.portalId);if(null==a)return console.log("null portal getting marker popup"),L.DomUtil.create("div","").textContent="invalid portal";const o=L.DomUtil.create("span");return L.DomUtil.create("span",`${e.type}`,o).textContent=Se(e.type),o.appendChild(We(a)),o}(e,this._origin);if(o.appendChild(n),"deletion"===t.type)n.classList.add("strike");else{const n=L.DomUtil.create("ul","",o);for(const o in t.props)this.formatProp(o,e,t.props,a,n)}}else if("portal"===e.kind){const e=this._origin.getPortal(t.id),n=We(e);o.appendChild(n);const i=L.DomUtil.create("ul","",o);for(const o in t.props)this.formatProp(o,e,t.props,a,i)}else if("zone"===e.kind){const e=this._origin.getZone(t.id),n=L.DomUtil.create("span");n.textContent=Se("dialog.conflict.zone",{name:e.name}),o.appendChild(n);const i=L.DomUtil.create("ul","",o);for(const o in t.props)this.formatProp(o,e,t.props,a,i)}}catch(e){console.error(e),o.append(JSON.stringify(t.props))}},formatProp(e,t,a,o,n){const i=L.DomUtil.create("li","",n),r=L.DomUtil.create("span","diff-label",i);r.textContent=e+":";const s=L.DomUtil.create("span","strike",i);s.textContent=t[e];const l=L.DomUtil.create("span","",i);l.textContent=a[e],"hardness"===e?r.textContent=Se("dialog.conflict.prop.hardness"):"comment"===e?r.textContent=Se("dialog.conflict.prop.comment"):"assignedTo"===e?r.textContent=Se("dialog.conflict.prop.assignedTo"):"state"===e?(r.textContent=Se("dialog.conflict.prop.state"),s.textContent=Se(Y(t[e])),l.textContent=Se(Y(a[e]))):"color"===e?r.textContent=Se("dialog.conflict.prop.color"):"order"===e?r.textContent=Se("dialog.conflict.prop.order"):"zone"===e?r.textContent=Se("dialog.conflict.prop.zone"):"points"===e?(r.textContent=Se("dialog.conflict.prop.zone_points"),s.textContent="",l.textContent=""):"fromPortalId"===e?r.textContent=Se("dialog.conflict.prop.fromPortal"):"toPortalId"===e?r.textContent=Se("dialog.conflict.prop.toPortal"):"deltaminutes"===e&&(r.textContent=Se("dialog.conflict.prop.deltaminutes")),"assignedTo"!==e&&"completedID"!==e||(t[e]&&ut(t[e]).then((e=>s.textContent=e.getName())),a[e]&&ut(a[e]).then((e=>l.textContent=e.getName()))),"fromPortalId"!==e&&"toPortalId"!==e||(s.textContent="",s.appendChild(We(this._origin.getPortal(t[e]))),l.textContent="",l.appendChild(We(o.getPortal(a[e]))))}});function Dr(e){new si({title:Se("dialog.clear_links.title",{opName:e.name}),label:Se("dialog.clear_links.text",{opName:e.name}),type:"operation",callback:()=>{e.clearAllLinks(),window.map.fire("wasabee:crosslinks")}}).enable()}function Nr(e){if(!e)return;const t=e.mbr;t&&t.isValid()&&window.map.fitBounds(t)}async function Cr(e,t){const a=Re();if(!e)return await t.store(),!1;const o=e.ID!=a.ID?e:a;return o.lasteditid===t.lasteditid?o.server!==t.server&&(o.server=t.server,await o.store(),o.ID===a.ID):o.checkChanges()?(o.teamlist=t.teamlist,o.mergeZones(t),o.remoteChanged=!0,await o.store(),a===o&&new Or({opOwn:a,opRemote:t}).enable(),!1):(await t.store(),t.ID===a.ID)}async function yr(){const e=Re(),t=ie();try{let a=null;const o=await pt(!0),n=new Set(o.Ops.map((e=>e.ID))),i=await Be(),r=[];for(const e of i){const a=await _e.load(e);a&&a.server===t&&!n.has(a.ID)&&r.push(a)}for(const t of r){if(t.isOwnedOp()){const o=await Ke(t.ID);o.name=t.name,await o.store(),t.ID===e.ID&&(a=o.ID)}await _e.delete(t.ID)}r.length>0&&console.log("remove",r.map((e=>e.ID)));const s=[];for(const e of n)s.push(Nt(e));const l=(await Promise.allSettled(s)).filter((e=>"fulfilled"===e.status)).map((e=>e.value));for(const t of l){const o=await _e.load(t.ID);await Cr(o,t)&&(a=e.ID)}if(a)await Pe(a);else{const t=await Ie();t!==e&&Nr(t)}return window.map.fire("wasabee:teams"),window.map.fire("wasabee:fullsync"),!0}catch(e){console.error(e),e instanceof Ne&&De(e),$.isLoggedIn()&&Oe(Se("NOT_LOADED"))}return window.map.fire("wasabee:fullsync"),!1}const Rr=Kt.extend({statics:{TYPE:"exportDialog"},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=Re(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("DRAW TOOLS FORMAT")]=()=>{this._drawToolsFormat(e)},t[Se("ANCHORS_AS_BOOKMARKS")]=()=>{this._bookmarkFormat(e)},this.createDialog({title:Se("EXPORT")+e.name,html:this._buildContent(e),width:"auto",dialogClass:"export",buttons:t,id:b.dialogNames.exportDialog})},_buildContent:function(e){const t=L.DomUtil.create("div",null),a=L.DomUtil.create("textarea",null,t);return a.id="wasabee-dialog-export-textarea",e.cleanAll(),a.value=e.toExport(),t},_drawToolsFormat:function(e){const t=document.getElementById("wasabee-dialog-export-textarea"),a=new Array;for(const t of e.links){const o={type:"polyline"};o.color=ei(t.getColor(e)),o.latLngs=t.getLatLngs(e),a.push(o)}t.value=JSON.stringify(a)},_bookmarkFormat:function(e){const t=document.getElementById("wasabee-dialog-export-textarea"),a=new Object;a.maps={},a.maps.idOthers={},a.maps.idOthers.label="Others",a.maps.idOthers.state=1,a.maps.idOthers.bkmrk={},a.portals={},a.portals.idOthers={},a.portals.idOthers.label="Others",a.portals.idOthers.state=1,a.portals.idOthers.bkmrk={};for(const t of e.anchors){const o="id"+t.substring(0,16),n=e._idToOpportals.get(t);a.portals.idOthers.bkmrk[o]={},a.portals.idOthers.bkmrk[o].guid=t,a.portals.idOthers.bkmrk[o].latlng=`${+n.lat},${+n.lng}`,a.portals.idOthers.bkmrk[o].label=n.name}t.value=JSON.stringify(a)}}),Ir=Rr,Mr=L.Handler.extend({initialize:function(e=window.map,t){this.zoneID=0,L.Handler.prototype.initialize.call(this,e),this._parent=t.parent,this.type="ZonedrawHandler"},enable:function(){this._enabled||0==this.zoneID?this.disable():L.Handler.prototype.enable.call(this)},addHooks:function(){L.DomUtil.disableTextSelection(),this._tooltip=new Ut(window.map),this._opID=Re().ID,this._tooltip.updateContent(this._getTooltipText()),window.map.on("click",this._click,this),window.map.on("wasabee:op:select",this._opchange,this),window.map.on("keyup",this._keyUpListener,this)},removeHooks:function(){L.DomUtil.enableTextSelection(),this._tooltip.dispose(),this._tooltip=null,window.map.off("click",this._click,this),window.map.off("wasabee:op:select",this._opchange,this),window.map.off("keyup",this._keyUpListener,this)},_opchange:function(){this._enabled&&Re().ID!=this._opID&&(console.log("operation changed mid-zonedraw - disabling"),this.disable())},_keyUpListener:function(e){this._enabled&&27===e.originalEvent.keyCode&&(this.disable(),this._parent.update())},_click:function(e){Re().addZonePoint(this.zoneID,e.latlng)},_getTooltipText:function(){return Se("ZONE_DRAW")}}),Pr=Kt.extend({statics:{TYPE:"zoneSetColorDialog"},needWritePermission:!0,options:{},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){this.createDialog({title:Se("dialog.zone_color.title"),html:this._buildContent(),width:"auto",dialogClass:"zone-color"})},_buildContent:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("dialog.zone_color.text",{zoneName:this.options.zone.name});const t=L.DomUtil.create("input","picker",e);return t.type="color",t.setAttribute("list","wasabee-colors-datalist"),L.DomEvent.on(t,"change",(async e=>{L.DomEvent.stop(e);const a=Re();for(const e of a.links)e.zone==this.options.zone.id&&(e.color=t.value);await a.store(),wi(t.value),window.map.fire("wasabee:op:change")})),e}});function xr(e,t){const a=Re(),o="write"===a.getPermission();(t=t||L.DomUtil.create("div")).textContent="";const n=L.DomUtil.create("tbody","",L.DomUtil.create("table","wasabee-table",t)),i=L.DomUtil.create("tr",null,n);L.DomUtil.create("th",null,i).textContent=Se("dialog.zones.id"),L.DomUtil.create("th",null,i).textContent=Se("dialog.common.name"),L.DomUtil.create("th",null,i).textContent=Se("dialog.zones.color"),L.DomUtil.create("th",null,i).textContent=Se("dialog.common.commands");for(const i of a.zones){const r=L.DomUtil.create("tr",null,n);L.DomUtil.create("td",null,r).textContent=""+i.id;const s=L.DomUtil.create("td",null,r),l=L.DomUtil.create("input",null,s);l.type="text",l.value=i.name;const c=L.DomUtil.create("td",null,r),d=L.DomUtil.create("input","picker",c);d.type="color",d.value=ei(i.color),d.setAttribute("list","wasabee-colors-datalist"),d.disabled=!o,L.DomEvent.on(d,"change",(e=>{L.DomEvent.stop(e),i.color=d.value,a.update(),wi(d.value)})),L.DomEvent.on(l,"change",(e=>{L.DomEvent.stop(e),Re().renameZone(i.id,l.value)}));const u=L.DomUtil.create("td","actions",r);if(i.points.length>0){const e=L.latLngBounds(i.points),t=L.DomUtil.create("a",null,u);t.href="#",t.title=Se("dialog.zones.jump_to"),oi("location-dot",t),L.DomEvent.on(t,"click",(t=>{L.DomEvent.stop(t),window.map.fitBounds(e)}))}if(o){const a=L.DomUtil.create("a",null,u);if(a.href="#",a.title=Se("dialog.zones.color_links"),oi("palette",a),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),new Pr({zone:i}).enable()})),1!=i.id){const e=L.DomUtil.create("a",null,u);e.href="#",e.title=Se("dialog.common.delete"),oi("trash",e),L.DomEvent.on(e,"click",(e=>{L.DomEvent.stop(e),new si({title:Se("dialog.zones.delete.title",{zoneName:i.name}),label:Se("dialog.zones.delete.text",{zoneName:i.name}),type:"operation",callback:async()=>{Re().removeZone(i.id)}}).enable()}))}if(e&&e.zoneID===i.id&&e.enabled()){const a=L.DomUtil.create("a",null,u);a.href="#",a.title=Se("dialog.zones.stop_drawing"),oi("ban",a),L.DomEvent.on(a,"click",(a=>{L.DomEvent.stop(a),e.disable(),xr(e,t)}))}else if(0==i.points.length){const a=L.DomUtil.create("a",null,u);a.title=Se("dialog.zones.draw_zone_shape"),oi("pen",a),a.href="#",L.DomEvent.on(a,"click",(a=>{L.DomEvent.stop(a),e.zoneID=i.id,e.enable(),xr(e,t)}))}else{const e=L.DomUtil.create("a",null,u);e.title=Se("dialog.zones.delete_zone_shape"),oi("eraser",e),e.href="#",L.DomEvent.on(e,"click",(e=>{L.DomEvent.stop(e),Re().removeZonePoints(i.id)}))}}}return t}class Ur extends Kt{addHooks(){super.addHooks(),this._zoneHandler=new Mr(window.map,{parent:this}),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),this._activeTab=0,this._displayDialog()}removeHooks(){super.removeHooks(),this._zoneHandler.disable(),window.map.off("wasabee:op:select wasabee:op:change",this.update,this)}_displayDialog(){const e=this.makeContent(),t={};t[Se("OK")]=()=>{this.closeDialog()},this.createDialog({title:Se("OP_SETTINGS_TITLE"),html:e,height:"auto",width:"auto",dialogClass:"op-settings",buttons:t,id:b.dialogNames.opSettings})}update(){if(this.enabled()){this.setTitle(Se("OP_SETTINGS_TITLE"));const e=this.makeContent();this.setContent(e)}}buildZoneTab(){const e=L.DomUtil.create("a");e.textContent=Se("dialog.op_settings.zones");const t=L.DomUtil.create("div");t.appendChild(xr(this._zoneHandler));const a=L.DomUtil.create("div","buttonset",t),o={};o[Se("ADD_ZONE")]=()=>{Re().canWrite()&&Re().addZone()},o[Se("SET_MARKERS_ZONES")]=()=>{Re().canWrite()&&vi()},o[Se("SET_LINKS_ZONES")]=()=>{Re().canWrite()&&Oi()};for(const e in o){const t=L.DomUtil.create("button",null,a);t.textContent=e,L.DomEvent.on(t,"click",o[e])}return[e,t]}buildPermTab(){const e=Re(),t=L.DomUtil.create("a");t.textContent=Se("OP_PERMS");const a=L.DomUtil.create("div");return a.appendChild(function(e,t){const a=t&&e.isOwnedOp()&&e.isOnCurrentServer(),o=a?L.DomUtil.create("select"):null,n=a?L.DomUtil.create("select"):null,i=a?L.DomUtil.create("select"):null;if(a){for(const e of t.Teams){const t=L.DomUtil.create("option",null,o);t.value=e.ID,t.textContent=e.Name}const a=L.DomUtil.create("option",null,n);a.value="read",a.textContent=Se("READ");const r=L.DomUtil.create("option",null,n);r.value="write",r.textContent=Se("WRITE");const s=L.DomUtil.create("option",null,n);s.value="assignedonly",s.textContent=Se("ASSIGNED_ONLY");const l=L.DomUtil.create("option",null,i);l.value="0",l.textContent=Se("dialog.common.zone_all");for(const t of e.zones){const e=L.DomUtil.create("option",null,i);e.value=""+t.id,e.textContent=t.name}}const r=new pi,s=[{name:Se("TEAM"),value:async a=>{if(t&&e.isOnCurrentServer()&&t.teamJoined(a.teamid)){const e=await mt(a.teamid);if(e)return e.name;if(t)for(const e of t.Teams)if(e.ID==a.teamid)return e.Name}return"["+a.teamid+"]"},sort:(e,t)=>e.localeCompare(t),foot:e=>{a&&e.append(o)}},{name:Se("ROLE"),value:e=>e.role,sort:(e,t)=>e.localeCompare(t),foot:e=>{a&&e.append(n)}},{name:Se("ZONE"),value:t=>0===t.zone?Se("dialog.common.zone_all"):e.zoneName(t.zone),sort:(e,t)=>e.localeCompare(t),foot:e=>{a&&e.append(i)}}];if(a)s.push({name:Se("dialog.common.commands"),value:()=>Se("REMOVE"),format:(e,t,a)=>{const o=L.DomUtil.create("a",null,e);o.href="#",o.textContent=t,L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),async function(e){if(!$.isLoggedIn())return void De(Se("NOT LOGGED IN SHORT"));const t=Re();if(t.isOwnedOp())try{await function(e,t,a,o){const n=new FormData;return n.append("team",t),n.append("role",a),n.append("zone",`${o}`),xt(`/api/v1/draw/${e}/perms`,n)}(t.ID,e.teamid,e.role,e.zone);const a=[];for(const o of t.teamlist)o.teamid==e.teamid&&o.role==e.role&&o.zone==e.zone||a.push(o);t.teamlist=a,await t.store(),window.map.fire("wasabee:op:change")}catch(e){console.error(e),De(e)}}(a)}))},foot:e=>{const t=L.DomUtil.create("a",null,e);t.href="#",t.textContent=Se("ADD"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),async function(e,t,a){if(!$.isLoggedIn())return void De(Se("NOT LOGGED IN SHORT"));const o=Re();if(o.isOwnedOp()){for(const n of o.teamlist)if(n.teamid==e&&n.role==t&&n.zone==a)return void console.debug("not adding duplicate permission");try{await function(e,t,a,o){const n=new FormData;return n.append("team",t),n.append("role",a),n.append("zone",`${o}`),Mt(`/api/v1/draw/${e}/perms`,n)}(o.ID,e,t,a),o.teamlist.push({teamid:e,role:t,zone:a}),await o.store(),window.map.fire("wasabee:op:change")}catch(e){console.error(e),De(e)}}}(o.value,n.value,+i.value)}))}});else for(const e of s)delete e.foot;return r.fields=s,r.sortBy=0,r.items=e.teamlist,r.table}(e,$.cacheGet())),[t,a]}buildAdvancedTab(){const e=Re(),t=L.DomUtil.create("a");t.textContent=Se("dialog.op_settings.advanced");const a=L.DomUtil.create("div","advanced");if(e.canWrite()){L.DomUtil.create("div","desc",a).textContent=Se("dialog.op_settings.import.desc"),L.DomUtil.create("label",null,a).textContent=Se("dialog.op_settings.import.select_op");const t=L.DomUtil.create("select",null,a);Be().then((async a=>{const o=(await Promise.all(a.map(_e.load))).map((e=>[e.ID,e.name]));o.sort(((e,t)=>e[1].localeCompare(t[1])));for(const[a,n]of o){if(a===e.ID)continue;const o=L.DomUtil.create("option",null,t);o.value=a,o.textContent=n}})),L.DomUtil.create("label",null,a).textContent=Se("dialog.op_settings.import.select_color");const o=L.DomUtil.create("input","picker",a);o.type="color",o.value=ei(e.color),o.setAttribute("list","wasabee-colors-datalist");const n=L.DomUtil.create("label","checkbox",a),i=L.DomUtil.create("input","",n);i.type="checkbox",L.DomUtil.create("span","",n).textContent=Se("dialog.op_settings.import.collision_default");const r=L.DomUtil.create("button","import",a);r.textContent=Se("dialog.op_settings.import.button"),L.DomEvent.on(r,"click",(async()=>{const a=await _e.load(t.value);if(delete a.fetchedOp,o.value!==ei(e.color))for(const e of a.links)"main"!==e.color&&e.color!==a.color||(e.color=o.value);const n=Re();a.ID=n.ID;const r=n.zones.map((e=>e.id)).reduce(((e,t)=>e>t?e:t),1);for(const e of a.zones)e.id+=r;for(const e of a.links)e.zone+=r;for(const e of a.markers)e.zone+=r;const s=Lr(new _e({ID:n.ID,name:n.name,comment:n.comment,color:n.color,referencetime:n.referencetime}),n,a);console.debug(s),s.props={},i.checked&&Sr(a,s),vr(n,a,s),await n.store(),window.map.fire("wasabee:op:change")}))}return[t,a]}buildMainTab(){const e=Re(),t=e.canWrite(),a=L.DomUtil.create("a");a.textContent=Se("dialog.op_settings.setting");const o=L.DomUtil.create("div"),n=L.DomUtil.create("div","topset",o);if(t){L.DomUtil.create("label",null,n).textContent=Se("OPER_COLOR");const t=L.DomUtil.create("input","picker",n);t.type="color",t.value=ei(e.color),t.setAttribute("list","wasabee-colors-datalist"),L.DomEvent.on(t,"change",(async e=>{L.DomEvent.stop(e);const a=Re();a.color=t.value,a.localchanged=!0,await a.store(),wi(t.value),window.map.fire("wasabee:op:change")}))}if(t){const t=L.DomUtil.create("textarea",null,n);t.placeholder="Op Comment",t.value=e.comment,L.DomEvent.on(t,"change",(async e=>{L.DomEvent.stop(e);const a=Re();a.comment=t.value,a.localchanged=!0,await a.store(),window.map.fire("wasabee:op:change")}))}else L.DomUtil.create("p","comment",n).textContent=e.comment;if(t){L.DomUtil.create("label",null,n).textContent=Se("REFERENCE_TIME");const t=L.DomUtil.create("input",null,n);t.size=30,t.placeholder="Sun, 21 Oct 2018 12:16:24 GMT",t.value=e.referencetime,L.DomEvent.on(t,"change",(async e=>{L.DomEvent.stop(e);const a=Re();try{const e=new Date(t.value);if("Invalid Date"===e.toString()||isNaN(+e))throw e;a.referencetime=e.toUTCString(),t.value=a.referencetime,a.localchanged=!0,await a.store(),window.map.fire("wasabee:op:change")}catch(e){console.log(e),De("Invalid date format")}}))}else L.DomUtil.create("p","comment",n).textContent=Se("REFERENCE_TIME")+" "+e.referencetime;const i=L.DomUtil.create("div","buttonset",o);if(t){const e=L.DomUtil.create("div",null,i),t=L.DomUtil.create("button",null,e);t.textContent=Se("CLEAR_EVERYTHING"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e);const t=Re();var a;new si({title:Se("dialog.clear_all.title",{opName:(a=t).name}),label:Se("dialog.clear_all.text",{opName:a.name}),type:"operation",callback:()=>{a.clearAllItems(),window.map.fire("wasabee:crosslinks")}}).enable()}))}const r=L.DomUtil.create("div",null,i),s=L.DomUtil.create("button",null,r);e.isServerOp()?$.isLoggedIn()&&e.isOwnedOp()&&e.isOnCurrentServer()?s.textContent=Se("DELETE_OP",{opName:e.name})+Se("LOCFRMSER"):s.textContent=Se("REM_LOC_CP",{opName:e.name}):s.textContent=Se("DELETE_OP",{opName:e.name}),L.DomEvent.on(s,"click",(e=>{L.DomEvent.stop(e);const t=Re();new si({title:Se("CON_DEL",{opName:t.name}),label:Se("YESNO_DEL",{opName:t.name}),type:"operation",callback:async()=>{if($.isLoggedIn()&&t.isOwnedOp()&&t.isOnCurrentServer())try{await(e=t.ID,xt(`/api/v1/draw/${e}`)),console.log("delete from server successful")}catch(e){console.error(e),De(e)}var e;await xe(t.ID),Nr(await Ie())}}).enable()}));const l=L.DomUtil.create("div",null,i),c=L.DomUtil.create("button",null,l);c.textContent=Se("DUPE_OP"),L.DomEvent.on(c,"click",(async e=>{L.DomEvent.stop(e);const t=Re(),a=await Ke(t.ID);await Pe(a.ID)}));const d=L.DomUtil.create("div",null,i),u=L.DomUtil.create("button",null,d);return u.textContent=Se("EXPORT OP"),L.DomEvent.on(u,"click",(e=>{L.DomEvent.stop(e),(new Ir).enable()})),[a,o]}makeContent(){const e=Re(),t=e.canWrite(),a=L.DomUtil.create("div"),o=L.DomUtil.create("div","topset",a);if(L.DomUtil.create("label",null,o).textContent=Se("OPER_NAME"),t){const t=L.DomUtil.create("input",null,o);t.value=e.name,L.DomEvent.on(t,"change",(async e=>{if(L.DomEvent.stop(e),t.value&&""!=t.value){const e=Re();e.name=t.value,e.localchanged=!0,await e.store(),window.map.fire("wasabee:op:change")}else De(Se("USE_VALID_NAME"))}))}else L.DomUtil.create("div",null,o).textContent=e.name;const n=[];n.push(this.buildMainTab()),n.push(this.buildZoneTab()),e.isServerOp()&&n.push(this.buildPermTab()),n.push(this.buildAdvancedTab());const i=L.DomUtil.create("div","ui-tabs tabs",a),r=L.DomUtil.create("ul","ui-tabs-nav nav",i);for(let e=0;e{for(const e of n)e[0].parentElement.classList.remove("ui-tabs-active"),e[1].style.display="none";t.parentElement.classList.add("ui-tabs-active"),a.style.display=null,this._activeTab=e}))}return this._activeTab>=n.length&&(this._activeTab=0),n[this._activeTab][0].parentElement.classList.add("ui-tabs-active"),n[this._activeTab][1].style.display=null,a}}Ur.TYPE="opSettingDialog";const Br=Ur,Kr=Kt.extend({statics:{TYPE:"opsDialog"},SORTBY_KEY:"wasabee-opslist-sortby",SORTASC_KEY:"wasabee-opslist-sortasc",options:{usePane:!0},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),window.map.on("wasabee:fullsync",this.update,this),window.map.on("wasabee:logout",this.update,this),window.map.on("wasabee:op:delete",this.update,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:fullsync",this.update,this),window.map.off("wasabee:logout",this.update,this),window.map.off("wasabee:op:delete",this.update,this)},_displayDialog:async function(){this.initSortable(),await this.updateSortable();const e={};e[Se("dialog.ops_list.unhide_ops")]=()=>{localStorage[window.plugin.wasabee.static.constants.OPS_LIST_HIDDEN_KEY]="[]",this.update()},e[Se("dialog.ops_list.toggle_hide")]=()=>{const e="false"!==localStorage[window.plugin.wasabee.static.constants.OPS_SHOW_HIDDEN_OPS];localStorage[window.plugin.wasabee.static.constants.OPS_SHOW_HIDDEN_OPS]=!e,this.update()},e[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("OPERATIONS"),html:this.sortable.table,height:"auto",width:"auto",dialogClass:"ops",buttons:e,id:b.dialogNames.opsList})},update:async function(){this._enabled&&await this.updateSortable()},initSortable:function(){const e=new pi;e.fields=[{name:"S",value:e=>e.server,format:(e,t,a)=>{e.textContent=a.server}},{name:Se("dialog.common.name"),value:e=>e.name,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=L.DomUtil.create("a","",e);o.href="#",o.textContent=a.name,a.local||(o.title=Se("dialog.ops_list.last_fetched",{date:a.fetched})+"\n",a.localchanged&&(o.title+=Se("dialog.ops_list.local_change")+"\n"),a.remotechanged&&(o.title+=Se("dialog.ops_list.remote_change")+"\n")),a.id==Re().ID&&o.classList.add("enl"),L.DomEvent.on(o,"click",(async e=>{L.DomEvent.stop(e),await Pe(a.id),Nr(Re())}))}},{name:"",value:e=>1*e.local+2*e.localchanged+4*e.remotechanged,format:(e,t,a)=>{a.local||(a.localchanged&&!a.remotechanged?(oi("desktop",e),e.title=Se("dialog.ops_list.local_change")):a.remotechanged&&(oi("server",e),e.title=Se("dialog.ops_list.remote_change")))}},{name:Se("dialog.common.owner"),value:e=>e.owner,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{e.classList.add("opowner"),a.currentserver?e.appendChild(a.ownerDisplay):e.append(a.owner)}},{name:"P",value:e=>e.perm,format:(e,t,a)=>{let o=Se("ASSIGNED_ONLY_SHORT");if("read"==a.perm?o=Se("READ_SHORT"):"write"==a.perm&&(o=Se("WRITE_SHORT")),a.id==Re().ID){const t=L.DomUtil.create("a","",e);t.textContent=o,L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),(new Br).enable()}))}else L.DomUtil.create("span","",e).textContent=o}},{name:"Bg",value:()=>null,sort:null,format:(e,t,a)=>{const o=L.DomUtil.create("input",null,e);o.type="checkbox",o.checked=a.background,o.title=a.background?Se("dialog.ops_list.background_disable"):Se("dialog.ops_list.background_enable"),L.DomEvent.on(o,"change",(e=>{L.DomEvent.stop(e);const t=e.target;t.title=t.checked?Se("dialog.ops_list.background_disable"):Se("dialog.ops_list.background_enable"),async function(e,t){const a=Re(),o=a.ID===e?a:await _e.load(e);o.background!=t&&(o.background=t,await o.store(),window.map.fire("wasabee:op:background",{opID:e,background:t}))}(a.id,t.checked)}))}},{name:Se("dialog.common.commands_short"),value:()=>null,sort:null,className:"actions",format:(e,t,a)=>{const o=L.DomUtil.create("a","",e);if(o.href="#",oi("trash",o),o.title=Se("REM_LOC_CP",{opName:a.name}),L.DomEvent.on(o,"click",(e=>{var t,o;L.DomEvent.stop(e),t=a.name,o=a.id,new si({title:Se("REM_LOC_CP",{opName:t}),label:Se("YESNO_DEL",{opName:t}),type:"operation",callback:async()=>{await xe(o),Nr(await Ie())}}).enable()})),a.currentserver){const t=L.DomUtil.create("a","",e);t.href="#",oi("arrows-rotate",t),t.title=Se("dialog.ops_list.download",{opName:a.name}),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),async function(e){const t=await _e.load(e),a=await Nt(e);a.lasteditid!=t.lasteditid&&(t.localchanged?new Or({opOwn:t,opRemote:a}).enable():await a.store())}(a.id)}))}}},{name:"V",value:()=>null,sort:null,className:"visibility",format:(e,t,a)=>{const o=L.DomUtil.create("input",null,e);o.type="checkbox",o.checked=!a.hidden,L.DomEvent.on(o,"change",(e=>{L.DomEvent.stop(e),o.checked?function(e){const t=Ue();t.includes(e)&&(localStorage[window.plugin.wasabee.static.constants.OPS_LIST_HIDDEN_KEY]=JSON.stringify(t.filter((t=>t!=e))),window.map.fire("wasabee:op:showhide",{opID:e,show:!0}))}(a.id):function(e){const t=Ue();t.includes(e)||(t.push(e),localStorage[window.plugin.wasabee.static.constants.OPS_LIST_HIDDEN_KEY]=JSON.stringify(t),window.map.fire("wasabee:op:showhide",{opID:e,show:!1}))}(a.id)}))}}],e.sortByStoreKey=this.SORTBY_KEY,e.sortAscStoreKey=this.SORTASC_KEY,this.sortable=e},updateSortable:async function(){if(!this.sortable)return;const e="false"!==localStorage[window.plugin.wasabee.static.constants.OPS_SHOW_HIDDEN_OPS],t=$.cacheGet(),a=await Be(e),o=this.sortable.items.map((e=>e.id)),n=o.filter((e=>a.includes(e))).concat(a.filter((e=>!o.includes(e)))),i=Ue(),r=[];for(const e of n){const a=await _e.load(e);if(!a)continue;const o={id:e,name:a.name,localchanged:a.localchanged,remotechanged:a.remoteChanged,fetched:a.fetched,local:null===a.fetched,perm:a.getPermission(),hidden:i.includes(e),currentserver:t&&a.isOnCurrentServer(),server:"",background:a.background};if(o.currentserver){const e=await ut(a.creator);o.owner=e.getName(),o.ownerDisplay=ii(e)}else o.owner=window.PLAYER.nickname;for(const e of window.plugin.wasabee.static.publicServers)e.url===a.server&&(o.server=e.short);r.push(o)}this.sortable.items=r,await this.sortable.done,e?this.sortable.table.classList.remove("hideOps"):this.sortable.table.classList.add("hideOps")}});function Gr(){$.isLoggedIn()&&"true"===localStorage[window.plugin.wasabee.static.constants.SEND_LOCATION_KEY]&&navigator.geolocation.getCurrentPosition((async e=>{try{await vt(e.coords.latitude,e.coords.longitude),console.debug(Se("LOCATION SUB"))}catch(e){console.error(e)}}),(e=>{console.error(e)}))}async function Hr(e){let t=await z.getAll(e);e.startBatchMode();for(const a of t)e._addPortal(new ee({id:a.from,name:a.fromPortal.name,lat:a.fromPortal.lat,lng:a.fromPortal.lng})),e._addPortal(new ee({id:a.to,name:a.toPortal.name,lat:a.toPortal.lat,lng:a.toPortal.lng}));for(;t.length;){const a={};for(const e of t)a[e.from]||(a[e.from]=0),a[e.from]++,a[e.to]||(a[e.to]=0),a[e.to]++;for(const t of e.markers)t.type===X.constants.MARKER_TYPE_EXCLUDE&&delete a[t.portalId];const o=Object.entries(a).reduce(((e,t)=>e[1]e.from!==o&&e.to!==o)),await z.removeBlocker(e,o)}e.cleanAll(),e.endBatchMode()}const zr=Kt.extend({statics:{TYPE:"authDialog"},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),"true"===localStorage[window.plugin.wasabee.static.constants.SEND_LOCATION_KEY]&&Gr()},_successLogin:function(e){e.store(),window.map.fire("wasabee:login"),this.closeDialog(),yr().then((e=>{e&&ve(ke("SYNC DONE"))})),e.querytoken&&Ot(window.PLAYER.nickname,window.PLAYER.team,e.querytoken)},_displayDialog:function(){const e=L.DomUtil.create("div","content");this._server=L.DomUtil.create("input","",e),this._server.readOnly=!0,this._server.value=kt();const t=L.DomUtil.create("div","useragent",e);this._android=!1,this._ios=!1,-1!=navigator.userAgent.search("Iceweasel/")&&(this._android=!0),-1!=navigator.userAgent.search("Linux; Android")&&(this._android=!0),-1==navigator.userAgent.search("iPhone")&&-1==navigator.userAgent.search("iPad")||(this._ios=!0,this._android=!1,-1==navigator.userAgent.search("Safari/")&&(t.textContent=ke("IOS NEED FAKE UA")));const a=L.DomUtil.create("button","gapi",e);if(a.textContent=ke("LOG IN"),L.DomEvent.on(a,"click",(e=>{if(L.DomEvent.stop(e),this._android){const{state:e,url:t}=Lt(!1);localStorage["wasabee-auth-state"]=e,window.open(t)}else a.disabled=!0,a.textContent="... loading ...",this.gapiAuth()})),!this._ios){const t=L.DomUtil.create("button","gapi",e);t.textContent=ke("AUTH_SELECT_ACCOUNT"),L.DomEvent.on(t,"click",(e=>{if(L.DomEvent.stop(e),this._android){const{state:e,url:t}=Lt(!0);localStorage["wasabee-auth-state"]=e,window.open(t)}else t.disabled=!0,t.textContent="... loading ...",this.gsapiAuthChoose()}))}const o=L.DomUtil.create("button","server",e);o.textContent=ke("CHANGE SERVER"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e);const t=new sr({title:ke("CHANGE SERVER"),label:ke("CHANGE SERVER PROMPT"),suggestions:window.plugin.wasabee.static.publicServers.map((e=>({text:`${e.name} (${e.url})`,value:e.url}))),callback:()=>{t.inputField.value&&(St(t.inputField.value),this._server.value=kt(),$.purge()),window.map.fire("wasabee:defensivekeys")},placeholder:kt()});t.enable()}));const n=L.DomUtil.create("button","server",e);n.textContent=ke("dialog.auth.ott.button"),L.DomEvent.on(n,"click",(e=>{L.DomEvent.stop(e);const t=L.DomUtil.create("span");t.innerHTML=ke("dialog.auth.ott.text",{url:`${w.WEBUI_DEFAULT}/#/settings`});const a=new sr({title:ke("dialog.auth.ott.title"),label:t,callback:async()=>{if(a.inputField.value)try{const e=await async function(e){const t=await function(e){const t=new FormData;return t.append("token",e),Mt("/oneTimeToken",t)}(e);return t&&t.jwt&&ft(t.jwt),t?new $(t):pt(!0)}(a.inputField.value);this._successLogin(e),dt({id:"wasabeeLogin",method:"One Time Token"})}catch(e){console.error(e),De(e)}window.map.fire("wasabee:defensivekeys")},placeholder:"smurf-tears-4twn"});a.enable()}));const i={};i[ke("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:ke("AUTH REQUIRED"),html:e,width:"auto",dialogClass:"auth",buttons:i,id:b.dialogNames.mustauth})},gapiAuth:async function(){try{const e=await At(!1),t=await wt(e);dt({id:"wasabeeLogin",method:"gapiAuth"}),this._successLogin(t)}catch(e){this.disable(),this.enable(),e instanceof Ne?De(ke("AUTH TOKEN REJECTED",{error:e.toString()})):(De(e),dt({id:"exception",error:e}))}},gsapiAuthChoose:async function(){try{const e=await At(!0),t=await wt(e);dt({id:"wasabeeLogin",method:"gsapiAuthChoose"}),this._successLogin(t)}catch(e){this.disable(),this.enable(),e instanceof Ne?De(ke("AUTH TOKEN REJECTED",{error:e.toString()})):(De(e),dt({id:"exception",error:e}))}}}),Fr=Kt.extend({statics:{TYPE:"importDialog"},addHooks:function(){this._autoload=!1,"true"===localStorage[window.plugin.wasabee.static.constants.AUTO_LOAD_FAKED]&&(this._autoload=!0),Kt.prototype.addHooks.call(this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this)},_displayDialog:function(){const e=L.DomUtil.create("div",null);e.style.width="420px";const t=L.DomUtil.create("span",null,e),a=L.DomUtil.create("label",null,t);a.textContent=Se("NAME"),this._namefield=L.DomUtil.create("input",null,a),this._namefield.value=Se("IMPORT_OP")+(new Date).toGMTString(),this._namefield.placeholder="noodles",L.DomUtil.create("span",null,t).textContent=Se("ONLY_DT_IMP"),this._textarea=L.DomUtil.create("textarea",null,e),this._textarea.placeholder=Se("PASTE_INSTRUCT");const o={};o[Se("OK")]=()=>{this.importTextareaAsOp(),window.map.fire("wasabee:crosslinks"),this.closeDialog()},o[Se("GET DT")]=()=>{this.drawToolsFormat()},o[Se("dialog.import.url")]=()=>{this.fillFromURL()},this.createDialog({title:Se("IMP_WAS_OP"),html:e,width:"auto",dialogClass:"import",buttons:o,id:b.dialogNames.importDialog})},drawToolsFormat(){const e=window.plugin.drawTools?localStorage[window.plugin.drawTools.KEY_STORAGE]:void 0;e?this._textarea.value=e:this._textarea.placeholder=Se("NO_DT_ITEMS")},fillFromURL(){const e=new sr({title:Se("dialog.import.url"),label:"URL",callback:async()=>{try{const t=new URL(e.inputField.value.trim()),a=await fetch(t,{mode:"cors"});this._textarea.value=await a.text()}catch(e){return void De("Unable to fetch data from the given url.")}}});e.enable()},async importTextareaAsOp(){let e=this._textarea.value;if(e.match(new RegExp("^(https?://)?(www|intel)\\.ingress\\.com/(intel)?.*")))De(Se("NO_STOCK_INTEL"));else{if(e.match(new RegExp(".*(polyline|polygon).*"))){console.log("trying to import IITC Drawtools format... wish me luck");const t=this.parseDrawTools(e);return this._namefield.value?t.name=this._namefield.value:t.name=Se("IMPORT_OP_TITLE",{date:(new Date).toGMTString()}),await t.store(),await Pe(t.ID),(new Ii).enable(),void Nr(t)}try{const t=JSON.parse(e),a=new _e(t);await _e.load(a.ID)?(De(Se("IMP_NOPE",{error:"op already exists, either delete it or duplicate"})),await Pe(a.ID)):(await a.store(),await Pe(a.ID),ve(Se("IMPORT_OP_SUCCESS",{opName:a.name})))}catch(e){console.error("WasabeeTools: failed to import data",e),De(Se("IMP_NOPE",{error:"data invalid"}))}}},parseDrawTools(e){const t=new _e({creator:PLAYER.nickname,name:"draw tools imported"});t.startBatchMode();let a=null;try{a=JSON.parse(e)}catch(e){return console.error("Failed parseDrawTools",e),De(e),null}let o=!1;for(const e of a)if("polyline"==e.type||"polygon"==e.type)if(o){if(o!==e.color){o=!1;break}}else o=e.color;const n=this.buildWindowPortalMap();let i=0,r=0;for(const e of a){if("polyline"!=e.type&&"polygon"!=e.type)continue;let a=!1,s=!1;for(const l of e.latLngs){const c={lat:l.lat.toFixed(6),lng:l.lng.toFixed(6)};let d=t.getPortalByLatLng(c.lat,c.lng);if(d||(d=this.searchWindowPortals(c,n),d&&(t.addPortal(d),r++)),!d){const e=ee.fake(c.lat,c.lng);t.addPortal(e),d=e,i++}d&&a&&t.addLink(a,d,{color:o?"main":e.color}),a=d,s||(s=d)}"polygon"==e.type&&s&&a&&s!=a&&t.addLink(a,s,{color:o?"main":e.color})}return ve(Se("dialog.import.success_message",{count:r,faked:i})),t._batchmode=!1,t},buildWindowPortalMap(){const e=new Map;for(const t in window.portals){const a=window.portals[t].getLatLng(),o=a.lat.toFixed(6)+"/"+a.lng.toFixed(6);e.set(o,t)}return e},searchWindowPortals(e,t){const a=e.lat+"/"+e.lng;if(t.has(a)){const o=t.get(a);return ee.fake(e.lat,e.lng,o)}return!1}}),Wr=Fr,Yr=sr.extend({statics:{TYPE:"newopButton"},_displayDialog:function(){const e={};e[Se("OK")]=()=>{this._submit()},e[Se("IMPORT_OP")]=()=>{this.closeDialog(),new Wr(null).enable()},e[Se("CANCEL")]=()=>{this.options.cancelCallback&&this.options.cancelCallback(),this.closeDialog()},L.setOptions(this,{title:Se("NEW_OP"),label:Se("SET_NEW_OP"),callback:async()=>{if(this.inputField.value){const e=new _e({creator:PLAYER.nickname,name:this.inputField.value});await e.store(),await Pe(e.ID)}else De(Se("OP_NAME_UNSET"))},placeholder:Se("MUST_NOT_BE_EMPTY"),nonEmpty:!0}),this.createDialog({title:this.options.title,html:this._buildContent(),width:"auto",dialogClass:"prompt",buttons:e,id:b.dialogNames.newopButton,autofocus:!0})}});function Zr(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function qr(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function Xr(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var $r=Xr(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),es=Xr(/Edge/i),ts=Xr(/firefox/i),as=Xr(/safari/i)&&!Xr(/chrome/i)&&!Xr(/android/i),os=Xr(/iP(ad|od|hone)/i),ns=Xr(/chrome/i)&&Xr(/android/i),is={capture:!1,passive:!1};function rs(e,t,a){e.addEventListener(t,a,!$r&&is)}function ss(e,t,a){e.removeEventListener(t,a,!$r&&is)}function ls(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function cs(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function ds(e,t,a,o){if(e){a=a||document;do{if(null!=t&&(">"===t[0]?e.parentNode===a&&ls(e,t):ls(e,t))||o&&e===a)return e;if(e===a)break}while(e=cs(e))}return null}var us,ps=/\s+/g;function ms(e,t,a){if(e&&t)if(e.classList)e.classList[a?"add":"remove"](t);else{var o=(" "+e.className+" ").replace(ps," ").replace(" "+t+" "," ");e.className=(o+(a?" "+t:"")).replace(ps," ")}}function hs(e,t,a){var o=e&&e.style;if(o){if(void 0===a)return document.defaultView&&document.defaultView.getComputedStyle?a=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(a=e.currentStyle),void 0===t?a:a[t];t in o||-1!==t.indexOf("webkit")||(t="-webkit-"+t),o[t]=a+("string"==typeof a?"":"px")}}function gs(e,t){var a="";if("string"==typeof e)a=e;else do{var o=hs(e,"transform");o&&"none"!==o&&(a=o+" "+a)}while(!t&&(e=e.parentNode));var n=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return n&&new n(a)}function fs(e,t,a){if(e){var o=e.getElementsByTagName(t),n=0,i=o.length;if(a)for(;n=i:n<=i))return o;if(o===Es())break;o=ks(o,!1)}return!1}function Ts(e,t,a,o){for(var n=0,i=0,r=e.children;i2&&void 0!==arguments[2]?arguments[2]:{},o=a.evt,n=Jr(a,Is);Rs.pluginEvent.bind(vl)(e,t,qr({dragEl:xs,parentEl:Us,ghostEl:Bs,rootEl:Ks,nextEl:Gs,lastDownEl:Hs,cloneEl:zs,cloneHidden:Fs,dragStarted:al,putSortable:js,activeSortable:vl.active,originalEvent:o,oldIndex:Ws,oldDraggableIndex:Zs,newIndex:Ys,newDraggableIndex:qs,hideGhostForTarget:Al,unhideGhostForTarget:Ll,cloneNowHidden:function(){Fs=!0},cloneNowShown:function(){Fs=!1},dispatchSortableEvent:function(e){Ps({sortable:t,name:e,originalEvent:o})}},n))};function Ps(e){!function(e){var t=e.sortable,a=e.rootEl,o=e.name,n=e.targetEl,i=e.cloneEl,r=e.toEl,s=e.fromEl,l=e.oldIndex,c=e.newIndex,d=e.oldDraggableIndex,u=e.newDraggableIndex,p=e.originalEvent,m=e.putSortable,h=e.extraEventProperties;if(t=t||a&&a[Ns]){var g,f=t.options,E="on"+o.charAt(0).toUpperCase()+o.substr(1);!window.CustomEvent||$r||es?(g=document.createEvent("Event")).initEvent(o,!0,!0):g=new CustomEvent(o,{bubbles:!0,cancelable:!0}),g.to=r||a,g.from=s||a,g.item=n||a,g.clone=i,g.oldIndex=l,g.newIndex=c,g.oldDraggableIndex=d,g.newDraggableIndex=u,g.originalEvent=p,g.pullMode=m?m.lastPutMode:void 0;var _=qr(qr({},h),Rs.getEventProperties(o,t));for(var w in _)g[w]=_[w];a&&a.dispatchEvent(g),f[E]&&f[E].call(t,g)}}(qr({putSortable:js,cloneEl:zs,targetEl:xs,rootEl:Ks,oldIndex:Ws,oldDraggableIndex:Zs,newIndex:Ys,newDraggableIndex:qs},e))}var xs,Us,Bs,Ks,Gs,Hs,zs,Fs,Ws,Ys,Zs,qs,Vs,js,Qs,Js,Xs,$s,el,tl,al,ol,nl,il,rl,sl=!1,ll=!1,cl=[],dl=!1,ul=!1,pl=[],ml=!1,hl=[],gl="undefined"!=typeof document,fl=os,El=es||$r?"cssFloat":"float",_l=gl&&!ns&&!os&&"draggable"in document.createElement("div"),wl=function(){if(gl){if($r)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),Tl=function(e,t){var a=hs(e),o=parseInt(a.width)-parseInt(a.paddingLeft)-parseInt(a.paddingRight)-parseInt(a.borderLeftWidth)-parseInt(a.borderRightWidth),n=Ts(e,0,t),i=Ts(e,1,t),r=n&&hs(n),s=i&&hs(i),l=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+_s(n).width,c=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+_s(i).width;if("flex"===a.display)return"column"===a.flexDirection||"column-reverse"===a.flexDirection?"vertical":"horizontal";if("grid"===a.display)return a.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(n&&r.float&&"none"!==r.float){var d="left"===r.float?"left":"right";return!i||"both"!==s.clear&&s.clear!==d?"horizontal":"vertical"}return n&&("block"===r.display||"flex"===r.display||"table"===r.display||"grid"===r.display||l>=o&&"none"===a[El]||i&&"none"===a[El]&&l+c>o)?"vertical":"horizontal"},bl=function(e){function t(e,a){return function(o,n,i,r){var s=o.options.group.name&&n.options.group.name&&o.options.group.name===n.options.group.name;if(null==e&&(a||s))return!0;if(null==e||!1===e)return!1;if(a&&"clone"===e)return e;if("function"==typeof e)return t(e(o,n,i,r),a)(o,n,i,r);var l=(a?o:n).options.group.name;return!0===e||"string"==typeof e&&e===l||e.join&&e.indexOf(l)>-1}}var a={},o=e.group;o&&"object"==Vr(o)||(o={name:o}),a.name=o.name,a.checkPull=t(o.pull,!0),a.checkPut=t(o.put),a.revertClone=o.revertClone,e.group=a},Al=function(){!wl&&Bs&&hs(Bs,"display","none")},Ll=function(){!wl&&Bs&&hs(Bs,"display","")};gl&&!ns&&document.addEventListener("click",(function(e){if(ll)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ll=!1,!1}),!0);var kl=function(e){if(xs){e=e.touches?e.touches[0]:e;var t=(n=e.clientX,i=e.clientY,cl.some((function(e){var t=e[Ns].options.emptyInsertThreshold;if(t&&!bs(e)){var a=_s(e),o=n>=a.left-t&&n<=a.right+t,s=i>=a.top-t&&i<=a.bottom+t;return o&&s?r=e:void 0}})),r);if(t){var a={};for(var o in e)e.hasOwnProperty(o)&&(a[o]=e[o]);a.target=a.rootEl=t,a.preventDefault=void 0,a.stopPropagation=void 0,t[Ns]._onDragOver(a)}}var n,i,r},Sl=function(e){xs&&xs.parentNode[Ns]._isOutsideThisEl(e.target)};function vl(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=Qr({},t),e[Ns]=this;var a,o,n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Tl(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==vl.supportPointer&&"PointerEvent"in window&&!as,emptyInsertThreshold:5};for(var i in Rs.initializePlugins(this,e,n),n)!(i in t)&&(t[i]=n[i]);for(var r in bl(t),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&_l,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?rs(e,"pointerdown",this._onTapStart):(rs(e,"mousedown",this._onTapStart),rs(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(rs(e,"dragover",this),rs(e,"dragenter",this)),cl.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),Qr(this,(o=[],{captureAnimationState:function(){o=[],this.options.animation&&[].slice.call(this.el.children).forEach((function(e){if("none"!==hs(e,"display")&&e!==vl.ghost){o.push({target:e,rect:_s(e)});var t=qr({},o[o.length-1].rect);if(e.thisAnimationDuration){var a=gs(e,!0);a&&(t.top-=a.f,t.left-=a.e)}e.fromRect=t}}))},addAnimationState:function(e){o.push(e)},removeAnimationState:function(e){o.splice(function(e,t){for(var a in e)if(e.hasOwnProperty(a))for(var o in t)if(t.hasOwnProperty(o)&&t[o]===e[a][o])return Number(a);return-1}(o,{target:e}),1)},animateAll:function(e){var t=this;if(!this.options.animation)return clearTimeout(a),void("function"==typeof e&&e());var n=!1,i=0;o.forEach((function(e){var a=0,o=e.target,r=o.fromRect,s=_s(o),l=o.prevFromRect,c=o.prevToRect,d=e.rect,u=gs(o,!0);u&&(s.top-=u.f,s.left-=u.e),o.toRect=s,o.thisAnimationDuration&&Ss(l,s)&&!Ss(r,s)&&(d.top-s.top)/(d.left-s.left)==(r.top-s.top)/(r.left-s.left)&&(a=function(e,t,a,o){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-a.top,2)+Math.pow(t.left-a.left,2))*o.animation}(d,l,c,t.options)),Ss(s,r)||(o.prevFromRect=r,o.prevToRect=s,a||(a=t.options.animation),t.animate(o,d,s,a)),a&&(n=!0,i=Math.max(i,a),clearTimeout(o.animationResetTimer),o.animationResetTimer=setTimeout((function(){o.animationTime=0,o.prevFromRect=null,o.fromRect=null,o.prevToRect=null,o.thisAnimationDuration=null}),a),o.thisAnimationDuration=a)})),clearTimeout(a),n?a=setTimeout((function(){"function"==typeof e&&e()}),i):"function"==typeof e&&e(),o=[]},animate:function(e,t,a,o){if(o){hs(e,"transition",""),hs(e,"transform","");var n=gs(this.el),i=n&&n.a,r=n&&n.d,s=(t.left-a.left)/(i||1),l=(t.top-a.top)/(r||1);e.animatingX=!!s,e.animatingY=!!l,hs(e,"transform","translate3d("+s+"px,"+l+"px,0)"),this.forRepaintDummy=function(e){return e.offsetWidth}(e),hs(e,"transition","transform "+o+"ms"+(this.options.easing?" "+this.options.easing:"")),hs(e,"transform","translate3d(0,0,0)"),"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout((function(){hs(e,"transition",""),hs(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1}),o)}}}))}function Ol(e,t,a,o,n,i,r,s){var l,c,d=e[Ns],u=d.options.onMove;return!window.CustomEvent||$r||es?(l=document.createEvent("Event")).initEvent("move",!0,!0):l=new CustomEvent("move",{bubbles:!0,cancelable:!0}),l.to=t,l.from=e,l.dragged=a,l.draggedRect=o,l.related=n||t,l.relatedRect=i||_s(t),l.willInsertAfter=s,l.originalEvent=r,e.dispatchEvent(l),u&&(c=u.call(d,l,r)),c}function Dl(e){e.draggable=!1}function Nl(){ml=!1}function Cl(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,a=t.length,o=0;a--;)o+=t.charCodeAt(a);return o.toString(36)}function yl(e){return setTimeout(e,0)}function Rl(e){return clearTimeout(e)}vl.prototype={constructor:vl,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(ol=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,xs):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,a=this.el,o=this.options,n=o.preventOnFilter,i=e.type,r=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,s=(r||e).target,l=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,c=o.filter;if(function(e){hl.length=0;for(var t=e.getElementsByTagName("input"),a=t.length;a--;){var o=t[a];o.checked&&hl.push(o)}}(a),!xs&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||o.disabled)&&!l.isContentEditable&&(this.nativeDraggable||!as||!s||"SELECT"!==s.tagName.toUpperCase())&&!((s=ds(s,o.draggable,a,!1))&&s.animated||Hs===s)){if(Ws=As(s),Zs=As(s,o.draggable),"function"==typeof c){if(c.call(this,e,s,this))return Ps({sortable:t,rootEl:l,name:"filter",targetEl:s,toEl:a,fromEl:a}),Ms("filter",t,{evt:e}),void(n&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(o){if(o=ds(l,o.trim(),a,!1))return Ps({sortable:t,rootEl:o,name:"filter",targetEl:s,fromEl:a,toEl:a}),Ms("filter",t,{evt:e}),!0}))))return void(n&&e.cancelable&&e.preventDefault());o.handle&&!ds(l,o.handle,a,!1)||this._prepareDragStart(e,r,s)}}},_prepareDragStart:function(e,t,a){var o,n=this,i=n.el,r=n.options,s=i.ownerDocument;if(a&&!xs&&a.parentNode===i){var l=_s(a);if(Ks=i,Us=(xs=a).parentNode,Gs=xs.nextSibling,Hs=a,Vs=r.group,vl.dragged=xs,Qs={target:xs,clientX:(t||e).clientX,clientY:(t||e).clientY},el=Qs.clientX-l.left,tl=Qs.clientY-l.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,xs.style["will-change"]="all",o=function(){Ms("delayEnded",n,{evt:e}),vl.eventCanceled?n._onDrop():(n._disableDelayedDragEvents(),!ts&&n.nativeDraggable&&(xs.draggable=!0),n._triggerDragStart(e,t),Ps({sortable:n,name:"choose",originalEvent:e}),ms(xs,r.chosenClass,!0))},r.ignore.split(",").forEach((function(e){fs(xs,e.trim(),Dl)})),rs(s,"dragover",kl),rs(s,"mousemove",kl),rs(s,"touchmove",kl),rs(s,"mouseup",n._onDrop),rs(s,"touchend",n._onDrop),rs(s,"touchcancel",n._onDrop),ts&&this.nativeDraggable&&(this.options.touchStartThreshold=4,xs.draggable=!0),Ms("delayStart",this,{evt:e}),!r.delay||r.delayOnTouchOnly&&!t||this.nativeDraggable&&(es||$r))o();else{if(vl.eventCanceled)return void this._onDrop();rs(s,"mouseup",n._disableDelayedDrag),rs(s,"touchend",n._disableDelayedDrag),rs(s,"touchcancel",n._disableDelayedDrag),rs(s,"mousemove",n._delayedDragTouchMoveHandler),rs(s,"touchmove",n._delayedDragTouchMoveHandler),r.supportPointer&&rs(s,"pointermove",n._delayedDragTouchMoveHandler),n._dragStartTimer=setTimeout(o,r.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){xs&&Dl(xs),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;ss(e,"mouseup",this._disableDelayedDrag),ss(e,"touchend",this._disableDelayedDrag),ss(e,"touchcancel",this._disableDelayedDrag),ss(e,"mousemove",this._delayedDragTouchMoveHandler),ss(e,"touchmove",this._delayedDragTouchMoveHandler),ss(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?rs(document,"pointermove",this._onTouchMove):rs(document,t?"touchmove":"mousemove",this._onTouchMove):(rs(xs,"dragend",this),rs(Ks,"dragstart",this._onDragStart));try{document.selection?yl((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(sl=!1,Ks&&xs){Ms("dragStarted",this,{evt:t}),this.nativeDraggable&&rs(document,"dragover",Sl);var a=this.options;!e&&ms(xs,a.dragClass,!1),ms(xs,a.ghostClass,!0),vl.active=this,e&&this._appendGhost(),Ps({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Js){this._lastX=Js.clientX,this._lastY=Js.clientY,Al();for(var e=document.elementFromPoint(Js.clientX,Js.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Js.clientX,Js.clientY))!==t;)t=e;if(xs.parentNode[Ns]._isOutsideThisEl(e),t)do{if(t[Ns]&&t[Ns]._onDragOver({clientX:Js.clientX,clientY:Js.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break;e=t}while(t=t.parentNode);Ll()}},_onTouchMove:function(e){if(Qs){var t=this.options,a=t.fallbackTolerance,o=t.fallbackOffset,n=e.touches?e.touches[0]:e,i=Bs&&gs(Bs,!0),r=Bs&&i&&i.a,s=Bs&&i&&i.d,l=fl&&rl&&Ls(rl),c=(n.clientX-Qs.clientX+o.x)/(r||1)+(l?l[0]-pl[0]:0)/(r||1),d=(n.clientY-Qs.clientY+o.y)/(s||1)+(l?l[1]-pl[1]:0)/(s||1);if(!vl.active&&!sl){if(a&&Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))o.right+10||e.clientX<=o.right&&e.clientY>o.bottom&&e.clientX>=o.left:e.clientX>o.right&&e.clientY>o.top||e.clientX<=o.right&&e.clientY>o.bottom+10}(e,n,this)&&!g.animated){if(g===xs)return y(!1);if(g&&i===e.target&&(r=g),r&&(a=_s(r)),!1!==Ol(Ks,i,xs,t,r,a,e,!!r))return C(),g&&g.nextSibling?i.insertBefore(xs,g.nextSibling):i.appendChild(xs),Us=i,R(),y(!0)}else if(g&&function(e,t,a){var o=_s(Ts(a.el,0,a.options,!0));return t?e.clientXd+c*i/2:lu-il)return-nl}else if(l>d+c*(1-n)/2&&lu-c*i/2)?l>d+c/2?1:-1:0}(e,r,a,n,b?1:s.swapThreshold,null==s.invertedSwapThreshold?s.swapThreshold:s.invertedSwapThreshold,ul,ol===r),0!==E){var S=As(xs);do{S-=E,w=Us.children[S]}while(w&&("none"===hs(w,"display")||w===Bs))}if(0===E||w===r)return y(!1);ol=r,nl=E;var v=r.nextElementSibling,O=!1,D=Ol(Ks,i,xs,t,r,a,e,O=1===E);if(!1!==D)return 1!==D&&-1!==D||(O=1===D),ml=!0,setTimeout(Nl,30),C(),O&&!v?i.appendChild(xs):r.parentNode.insertBefore(xs,O?v:r),L&&Os(L,0,k-L.scrollTop),Us=xs.parentNode,void 0===_||ul||(il=Math.abs(_-_s(r)[A])),R(),y(!0)}if(i.contains(xs))return y(!1)}return!1}function N(s,l){Ms(s,m,qr({evt:e,isOwner:d,axis:n?"vertical":"horizontal",revert:o,dragRect:t,targetRect:a,canSort:u,fromSortable:p,target:r,completed:y,onMove:function(a,o){return Ol(Ks,i,xs,t,a,_s(a),e,o)},changed:R},l))}function C(){N("dragOverAnimationCapture"),m.captureAnimationState(),m!==p&&p.captureAnimationState()}function y(t){return N("dragOverCompleted",{insertion:t}),t&&(d?c._hideClone():c._showClone(m),m!==p&&(ms(xs,js?js.options.ghostClass:c.options.ghostClass,!1),ms(xs,s.ghostClass,!0)),js!==m&&m!==vl.active?js=m:m===vl.active&&js&&(js=null),p===m&&(m._ignoreWhileAnimating=r),m.animateAll((function(){N("dragOverAnimationComplete"),m._ignoreWhileAnimating=null})),m!==p&&(p.animateAll(),p._ignoreWhileAnimating=null)),(r===xs&&!xs.animated||r===i&&!r.animated)&&(ol=null),s.dragoverBubble||e.rootEl||r===document||(xs.parentNode[Ns]._isOutsideThisEl(e.target),!t&&kl(e)),!s.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),h=!0}function R(){Ys=As(xs),qs=As(xs,s.draggable),Ps({sortable:m,name:"change",toEl:i,newIndex:Ys,newDraggableIndex:qs,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){ss(document,"mousemove",this._onTouchMove),ss(document,"touchmove",this._onTouchMove),ss(document,"pointermove",this._onTouchMove),ss(document,"dragover",kl),ss(document,"mousemove",kl),ss(document,"touchmove",kl)},_offUpEvents:function(){var e=this.el.ownerDocument;ss(e,"mouseup",this._onDrop),ss(e,"touchend",this._onDrop),ss(e,"pointerup",this._onDrop),ss(e,"touchcancel",this._onDrop),ss(document,"selectstart",this)},_onDrop:function(e){var t=this.el,a=this.options;Ys=As(xs),qs=As(xs,a.draggable),Ms("drop",this,{evt:e}),Us=xs&&xs.parentNode,Ys=As(xs),qs=As(xs,a.draggable),vl.eventCanceled||(sl=!1,ul=!1,dl=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Rl(this.cloneId),Rl(this._dragStartId),this.nativeDraggable&&(ss(document,"drop",this),ss(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),as&&hs(document.body,"user-select",""),hs(xs,"transform",""),e&&(al&&(e.cancelable&&e.preventDefault(),!a.dropBubble&&e.stopPropagation()),Bs&&Bs.parentNode&&Bs.parentNode.removeChild(Bs),(Ks===Us||js&&"clone"!==js.lastPutMode)&&zs&&zs.parentNode&&zs.parentNode.removeChild(zs),xs&&(this.nativeDraggable&&ss(xs,"dragend",this),Dl(xs),xs.style["will-change"]="",al&&!sl&&ms(xs,js?js.options.ghostClass:this.options.ghostClass,!1),ms(xs,this.options.chosenClass,!1),Ps({sortable:this,name:"unchoose",toEl:Us,newIndex:null,newDraggableIndex:null,originalEvent:e}),Ks!==Us?(Ys>=0&&(Ps({rootEl:Us,name:"add",toEl:Us,fromEl:Ks,originalEvent:e}),Ps({sortable:this,name:"remove",toEl:Us,originalEvent:e}),Ps({rootEl:Us,name:"sort",toEl:Us,fromEl:Ks,originalEvent:e}),Ps({sortable:this,name:"sort",toEl:Us,originalEvent:e})),js&&js.save()):Ys!==Ws&&Ys>=0&&(Ps({sortable:this,name:"update",toEl:Us,originalEvent:e}),Ps({sortable:this,name:"sort",toEl:Us,originalEvent:e})),vl.active&&(null!=Ys&&-1!==Ys||(Ys=Ws,qs=Zs),Ps({sortable:this,name:"end",toEl:Us,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){Ms("nulling",this),Ks=xs=Us=Bs=Gs=zs=Hs=Fs=Qs=Js=al=Ys=qs=Ws=Zs=ol=nl=js=Vs=vl.dragged=vl.ghost=vl.clone=vl.active=null,hl.forEach((function(e){e.checked=!0})),hl.length=Xs=$s=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":xs&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],a=this.el.children,o=0,n=a.length,i=this.options;o{o.splice(0);for(const e of t.children)o.push(e.textContent);fi(o)}}),e},_displayDialog:function(){const e=this._buildContent();this.createDialog({title:Se("SKINS_MANAGE_TITLE"),html:e,width:"auto",dialogClass:"skin",id:b.dialogNames.skinDialog})}}),jl=Kt.extend({statics:{TYPE:"settings"},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this)},update:function(){this.setContent(this._getContent()),this.setTitle(Se("SETTINGS_TITLE"))},_addCheckBox(e,t,a,o,n,i){const r=L.DomUtil.create("label","checkbox",e),s=L.DomUtil.create("input","",r);s.type="checkbox",s.id=a,L.DomUtil.create("span","",r).textContent=t;const l=localStorage[o];i||"true"!==l||(s.checked=!0),i&&"false"!==l&&(s.checked=!0),L.DomEvent.on(s,"change",(e=>{L.DomEvent.stop(e),localStorage[o]=s.checked,n&&n(s.checked)}))},_addSelect(e,t,a,o,n){L.DomUtil.create("label",null,e).textContent=t;const i=L.DomUtil.create("select",null,e),r=localStorage[a];for(const[e,t]of o){const a=L.DomUtil.create("option",null,i);a.textContent=e,a.value=t,t==r&&(a.selected=!0)}L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),localStorage[a]=i.value,n&&n(i.value)}))},_getContent:function(){const e=L.DomUtil.create("div","container"),t=[];for(const e in window.plugin.wasabee.skin.strings)t.push([e,e]);this._addSelect(e,Se("LANG"),window.plugin.wasabee.static.constants.LANGUAGE_KEY,t,(()=>{window.map.fire("wasabee:ui:lang")})),this._addSelect(e,Se("SKIP_CONFIRM"),window.plugin.wasabee.static.constants.SKIP_CONFIRM,[[Se("SKIP_CONFIRM_NEVER"),"never"],[Se("SKIP_CONFIRM_ENTITY"),"entity"],[Se("SKIP_CONFIRM_ALWAYS"),"always"]]),window.plugin.userLocation&&this._addCheckBox(e,Se("SEND LOCATION"),"wasabee-setting-sendloc",window.plugin.wasabee.static.constants.SEND_LOCATION_KEY),this._addCheckBox(e,Se("MERGE ON UPDATE"),"wasabee-setting-rebase-update",window.plugin.wasabee.static.constants.REBASE_UPDATE_KEY,null,!0),this._addCheckBox(e,Se("AUTOLOAD"),"wasabee-setting-autoload",window.plugin.wasabee.static.constants.AUTO_LOAD_FAKED),window.isSmartphone()&&this._addCheckBox(e,Se("USE PANES ON MOBILE"),"wasabee-setting-usepanes",window.plugin.wasabee.static.constants.USE_PANES),this._addCheckBox(e,Se("dialog.settings.disable_live_updates"),"wasabee-setting-firebase",window.plugin.wasabee.static.constants.FIREBASE_DISABLE),this._addCheckBox(e,Se("SEND ANALYTICS"),"wasabee-setting-analytics",window.plugin.wasabee.static.constants.SEND_ANALYTICS_KEY),this._addSelect(e,Se("AUTOLOAD_RATE"),window.plugin.wasabee.static.constants.PORTAL_DETAIL_RATE_KEY,[1,100,250,500,750,1e3].map((e=>[e,e]))),this._addSelect(e,Se("TRAWL SKIP TILES"),window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14].map((e=>[e,e]))),this._addCheckBox(e,Se("dialog.settings.populate_opportals"),"wasabee-setting-opportals",window.plugin.wasabee.static.constants.POPULATE_OPPORTALS,Xi);const a=L.DomUtil.create("button","server",e);a.textContent=Se("WSERVER",{url:kt()}),a.href="#",L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),this.setServer(a)}));const o=L.DomUtil.create("button",null,e);return o.textContent=Se("SKINS_BUTTON"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),(new Vl).enable()})),e},setServer:function(e){const t=new sr({title:Se("CHANGE_WAS_SERVER"),label:Se("NEW_WAS_SERVER"),suggestions:window.plugin.wasabee.static.publicServers.map((e=>({text:`${e.name} (${e.url})`,value:e.url}))),callback:()=>{t.inputField.value&&(St(t.inputField.value),e.textContent=Se("WSERVER",{url:kt()}),$.purge())},placeholder:kt()});t.enable()},_displayDialog:function(){const e=this._getContent(),t={};t[Se("OK")]=()=>{this.closeDialog()},t[Se("CLEAROPS BUTTON")]=()=>{this.closeDialog(),function(){const e=new si({title:Se("CLEAROPS BUTTON TITLE"),label:Se("CLEAROPS PROMPT"),type:"operation",callback:()=>{!async function(){(await K).close(),function(e,{blocked:t}={}){const a=indexedDB.deleteDatabase(e);t&&a.addEventListener("blocked",(()=>t())),R(a).then((()=>{}))}("wasabee")}();for(const e of[w.SELECTED_OP_KEY,w.OPS_LIST_KEY,w.OPS_LIST_HIDDEN_KEY,w.OPS_SHOW_HIDDEN_OPS,w.SEND_LOCATION_KEY,w.SEND_ANALYTICS_KEY,w.EXPERT_MODE_KEY,w.LANGUAGE_KEY,w.AGENT_INFO_KEY,w.LINK_SOURCE_KEY,w.ANCHOR_ONE_KEY,w.ANCHOR_TWO_KEY,w.ANCHOR_THREE_KEY,w.PORTAL_DETAIL_RATE_KEY,w.SKIN_KEY,w.LAST_MARKER_KEY,w.AUTO_LOAD_FAKED,w.TRAWL_SKIP_STEPS,w.USE_PANES,w.SKIP_CONFIRM,w.SERVER_BASE_KEY,w.REBASE_UPDATE_KEY,w.FIREBASE_DISABLE])delete localStorage[e];const e=window.plugin.wasabee;e.buttons.remove(),document.querySelectorAll("#toolbox a.wasabee").forEach((e=>e.remove())),window.removeLayerGroup(e.portalLayerGroup),window.removeLayerGroup(e.linkLayerGroup),window.removeLayerGroup(e.markerLayerGroup),window.removeLayerGroup(e.agentLayerGroup),window.removeLayerGroup(e.zoneLayerGroup),window.removeLayerGroup(e.backgroundOpsGroup),window.removeLayerGroup(e.defensiveLayers),window.removeLayerGroup(e.crossLinkLayers)}});e.enable()}()},this.createDialog({title:Se("SETTINGS_TITLE"),html:e,width:"auto",dialogClass:"settings",buttons:t,id:b.dialogNames.settings})}}),Ql=jl;let Jl;async function Xl(){return(await G).getAll("defensivekeys")}async function $l(){if(!1!==window.isLayerGroupDisplayed("Wasabee-D Keys")){if(console.debug("running drawWasabeeDkeys"),Jl.clearLayers(),$.isLoggedIn())try{const e=await It("/api/v1/d");if(!e||!e.DefensiveKeys||0==e.DefensiveKeys.length)return;window.plugin.wasabee.idb.clear("defensivekeys");for(const t of e.DefensiveKeys)try{await window.plugin.wasabee.idb.put("defensivekeys",t)}catch(e){console.error(e)}}catch(e){console.error(e)}!async function(){const e=await Xl(),t=new Set;for(const a of e)t.has(a.PortalID)||(t.add(a.PortalID),ec(a))}()}}function ec(e){Jl[e.PortalID]&&Jl[e.PortalID]._leaflet_id&&Jl.removeLayer(Jl[e.PortalID]);const t=L.marker([+e.Lat,+e.Lng],{title:e.Name,icon:L.divIcon({className:"wasabee-defense-icon",shadowUrl:null,iconSize:L.point(24,40),iconAnchor:L.point(12,40),popupAnchor:L.point(-1,-48)})});Jl[e.PortalID]=t,t.addTo(Jl),window.registerMarkerForOMS(t),t.bindPopup("loading...",{className:"wasabee-popup",closeButton:!1}),t.on("click spiderfiedclick",(async a=>{L.DomEvent.stop(a);try{const a=await async function(e){const t=L.DomUtil.create("div","wasabee-wd-popup"),a=L.DomUtil.create("ul",null,t),o=await async function(e){return(await G).getAllFromIndex("defensivekeys","PortalID",e)}(e);for(const e of o){const t=await ut(e.GID),o=L.DomUtil.create("li",null,a);t?o.appendChild(ii(t)):L.DomUtil.create("span",null,o).textContent=Se("LOADING"),L.DomUtil.create("span",null,o).textContent=`: ${e.Count} ${e.CapID}`}return t}(e.PortalID);t.setPopupContent(a),t._popup._wrapper&&t._popup._wrapper.classList.add("wasabee-popup"),t.update()}catch(e){console.error("getting wd marker popup: ",e),t.setPopupContent(e),t.update()}t.openPopup()}),t)}const tc=Kt.extend({statics:{TYPE:"wasabeeDList"},addHooks:async function(){Kt.prototype.addHooks.call(this);const e=this;this._UIUpdateHook=()=>{e.update()},this._me=await pt(),await this._displayDialog(),window.addHook("portalDetailLoaded",this._UIUpdateHook)},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.removeHook("portalDetailLoaded",this._UIUpdateHook)},update:async function(){const e=await this.getListDialogContent();this.setContent(e.table)},_displayDialog:async function(){const e=await this.getListDialogContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("WASABEE_D_LIST"),html:e.table,width:"auto",dialogClass:"wasabeedlist",buttons:t,id:b.dialogNames.wasabeeDList})},getListDialogContent:async function(){const e=new pi;return e.fields=[{name:Se("PORTAL"),value:e=>e.Name?e.Name:e.PortalID,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{const o=new ee({id:a.PortalID,name:a.Name,lat:a.Lat,lng:a.Lng});e.appendChild(We(o))}},{name:Se("COUNT"),value:e=>e.Count,sort:(e,t)=>e-t,format:(e,t)=>{e.textContent=t}},{name:Se("CAPSULE"),value:e=>e.CapID,sort:(e,t)=>e.localeCompare(t),format:(e,t)=>{e.textContent=t}}],e.sortBy=0,e.items=await async function(e){return(await Xl()).filter((t=>t.GID==e))}(this._me.id),e}}),ac=tc,oc=Kt.extend({statics:{TYPE:"defensiveKeysDialog"},addHooks:function(){Kt.prototype.addHooks.call(this),this._me=$.localGet(),this._pch=e=>{this._portalClickedHook(e)},window.addHook("portalSelected",this._pch),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.removeHook("portalSelected",this._pch)},_portalClickedHook:async function(){if(this._selectedPortal=Ze(),this._selectedPortal){this._portal.textContent="",this._portal.appendChild(We(this._selectedPortal));const e=await async function(e,t){return(await G).get("defensivekeys",[e,t])}(this._me.id,this._selectedPortal.id);e?(this._count.value=e.Count,this._capID.value=e.CapID):(this._count.value="",this._capID.value="")}else this._portal.textContent=Se("PLEASE_SELECT_PORTAL")},_buildContent:function(){const e=L.DomUtil.create("div","container");this._portal=L.DomUtil.create("div","portal",e),this._count=L.DomUtil.create("input",null,e),this._count.placeholder="number of keys",this._count.size=3,this._capID=L.DomUtil.create("input",null,e),this._capID.placeholder="Capsule ID",this._capID.size=8;const t=L.DomUtil.create("button",null,e);t.textContent=Se("UPDATE_COUNT"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this._addDKey()}));const a=L.DomUtil.create("button",null,e);return a.textContent=Se("D_SHOW_LIST"),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),(new ac).enable()})),this._portalClickedHook(),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("INPUT_DT_KEY_COUNT"),html:e,width:"auto",dialogClass:"wdkeys",buttons:t,id:b.dialogNames.wasabeeDKeyButton})},_addDKey:async function(){const e={PortalID:this._selectedPortal.id,Count:Number(this._count.value),CapID:this._capID.value,Name:this._selectedPortal.name,Lat:this._selectedPortal.lat,Lng:this._selectedPortal.lng};try{const a=JSON.stringify(e);console.log(a),await(t=a,Mt("/api/v1/d",t,"application/json;charset=UTF-8")),ve("Registered with server"),window.map.fire("wasabee:defensivekeys")}catch(e){console.error(e),De(e)}var t}}),nc=Ht.extend({statics:{TYPE:"wasabeeButton"},initialize:function(e){this.type=nc.TYPE,this.title=ke("WASABEE BUTTON TITLE"),this.handler=this._toggleActions,this._container=e,this.button=this._createButton({container:e,className:"wasabee-toolbar-wasabee",callback:this.handler,context:this,title:this.title}),this._lastLoginState=!1,this._buildActions(),this.setSubActions(this.getSubActions()),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=ke("WASABEE BUTTON TITLE"),this._buildActions(),this.setSubActions(this.getSubActions())})),this.update()},getSubActions:function(){let e=[];return this._lastLoginState?(e=[this._logoutAction],e.push(this._teamAction)):e=[this._loginAction],e=e.concat(this._alwaysActions),this._lastLoginState&&(e=e.concat(this._Dactions)),e=e.concat(this._SettingsActions),e},_buildActions:function(){this._loginAction={title:ke("LOG IN"),text:ke("LOG IN"),callback:()=>{this.disable(),(new zr).enable()},context:this},this._teamAction={title:ke("TEAMS BUTTON TITLE"),text:ke("TEAMS BUTTON"),callback:()=>{this.disable(),(new mr).enable()},context:this},this._logoutAction={title:ke("LOG_OUT"),text:ke("LOG_OUT"),callback:async()=>{try{await It("/api/v1/me/logout")}catch(e){console.error(e),De(e)}$.purge(),dt({id:"wasabeeLogout"})},context:this},this._teamAction={title:ke("TEAMS BUTTON TITLE"),text:ke("TEAMS BUTTON"),callback:()=>{this.disable(),(new mr).enable()},context:this},this._alwaysActions=[{title:ke("OPS BUTTON TITLE"),text:ke("OPS BUTTON"),callback:()=>{this.disable(),(new Kr).enable()},context:this},{title:ke("NEWOP BUTTON TITLE"),text:ke("NEWOP BUTTON"),callback:()=>{this.disable(),(new Yr).enable()},context:this}],this._Dactions=[{title:ke("WD BUTTON TITLE"),text:ke("WD BUTTON"),callback:()=>{this.disable(),(new oc).enable()},context:this}],this._SettingsActions=[{title:ke("toolbar.wasabee.settings"),text:ke("toolbar.wasabee.settings"),callback:()=>{this.disable(),(new Ql).enable()},context:this}]},update:function(){const e=$.isLoggedIn();e!=this._lastLoginState&&(this._lastLoginState=e,e?this.button.classList.add("wasabee-logged-in"):this.button.classList.remove("wasabee-logged-in"),this.setSubActions(this.getSubActions()),this.disable())}}),ic=nc,rc=Ht.extend({statics:{TYPE:"syncButton"},update:function(){const e=$.isLoggedIn();this.button.style.display=e?"block":"none"},initialize:function(e){this.type=rc.TYPE,this.title=Se("SYNC"),this.button=this._createButton({container:e,className:"wasabee-toolbar-sync",context:this,title:this.title,callback:async()=>{this.button.classList.add("loading"),await yr(),this.button.classList.remove("loading")}}),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("SYNC")})),window.map.on("wasabee:fullsync",(()=>{this.button.classList.remove("loading")})),window.map.on("wasabee:login",(()=>{this.button.classList.add("loading")})),this.update()}}),sc=rc;let lc=" ";class cc{static get separator(){return lc}static set separator(e){lc=e}static parse(e){if(!isNaN(parseFloat(e))&&isFinite(e))return Number(e);const t=String(e).trim().replace(/^-/,"").replace(/[NSEW]$/i,"").split(/[^0-9.,]+/);if(""==t[t.length-1]&&t.splice(t.length-1),""==t)return NaN;let a=null;switch(t.length){case 3:a=t[0]/1+t[1]/60+t[2]/3600;break;case 2:a=t[0]/1+t[1]/60;break;case 1:a=t[0];break;default:return NaN}return/^-|[WS]$/i.test(e.trim())&&(a=-a),Number(a)}static toDms(e,t="d",a){if(isNaN(e))return null;if("string"==typeof e&&""==e.trim())return null;if("boolean"==typeof e)return null;if(e==1/0)return null;if(null==e)return null;if(void 0===a)switch(t){case"d":case"deg":a=4;break;case"dm":case"deg+min":a=2;break;case"dms":case"deg+min+sec":a=0;break;default:t="d",a=4}e=Math.abs(e);let o=null,n=null,i=null,r=null;switch(t){default:case"d":case"deg":n=e.toFixed(a),n<100&&(n="0"+n),n<10&&(n="0"+n),o=n+"°";break;case"dm":case"deg+min":n=Math.floor(e),i=(60*e%60).toFixed(a),60==i&&(i=(0).toFixed(a),n++),n=("000"+n).slice(-3),i<10&&(i="0"+i),o=n+"°"+cc.separator+i+"′";break;case"dms":case"deg+min+sec":n=Math.floor(e),i=Math.floor(3600*e/60)%60,r=(3600*e%60).toFixed(a),60==r&&(r=(0).toFixed(a),i++),60==i&&(i=0,n++),n=("000"+n).slice(-3),i=("00"+i).slice(-2),r<10&&(r="0"+r),o=n+"°"+cc.separator+i+"′"+cc.separator+r+"″"}return o}static toLat(e,t,a){const o=cc.toDms(cc.wrap90(e),t,a);return null===o?"–":o.slice(1)+cc.separator+(e<0?"S":"N")}static toLon(e,t,a){const o=cc.toDms(cc.wrap180(e),t,a);return null===o?"–":o+cc.separator+(e<0?"W":"E")}static toBrng(e,t,a){const o=cc.toDms(cc.wrap360(e),t,a);return null===o?"–":o.replace("360","0")}static fromLocale(e){const t=123456.789.toLocaleString(),a={thousands:t.slice(3,4),decimal:t.slice(7,8)};return e.replace(a.thousands,"⁜").replace(a.decimal,".").replace("⁜",",")}static toLocale(e){const t=123456.789.toLocaleString(),a={thousands:t.slice(3,4),decimal:t.slice(7,8)};return e.replace(/,([0-9])/,"⁜$1").replace(".",a.decimal).replace("⁜",a.thousands)}static compassPoint(e,t=3){if(![1,2,3].includes(Number(t)))throw new RangeError(`invalid precision ‘${t}’`);e=cc.wrap360(e);const a=4*2**(t-1);return["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"][Math.round(e*a/360)%a*16/a]}static wrap90(e){if(-90<=e&&e<=90)return e;const t=e;return 1*Math.abs(((t-90)%360+360)%360-180)-90}static wrap180(e){if(-180<=e&&e<=180)return e;const t=360;return((360*e/t-180)%t+t)%t-180}static wrap360(e){if(0<=e&&e<360)return e;const t=360;return(360*e/t%t+t)%t}}Number.prototype.toRadians=function(){return this*Math.PI/180},Number.prototype.toDegrees=function(){return 180*this/Math.PI};const dc=cc;class uc{constructor(e,t,a){if(isNaN(e)||isNaN(t)||isNaN(a))throw new TypeError(`invalid vector [${e},${t},${a}]`);this.x=Number(e),this.y=Number(t),this.z=Number(a)}get length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}plus(e){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");return new uc(this.x+e.x,this.y+e.y,this.z+e.z)}minus(e){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");return new uc(this.x-e.x,this.y-e.y,this.z-e.z)}times(e){if(isNaN(e))throw new TypeError(`invalid scalar value ‘${e}’`);return new uc(this.x*e,this.y*e,this.z*e)}dividedBy(e){if(isNaN(e))throw new TypeError(`invalid scalar value ‘${e}’`);return new uc(this.x/e,this.y/e,this.z/e)}dot(e){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");return this.x*e.x+this.y*e.y+this.z*e.z}cross(e){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");const t=this.y*e.z-this.z*e.y,a=this.z*e.x-this.x*e.z,o=this.x*e.y-this.y*e.x;return new uc(t,a,o)}negate(){return new uc(-this.x,-this.y,-this.z)}unit(){const e=this.length;if(1==e)return this;if(0==e)return this;const t=this.x/e,a=this.y/e,o=this.z/e;return new uc(t,a,o)}angleTo(e,t){if(!(e instanceof uc))throw new TypeError("v is not Vector3d object");if(!(t instanceof uc||null==t))throw new TypeError("n is not Vector3d object");const a=null==t||this.cross(e).dot(t)>=0?1:-1,o=this.cross(e).length*a,n=this.dot(e);return Math.atan2(o,n)}rotateAround(e,t){if(!(e instanceof uc))throw new TypeError("axis is not Vector3d object");const a=t.toRadians(),o=this.unit(),n=e.unit(),i=Math.sin(a),r=Math.cos(a),s=1-r,l=n.x,c=n.y,d=n.z,u=[[s*l*l+r,s*l*c-i*d,s*l*d+i*c],[s*l*c+i*d,s*c*c+r,s*c*d-i*l],[s*l*d-i*c,s*c*d+i*l,s*d*d+r]],p=[u[0][0]*o.x+u[0][1]*o.y+u[0][2]*o.z,u[1][0]*o.x+u[1][1]*o.y+u[1][2]*o.z,u[2][0]*o.x+u[2][1]*o.y+u[2][2]*o.z];return new uc(p[0],p[1],p[2])}toString(e=3){return`[${this.x.toFixed(e)},${this.y.toFixed(e)},${this.z.toFixed(e)}]`}}Number.prototype.toRadians=function(){return this*Math.PI/180},Number.prototype.toDegrees=function(){return 180*this/Math.PI};const pc=uc,mc={WGS84:{a:6378137,b:6356752.314245,f:1/298.257223563}},hc={WGS84:{ellipsoid:mc.WGS84}};Object.freeze(mc.WGS84),Object.freeze(hc.WGS84);class gc{constructor(e,t,a=0){if(isNaN(e)||null==e)throw new TypeError(`invalid lat ‘${e}’`);if(isNaN(t)||null==t)throw new TypeError(`invalid lon ‘${t}’`);if(isNaN(a)||null==a)throw new TypeError(`invalid height ‘${a}’`);this._lat=dc.wrap90(Number(e)),this._lon=dc.wrap180(Number(t)),this._height=Number(a)}get lat(){return this._lat}get latitude(){return this._lat}set lat(e){if(this._lat=isNaN(e)?dc.wrap90(dc.parse(e)):dc.wrap90(Number(e)),isNaN(this._lat))throw new TypeError(`invalid lat ‘${e}’`)}set latitude(e){if(this._lat=isNaN(e)?dc.wrap90(dc.parse(e)):dc.wrap90(Number(e)),isNaN(this._lat))throw new TypeError(`invalid latitude ‘${e}’`)}get lon(){return this._lon}get lng(){return this._lon}get longitude(){return this._lon}set lon(e){if(this._lon=isNaN(e)?dc.wrap180(dc.parse(e)):dc.wrap180(Number(e)),isNaN(this._lon))throw new TypeError(`invalid lon ‘${e}’`)}set lng(e){if(this._lon=isNaN(e)?dc.wrap180(dc.parse(e)):dc.wrap180(Number(e)),isNaN(this._lon))throw new TypeError(`invalid lng ‘${e}’`)}set longitude(e){if(this._lon=isNaN(e)?dc.wrap180(dc.parse(e)):dc.wrap180(Number(e)),isNaN(this._lon))throw new TypeError(`invalid longitude ‘${e}’`)}get height(){return this._height}set height(e){if(this._height=Number(e),isNaN(this._height))throw new TypeError(`invalid height ‘${e}’`)}get datum(){return this._datum}set datum(e){this._datum=e}static get ellipsoids(){return mc}static get datums(){return hc}static parse(...e){if(0==e.length)throw new TypeError("invalid (empty) point");let t,a,o;if("object"==typeof e[0]&&(1==e.length||!isNaN(parseFloat(e[1])))){const n=e[0];if("Point"==n.type&&Array.isArray(n.coordinates)?([a,t,o]=n.coordinates,o=o||0):(null!=n.latitude&&(t=n.latitude),null!=n.lat&&(t=n.lat),null!=n.longitude&&(a=n.longitude),null!=n.lng&&(a=n.lng),null!=n.lon&&(a=n.lon),null!=n.height&&(o=n.height),t=dc.wrap90(dc.parse(t)),a=dc.wrap180(dc.parse(a))),null!=e[1]&&(o=e[1]),isNaN(t)||isNaN(a))throw new TypeError(`invalid point ‘${JSON.stringify(e[0])}’`)}if("string"==typeof e[0]&&2==e[0].split(",").length&&([t,a]=e[0].split(","),t=dc.wrap90(dc.parse(t)),a=dc.wrap180(dc.parse(a)),o=e[1]||0,isNaN(t)||isNaN(a)))throw new TypeError(`invalid point ‘${e[0]}’`);if(null==t&&null==a&&([t,a]=e,t=dc.wrap90(dc.parse(t)),a=dc.wrap180(dc.parse(a)),o=e[2]||0,isNaN(t)||isNaN(a)))throw new TypeError(`invalid point ‘${e.toString()}’`);return new this(t,a,o)}toCartesian(){const e=this.datum?this.datum.ellipsoid:this.referenceFrame?this.referenceFrame.ellipsoid:mc.WGS84,t=this.lat.toRadians(),a=this.lon.toRadians(),o=this.height,{a:n,f:i}=e,r=Math.sin(t),s=Math.cos(t),l=Math.sin(a),c=Math.cos(a),d=2*i-i*i,u=n/Math.sqrt(1-d*r*r);return new fc((u+o)*s*c,(u+o)*s*l,(u*(1-d)+o)*r)}equals(e){if(!(e instanceof gc))throw new TypeError(`invalid point ‘${e}’`);return!(Math.abs(this.lat-e.lat)>Number.EPSILON||Math.abs(this.lon-e.lon)>Number.EPSILON||Math.abs(this.height-e.height)>Number.EPSILON||this.datum!=e.datum||this.referenceFrame!=e.referenceFrame||this.epoch!=e.epoch)}toString(e="d",t,a=null){if(!["d","dm","dms","n"].includes(e))throw new RangeError(`invalid format ‘${e}’`);const o=(this.height>=0?" +":" ")+this.height.toFixed(a)+"m";return"n"==e?(null==t&&(t=4),`${this.lat.toFixed(t)}, ${this.lon.toFixed(t)}${null==a?"":o}`):`${dc.toLat(this.lat,e,t)}, ${dc.toLon(this.lon,e,t)}${null==a?"":o}`}}class fc extends pc{constructor(e,t,a){super(e,t,a)}toLatLon(e=mc.WGS84){if(!e||!e.a)throw new TypeError(`invalid ellipsoid ‘${e}’`);const{x:t,y:a,z:o}=this,{a:n,b:i,f:r}=e,s=2*r-r*r,l=s/(1-s),c=Math.sqrt(t*t+a*a),d=i*o/(n*c)*(1+l*i/Math.sqrt(c*c+o*o)),u=d/Math.sqrt(1+d*d),p=u/d,m=isNaN(p)?0:Math.atan2(o+l*i*u*u*u,c-s*n*p*p*p),h=Math.atan2(a,t),g=Math.sin(m),f=c*Math.cos(m)+o*g-n*n/(n/Math.sqrt(1-s*g*g));return new gc(m.toDegrees(),h.toDegrees(),f)}toString(e=0){return`[${this.x.toFixed(e)},${this.y.toFixed(e)},${this.z.toFixed(e)}]`}}const Ec=Math.PI,_c=Number.EPSILON;class wc extends gc{distanceTo(e){try{const t=this.inverse(e).distance;return Number(t.toFixed(3))}catch(e){if(e instanceof EvalError)return NaN;throw e}}initialBearingTo(e){try{const t=this.inverse(e).initialBearing;return Number(t.toFixed(7))}catch(e){if(e instanceof EvalError)return NaN;throw e}}finalBearingTo(e){try{const t=this.inverse(e).finalBearing;return Number(t.toFixed(7))}catch(e){if(e instanceof EvalError)return NaN;throw e}}destinationPoint(e,t){return this.direct(Number(e),Number(t)).point}finalBearingOn(e,t){const a=this.direct(Number(e),Number(t)).finalBearing;return Number(a.toFixed(7))}intermediatePointTo(e,t){if(0==t)return this;if(1==t)return e;const a=this.inverse(e),o=a.distance,n=a.initialBearing;return isNaN(n)?this:this.destinationPoint(o*t,n)}direct(e,t){if(isNaN(e))throw new TypeError(`invalid distance ${e}`);if(0==e)return{point:this,finalBearing:NaN,iterations:0};if(isNaN(t))throw new TypeError(`invalid bearing ${t}`);if(0!=this.height)throw new RangeError("point must be on the surface of the ellipsoid");const a=this.lat.toRadians(),o=this.lon.toRadians(),n=Number(t).toRadians(),i=Number(e),r=this.datum?this.datum.ellipsoid:gc.ellipsoids.WGS84,{a:s,b:l,f:c}=r,d=Math.sin(n),u=Math.cos(n),p=(1-c)*Math.tan(a),m=1/Math.sqrt(1+p*p),h=p*m,g=Math.atan2(p,u),f=m*d,E=1-f*f,_=E*(s*s-l*l)/(l*l),w=1+_/16384*(4096+_*(_*(320-175*_)-768)),T=_/1024*(256+_*(_*(74-47*_)-128));let b=i/(l*w),A=null,L=null,k=null,S=null,v=0;do{k=Math.cos(2*g+b),A=Math.sin(b),L=Math.cos(b),S=b,b=i/(l*w)+T*A*(k+T/4*(L*(2*k*k-1)-T/6*k*(4*A*A-3)*(4*k*k-3)))}while(Math.abs(b-S)>1e-12&&++v<100);if(v>=100)throw new EvalError("Vincenty formula failed to converge");const O=h*A-m*L*u,D=Math.atan2(h*L+m*A*u,(1-c)*Math.sqrt(f*f+O*O)),N=c/16*E*(4+c*(4-3*E)),C=o+(Math.atan2(A*d,m*L-h*A*u)-(1-N)*c*f*(b+N*A*(k+N*L*(2*k*k-1)))),y=Math.atan2(f,-O);return{point:new wc(D.toDegrees(),C.toDegrees(),0,this.datum),finalBearing:dc.wrap360(y.toDegrees()),iterations:v}}inverse(e){if(!(e instanceof gc))throw new TypeError(`invalid point ‘${e}’`);if(0!=this.height||0!=e.height)throw new RangeError("point must be on the surface of the ellipsoid");const t=e,a=this.lat.toRadians(),o=this.lon.toRadians(),n=t.lat.toRadians(),i=t.lon.toRadians(),r=this.datum?this.datum.ellipsoid:gc.ellipsoids.WGS84,{a:s,b:l,f:c}=r,d=i-o,u=(1-c)*Math.tan(a),p=1/Math.sqrt(1+u*u),m=u*p,h=(1-c)*Math.tan(n),g=1/Math.sqrt(1+h*h),f=h*g,E=Math.abs(d)>Ec/2||Math.abs(n-a)>Ec/2;let _=d,w=null,T=null,b=E?Ec:0,A=0,L=E?-1:1,k=null,S=1,v=1,O=null,D=0;do{if(w=Math.sin(_),T=Math.cos(_),k=(g*w)**2+(p*f-m*g*T)**2,Math.abs(k)<1e-24)break;A=Math.sqrt(k),L=m*f+p*g*T,b=Math.atan2(A,L);const e=p*g*w/A;v=1-e*e,S=0!=v?L-2*m*f/v:0;const t=c/16*v*(4+c*(4-3*v));if(O=_,_=d+(1-t)*c*e*(b+t*A*(S+t*L*(2*S*S-1))),(E?Math.abs(_)-Ec:Math.abs(_))>Ec)throw new EvalError("λ > π")}while(Math.abs(_-O)>1e-12&&++D<1e3);if(D>=1e3)throw new EvalError("Vincenty formula failed to converge");const N=v*(s*s-l*l)/(l*l),C=N/1024*(256+N*(N*(74-47*N)-128)),y=l*(1+N/16384*(4096+N*(N*(320-175*N)-768)))*(b-C*A*(S+C/4*(L*(2*S*S-1)-C/6*S*(4*A*A-3)*(4*S*S-3)))),R=Math.abs(k)<_c?0:Math.atan2(g*w,p*f-m*g*T),I=Math.abs(k)<_c?Ec:Math.atan2(p*w,-m*g+p*f*T);return{distance:y,initialBearing:Math.abs(y)<_c?NaN:dc.wrap360(R.toDegrees()),finalBearing:Math.abs(y)<_c?NaN:dc.wrap360(I.toDegrees()),iterations:D}}}const Tc=Kt.extend({statics:{TYPE:"trawler"},options:{points:[],zoom:13,automark:!1},addHooks:function(){Kt.prototype.addHooks.call(this),this._mapRefreshHook=this.tileRequestNext.bind(this),this._pointTileDataRequest(this.options.points,this.options.zoom),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.plugin.wasabee.tileTrawlQueue&&delete window.plugin.wasabee.tileTrawlQueue,window.removeHook("mapDataRefreshEnd",this._mapRefreshHook)},_update:function(e){this&&this.remaining&&(this.remaining.textContent=Se("TRAWL_REMAINING",{count:e}))},_buildContent:function(){const e=window.plugin.wasabee.tileTrawlQueue.size,t=L.DomUtil.create("div","container");L.DomUtil.create("label",null,t).textContent=Se("TRAWLING");const a=L.DomUtil.create("div",null,t);this.remaining=L.DomUtil.create("span",null,a),this.remaining.textContent=Se("TRAWL_REMAINING",{count:e}),L.DomUtil.create("label",null,t).textContent=Se("TRAWL SKIP TILES");const o=L.DomUtil.create("select",null,t),n=Number(localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]);let i=0;for(;i<15;){const e=L.DomUtil.create("option",null,o);e.textContent=i,e.value=i,n==i&&(e.selected=!0),i++}return L.DomEvent.on(o,"change",(e=>{L.DomEvent.stop(e),localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]=o.value})),t},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog("close")},this.createDialog({title:Se("TRAWL TITLE"),html:e,width:"auto",dialogClass:"trawl",buttons:t})},_pointTileDataRequest:function(e,t=13){if(localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]||(localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]=0),window.plugin.wasabee.tileTrawlQueue)return void console.log("pointTileDataRequest already running");if(0==e.length)return;const a=window.getDataZoomForMapZoom(t),o=window.getMapZoomTileParameters(a);window.mapDataRequest.setStatus("trawling",void 0,-1),window.plugin.wasabee.tileTrawlQueue=new Map;for(const t of e){const e=window.latToTile(t.lat,o),a=window.lngToTile(t.lng,o),n=window.pointToTileId(o,a,e),i=L.latLng([Number(window.tileToLat(e,o).toFixed(6)),Number(window.tileToLng(a,o).toFixed(6))]);window.plugin.wasabee.tileTrawlQueue.set(n,JSON.stringify(i))}window.addHook("mapDataRefreshEnd",this._mapRefreshHook),window.map.setZoom(t),this.tileRequestNext()},tileRequestNext:function(){if(!window.plugin.wasabee.tileTrawlQueue)return void window.removeHook("mapDataRefreshEnd",this._mapRefreshHook);for(const e of Object.keys(window.mapDataRequest.cache._cache))window.plugin.wasabee.tileTrawlQueue.has(e)&&window.plugin.wasabee.tileTrawlQueue.delete(e);const e=window.plugin.wasabee.tileTrawlQueue.keys();let t=Number(localStorage[window.plugin.wasabee.static.constants.TRAWL_SKIP_STEPS]),a=e.next().value;for(;a&&window.mapDataRequest.cache.get(a);)console.log("removing in cache check 2",a),window.plugin.wasabee.tileTrawlQueue.delete(a),a=e.next().value,t>0&&t--;for(;a&&t>0;)window.plugin.wasabee.tileTrawlQueue.delete(a),a=e.next().value,t--;if(a){const e=JSON.parse(window.plugin.wasabee.tileTrawlQueue.get(a));return window.plugin.wasabee.tileTrawlQueue.delete(a),window.map.panTo(e,{duration:.25,animate:!0}),void this._update(window.plugin.wasabee.tileTrawlQueue.size)}delete window.plugin.wasabee.tileTrawlQueue,window.removeHook("mapDataRefreshEnd",this._mapRefreshHook),this.options.automark&&Hr(Re()),this.closeDialog(),ve("trawl done")}}),bc=Kt.extend({statics:{TYPE:"trawl"},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select",this.closeDialog,this),this._displayDialog()},_displayDialog:function(){const e=Re(),t=L.DomUtil.create("div","container"),a=L.DomUtil.create("div",null,t),o=L.DomUtil.create("label",null,a);o.textContent=Se("TRAWL_CLEAR_MARKERS"),o.htmlFor="wasabee-trawl-clear";const n=L.DomUtil.create("input",null,a);n.type="checkbox",n.checked=!1,n.id="wasabee-trawl-clear";const i=L.DomUtil.create("label",null,a);i.textContent=Se("TRAWL_AUTOMARK"),i.htmlFor="wasabee-trawl-automark",this.automark=L.DomUtil.create("input",null,a),this.automark.type="checkbox",this.automark.checked=!1,this.automark.id="wasabee-trawl-automark",e.canWrite()||(a.style.display="none"),L.DomUtil.create("h4",null,t).textContent=Se("TRAWL WARNING");const r=L.DomUtil.create("button",null,t);r.textContent=Se("TRAWL"),L.DomEvent.on(r,"click",(async()=>{const e=Re();1==n.checked&&this._clearMarkers(),await z.removeBlockers(e.ID);const t=this._getTrawlPoints();new Tc({points:t,zoom:13,automark:this.automark.checked}).enable(),this.closeDialog()})),L.DomUtil.create("h4",null,t).textContent=Se("TRAWL_BULK_LOAD_WARNING");const s=L.DomUtil.create("button",null,t);s.textContent=Se("TRAWL_BULK_LOAD"),L.DomEvent.on(s,"click",(async()=>{const e=Re();await z.removeBlockers(e.ID),1==n.checked&&this._clearMarkers();const t=this._getTrawlPoints();this._bulkLoad(t,14),this.closeDialog()}));const l={};l[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("TRAWL TITLE"),html:t,width:"auto",dialogClass:"trawl",buttons:l,id:b.dialogNames.trawl})},_getTrawlPoints:function(){const e=Re();window.mapDataRequest.setStatus("calculating",void 0,-1);const t=new Array;for(const a of e.links){const o=a.getLatLngs(e),n=new wc(o[0].lat,o[0].lng),i=new wc(o[1].lat,o[1].lng),r=n.distanceTo(i);let s=n.initialBearingTo(i),l=0;t.push(o[0]);let c=n,d=0;for(;le.type!==X.constants.MARKER_TYPE_DESTROY&&e.type!==X.constants.MARKER_TYPE_VIRUS)),e.update()},_bulkLoad:function(e,t){if(this._mapRefreshHook=this.bulkLoadDone.bind(this),window.addHook("mapDataRefreshEnd",this._mapRefreshHook),0==e.length)return;const a=window.mapDataRequest;a.debugTiles.reset(),this.oldDebugTiles=window.mapDataRequest.debugTiles,window.mapDataRequest.debugTiles=new Ac;const o=window.getDataZoomForMapZoom(t),n=window.getMapZoomTileParameters(o),i=new L.latLngBounds(e);window.map.fitBounds(i);const r=new Map;for(const t of e){const e=window.latToTile(t.lat,n),a=window.lngToTile(t.lng,n),o=window.pointToTileId(n,a,e);r.set(o,o)}const s={};for(const e of r.keys())s[e]=e;a.resetRenderQueue(),a.pauseRenderQueue(!0),a.clearTimeout(),a.queuedTiles=s,a.processRequestQueue(!0),a.pauseRenderQueue(!1),this.bulkAlert=ve("please wait until status says 'done'; If the first didn't trigger a load, close this dialog and try again")},bulkLoadDone:function(){1==this.automark.checked&&Hr(Re()),window.mapDataRequest.debugTiles=this.oldDebugTiles,this.bulkAlert.dialog("close"),ve("bulk data load done"),window.removeHook("mapDataRefreshEnd",this._mapRefreshHook)}});class Ac{reset(){console.log("fdt reset")}create(){console.log("fdt create")}setState(){}runClearPass(){console.log("fdt runClearPass")}}const Lc=bc,kc=Kt.extend({statics:{TYPE:"blockerList"},options:{usePane:!0},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),window.map.on("wasabee:crosslinks:update",this.update,this),window.map.on("wasabee:crosslinks:done",this.update,this),window.addHook("portalAdded",Ve),window.addHook("portalDetailLoaded",je),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:crosslinks:update",this.update,this),window.map.off("wasabee:crosslinks:done",this.update,this),window.removeHook("portalAdded",Ve),window.removeHook("portalDetailLoaded",je)},_displayDialog:async function(){const e=Re();this.sortable=await this._getListDialogContent(0,!1),$e(e);const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},e.canWrite()&&(t[Se("AUTOMARK")]=()=>{Hr(Re())}),t[Se("RESET")]=async()=>{const e=Re();await z.removeBlockers(e.ID),this.update(),window.map.fire("wasabee:crosslinks")},t[Se("LOAD PORTALS")]=()=>{$e(Re(),!0)},t[Se("TRAWL TITLE")]=()=>{(new Lc).enable()},e.canWrite()&&(t[Se("dialog.blockers.clear_automark")]=()=>{const e=Re();e.startBatchMode(),e.markers=e.markers.filter((e=>"auto-marked"!==e.comment)),e.cleanPortalList(),e.endBatchMode()}),this.createDialog({title:Se("KNOWN_BLOCK",{opName:e.name}),html:this.sortable.table,width:"auto",dialogClass:"blockerlist",buttons:t,id:b.dialogNames.blockerList})},update:async function(){if(!this._enabled)return;if(!this.sortable)return;const e=Re();this.sortable=await this._getListDialogContent(this.sortable.sortBy,this.sortable.sortAsc),this.setContent(this.sortable.table),this.setTitle(Se("KNOWN_BLOCK",{opName:e.name}))},async _getListDialogContent(e,t){const a=Re(),o=new pi,n=await z.getAll(a);return o.fields=[{name:Se("FROM_PORT"),value:e=>e.fromPortal?e.fromPortal.name:e.from,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{a.fromPortal?e.appendChild(We(a.fromPortal)):e.textContent=t}},{name:this._smallScreen?"#":Se("COUNT"),value:e=>n.filter((t=>t.from==e.from||t.to==e.from)).length,format:(e,t)=>e.textContent=t},{name:Se("TO_PORT"),value:e=>e.toPortal?e.toPortal.name:e.to,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{a.toPortal?e.appendChild(We(a.toPortal)):e.textContent=t}},{name:this._smallScreen?"#":Se("COUNT"),value:e=>n.filter((t=>t.from==e.to||t.to==e.to)).length,format:(e,t)=>e.textContent=t}],o.sortBy=e,o.sortAsc=t,o.items=n,o}}),Sc=Ii.extend({statics:{TYPE:"markerList"},SORTBY_KEY:"wasabee-markerlist-sortby",SORTASC_KEY:"wasabee-markerlist-sortasc",_displayDialog:async function(){const e=Re();Xe(e),this.sortable=this.getListDialogContent(e,e.markers,this.SORTBY_KEY,this.SORTASC_KEY);const t={};e.canWrite()&&(t[Se("CLEAR MARKERS")]=()=>{!function(e){new si({title:Se("dialog.clear_markers.title",{opName:e.name}),label:Se("dialog.clear_markers.text",{opName:e.name}),type:"operation",callback:()=>{e.clearAllMarkers(),window.map.fire("wasabee:crosslinks")}}).enable()}(Re())},t[Se("dialog.blockers.clear_automark")]=()=>{const e=Re();e.startBatchMode(),e.markers=e.markers.filter((e=>"auto-marked"!==e.comment)),e.cleanPortalList(),e.endBatchMode()}),t[Se("CLOSE")]=()=>{this.closeDialog()},await this.sortable.done,this.createDialog({title:Se("MARKER_LIST",{opName:e.name}),html:this.sortable.table,width:"auto",dialogClass:"checklist",buttons:t,id:b.dialogNames.markerList})},update:async function(){if(!this.sortable)return;const e=Re();this.setTitle(Se("MARKER_LIST",{opName:e.name})),this.sortable=this.getListDialogContent(e,e.markers,this.SORTBY_KEY,this.SORTASC_KEY),await this.sortable.done,this.setContent(this.sortable.table)}}),vc=Kt.extend({statics:{TYPE:"keyListPortal"},options:{},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this)},_displayDialog:function(){if(!this.options.portalID)return void this.disable();this._sortable=this.getSortable();const e={};e[Se("CLOSE")]=()=>{this.closeDialog()};const t=Re().getPortal(this.options.portalID);this.createDialog({title:Se("PORTAL KEY LIST",{portalName:Fe(t)}),html:this.getListDialogContent(this.options.portalID),width:"auto",dialogClass:"keylistportal",buttons:e,id:b.dialogNames.keyListPortal})},update:function(){const e=Re().getPortal(this.options.portalID);if(null==e)return this.setTitle("unknown portal"),void this.setContent("selected operation changed");const t=this.getListDialogContent(this.options.portalID);this.setContent(t),this.setTitle(Se("PORTAL KEY LIST",{portalName:Fe(e)}))},getSortable:function(){const e=new pi;return e.fields=[{name:Se("AGENT"),value:e=>e.gid,sort:(e,t)=>e.localeCompare(t),format:async(e,t,a)=>{const o=await ut(a.gid);e.textContent=o?o.getName():a.gid}},{name:Se("ON_HAND"),value:e=>e.onhand},{name:Se("CAPSULE"),value:e=>e.capsule,sort:(e,t)=>e.localeCompare(t),format:(e,t)=>{e.textContent=t}}],e.sortBy=0,e},getListDialogContent:function(e){const t=Re();return this._sortable.items=t.keysonhand.filter((function(t){return t.portalId==e})),this._sortable.table}});function Oc(e,t,a,o){return function(e,t,a,o){const n=new FormData;return n.append("count",`${a}`),n.append("capsule",o),Mt(`/api/v1/draw/${e}/portal/${t}/keyonhand`,n)}(e,t,a,o).catch((e=>(e instanceof Ne&&406==e.code&&De(Se("dialog.keys.update_error")),Promise.reject())))}const Dc=Kt.extend({statics:{TYPE:"keysList"},options:{usePane:!0},addHooks:function(){Kt.prototype.addHooks.call(this);const e=Re();this._opID=e.ID,window.map.on("wasabee:login wasabee:logout",this.update,this),window.map.on("wasabee:op:select wasabee:op:change",this.update,this),window.map.on("wasabee:filter",this.update,this),$.isLoggedIn()?this._me=$.localGet():this._me=null,this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:login wasabee:logout",this.update,this),window.map.off("wasabee:op:select wasabee:op:change",this.update,this),window.map.off("wasabee:filter",this.update,this)},_displayDialog:function(){const e=Re(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("KEY_LIST2",{opName:e.name}),html:this.getListDialogContent(e,0,!0).table,width:"auto",dialogClass:"keyslist",buttons:t,id:b.dialogNames.keysList})},update:function(){const e=Re();e.ID!=this._opID&&console.log("operation changed"),$.isLoggedIn()?this._me=$.localGet():this._me=null,this.setTitle(Se("KEY_LIST2",{opName:e.name}));const t=this.getListDialogContent(e,this.sortable.sortBy,this.sortable.sortAsc).table;this.setContent(t)},getListDialogContent:function(e,t,a){this.sortable=new pi;const o=[{name:Se("PORTAL"),value:t=>e.getPortal(t.id).name,sort:(e,t)=>e.localeCompare(t),format:(t,a,o)=>{t.appendChild(We(e.getPortal(o.id)))}},{name:Se("REQUIRED"),value:e=>e.required,format:(e,t,a)=>{a.open?e.textContent=Se("OPEN_REQUEST"):a.done?e.textContent=t-a.done+"/"+t:e.textContent=t,a.onHand>=a.value-a.done?L.DomUtil.addClass(e,"enough"):L.DomUtil.addClass(e,"notenough")}},{name:Se("ON_HAND"),value:e=>parseInt(e.onHand,10),format:(e,t,a)=>{const o=L.DomUtil.create("a");o.name=a.id,L.DomEvent.on(o,"click",L.DomEvent.stopPropagation).on(o,"mousedown",L.DomEvent.stopPropagation).on(o,"dblclick",L.DomEvent.stopPropagation).on(o,"click",L.DomEvent.preventDefault).on(o,"click",this.showKeyByPortal,a),o.textContent=t,e.appendChild(o)}}];let n="no-user";this._me&&e.isOnCurrentServer()?(n=this._me.id,this.sortable.fields=o.concat([{name:Se("MY_COUNT"),value:e=>parseInt(e.iHave,10),format:(t,a,o)=>{const i=L.DomUtil.create("input");i.value=a,i.size=3,L.DomEvent.on(i,"change",(()=>{Oc(e.ID,o.id,i.value,o.capsule).then((()=>e.keyOnHand(o.id,n,i.value,o.capsule))).catch((()=>i.value=a))})),t.appendChild(i)}},{name:Se("MY_CAP_ID"),value:e=>e.capsule,sort:(e,t)=>e.localeCompare(t),format:(t,a,o)=>{const i=L.DomUtil.create("input");i.value=a,i.size=8,L.DomEvent.on(i,"change",(()=>{Oc(e.ID,o.id,o.iHave,i.value).then((()=>e.keyOnHand(o.id,n,o.iHave,i.value))).catch((()=>i.value=a))})),t.appendChild(i)}}])):this.sortable.fields=o;const i=new Array;for(const t of e.anchors){const a={},o=e.links.filter((function(e){return Ri(e)&&e.toPortalId==t}));if(!o.length)continue;a.id=t,a.required=o.length,a.onHand=0,a.iHave=0,a.capsule="",a.done=0;for(const e of o)e.completed&&a.done++;const r=e.keysonhand.filter((function(e){return e.portalId==t}));if(r&&r.length>0)for(const e of r)a.onHand+=e.onhand,e.gid==n&&(a.iHave=e.onhand,a.capsule=e.capsule);i.push(a)}for(const t of e.markers.filter((function(e){return Ri(e)&&e.type==X.constants.MARKER_TYPE_KEY}))){const a={};a.id=t.portalId,a.open=!0,a.onHand=0,a.iHave=0,a.capsule="";const o=e.keysonhand.filter((function(e){return e.portalId==a.id}));if(o&&o.length>0)for(const e of o)a.onHand+=e.onhand,e.gid==n&&(a.iHave=e.onhand,a.capsule=e.capsule);i.push(a)}return this.sortable.sortBy=t,this.sortable.sortAsc=a,this.sortable.items=i,this.sortable},showKeyByPortal:function(e){new vc({portalID:e.srcElement.name}).enable()}}),Nc=Dc;let Cc=[],yc=[],Rc=!1;function Ic(){const e=Re();Cc=[new _e(e)],yc=[]}function Mc(){if(Rc)return;const e=Re();Cc.push(new _e(e)),Cc.length>w.UNDO_HISTORY_SIZE&&Cc.shift(),yc=[]}function Pc(e){const t=Re();for(const a of t.links)Ri(a)&&(a.color=e);t.update(),wi(e)}function xc(e){const t=Re();for(const a of t.links)Ri(a)&&a.assign(e);for(const a of t.markers)Ri(a)&&a.assign(e);t.update()}function Uc(e){const t=Re();for(const a of t.links)Ri(a)&&(a.state=e);for(const a of t.markers)Ri(a)&&(a.state=e);t.update()}function Bc(e){const t=Re();for(const a of t.links)Ri(a)&&(a.comment=e);for(const a of t.markers)Ri(a)&&(a.comment=e);t.update()}function Kc(e){const t=Re();t.links=t.links.filter((t=>Ri(t)===e)),t.markers=t.markers.filter((t=>Ri(t)===e)),t.cleanAll(),t.update()}class Gc extends Kt{addHooks(){super.addHooks(),this._filters={},this._activeTab=0,window.map.on("wasabee:op:select",this.update,this),window.map.on("wasabee:teams",this.update,this),this._displayDialog()}removeHooks(){super.removeHooks(),window.map.off("wasabee:op:select",this.update,this),window.map.off("wasabee:teams",this.update,this),Di=null,window.map.fire("wasabee:filter")}async update(){this.setContent(await this._getContent()),this.setTitle(Se("dialog.filter.title"))}_createSelect(e,t){return this._createSelectMultiple(e,void 0!==t?[t]:[],!0)}_createSelectMultiple(e,t,a){const o=L.DomUtil.create("select");o.multiple=!a;for(const[a,n]of e){const e=L.DomUtil.create("option",null,o);e.textContent=a,e.value=n,t&&t.includes(n)&&(e.selected=!0)}return o}_createPortal(e,t){const a=L.DomUtil.create("div","set-portal-small"),o=L.DomUtil.create("span","set-portal-display",a),n=L.DomUtil.create("button","set-portal-button",a);return n.textContent=Se("SET"),e?o.appendChild(We(e)):o.textContent=Se("NOT_SET"),L.DomEvent.on(n,"click",(()=>{const e=Ze();e&&(o.textContent="",o.appendChild(We(e)),t&&t(e))})),a}_addFieldPortal(e,t,a){this._filters[t]||(this._filters[t]={enabled:!1,selected:null,toFilter:a.toFilter});const o=this._filters[t],n=L.DomUtil.create("label","checkbox",e),i=L.DomUtil.create("input","",n);i.type="checkbox",i.checked=o.enabled,L.DomUtil.create("span","",n).textContent=a.label;const r=this._createPortal(o.selected,(e=>{o.selected=e,o.enabled=i.checked&&!!o.selected}));e.appendChild(r),L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),o.enabled=i.checked&&!!o.selected}))}_addField(e,t,a){this._filters[t]||(this._filters[t]={enabled:!1,selected:[],toFilter:a.toFilter});const o=this._filters[t],n=L.DomUtil.create("label","checkbox",e),i=L.DomUtil.create("input","",n);i.type="checkbox",i.checked=o.enabled,L.DomUtil.create("span","",n).textContent=a.label;const r=this._createSelectMultiple(a.options,o.selected);r.disabled=!o.enabled,e.appendChild(r),L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),o.enabled=i.checked,r.disabled=!i.checked})),L.DomEvent.on(r,"change",(e=>{L.DomEvent.stop(e),o.selected=Array.from(r.selectedOptions).map((e=>e.value))}))}_addFieldText(e,t,a){this._filters[t]||(this._filters[t]={enabled:!1,selected:"",toFilter:a.toFilter});const o=this._filters[t],n=L.DomUtil.create("label","checkbox",e),i=L.DomUtil.create("input","",n);i.type="checkbox",i.checked=o.enabled,L.DomUtil.create("span","",n).textContent=a.label;const r=L.DomUtil.create("input");r.disabled=!o.enabled,e.appendChild(r),L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),o.enabled=i.checked,r.disabled=!i.checked})),L.DomEvent.on(r,"change",(e=>{L.DomEvent.stop(e),o.selected=r.value}))}_addFieldNumber(e,t,a){this._filters[t]||(this._filters[t]={enabled:!1,selected:null,toFilter:a.toFilter});const o=this._filters[t],n=L.DomUtil.create("label","checkbox",e),i=L.DomUtil.create("input","",n);i.type="checkbox",i.checked=o.enabled,L.DomUtil.create("span","",n).textContent=a.label;const r=L.DomUtil.create("input");r.type="number",r.disabled=!o.enabled,e.appendChild(r),L.DomEvent.on(i,"change",(e=>{L.DomEvent.stop(e),o.enabled=i.checked,r.disabled=!i.checked})),L.DomEvent.on(r,"change",(e=>{L.DomEvent.stop(e),o.selected=r.valueAsNumber}))}_addAction(e,t,a,o,n){L.DomUtil.create("label","",e).textContent=t,e.appendChild(a);const i=L.DomUtil.create("button","",e);i.textContent=o,L.DomEvent.on(i,"click",(()=>n(a.value)))}async _getFiltersTab(){const e=L.DomUtil.create("a");e.textContent=Se("dialog.filter.filters.title");const t=L.DomUtil.create("div","filters");L.DomUtil.create("div","desc",t).textContent=Se("dialog.filter.filters.description");const a=Re(),o=new Map,n=$.localGet();if(n){const e=await ht(Re().teamlist.map((e=>e.teamid)).filter((e=>n.teamJoined(e))),300);for(const t of e)for(const e of t.agents)o.set(e.id,e.name)}const i=[];for(const[e,t]of o)i.push([t,e]);i.sort(((e,t)=>e[0].localeCompare(t[0]))),i.unshift([Se("UNASSIGNED"),""]),this._addField(t,"assignedTo",{label:Se("ASS_TO"),options:i,toFilter:e=>({op:"in",key:"assignedTo",value:e.map((e=>e||null))})}),this._addField(t,"zone",{label:Se("ZONE"),options:a.zones.map((e=>[e.name,""+e.id])),toFilter:e=>({op:"in",key:"zone",value:e.map((e=>+e))})}),this._addField(t,"state",{label:Se("STATE"),options:[[Se("pending"),"pending"],[Se("assigned"),"assigned"],[Se("acknowledged"),"acknowledged"],[Se("completed"),"completed"]],toFilter:e=>({op:"in",key:"state",value:e})}),this._addField(t,"kind",{label:Se("dialog.filter.filters.field.task"),options:[[Se("dialog.common.links"),"link"],[Se("dialog.common.markers"),"marker"]],toFilter:e=>({op:"or",list:e.map((e=>({op:"kind",value:e})))})}),this._addFieldPortal(t,"fromPortal",{label:Se("FROM_PORT"),toFilter:e=>({op:"or",list:["fromPortalId","portalId"].map((t=>({op:"==",key:t,value:e.id})))})}),this._addFieldPortal(t,"toPortal",{label:Se("TO_PORT"),toFilter:e=>({op:"==",key:"toPortalId",value:e.id})}),this._addFieldText(t,"comment",{label:Se("COMMENT"),toFilter:e=>({op:"match",key:"comment",value:e})}),this._addFieldNumber(t,"order_min",{label:Se("dialog.filter.filters.field.min_order"),toFilter:e=>({op:">=",key:"order",value:e})}),this._addFieldNumber(t,"order_max",{label:Se("dialog.filter.filters.field.max_order"),toFilter:e=>({op:"<=",key:"order",value:e})});const r=L.DomUtil.create("button","apply",t);return r.textContent=Se("dialog.filter.filters.apply"),L.DomEvent.on(r,"click",this._applyFilter,this),[e,t]}async _getActionsTab(){const e=L.DomUtil.create("a");e.textContent=Se("dialog.filter.actions.title");const t=L.DomUtil.create("div","actions");L.DomUtil.create("div","desc",t).textContent=Se("dialog.filter.actions.description");const a=Re(),o=new Map,n=await ht(Re().teamlist.map((e=>e.teamid)),300);for(const e of n)for(const t of e.agents)o.set(t.id,t.name);const i=[[Se("UNASSIGNED"),""]];for(const[e,t]of o)i.push([t,e]);this._addAction(t,Se("ASS_TO"),this._createSelect(i),Se("SET"),xc),this._addAction(t,Se("ZONE"),this._createSelect(a.zones.map((e=>[e.name,""+e.id]))),Se("SET"),(e=>function(e){const t=Re();e=e||0;for(const a of t.links)Ri(a)&&(a.zone=e);for(const a of t.markers)Ri(a)&&(a.zone=e);t.update()}(+e))),this._addAction(t,Se("STATE"),this._createSelect([[Se("pending"),"pending"],[Se("assigned"),"assigned"],[Se("acknowledged"),"acknowledged"],[Se("completed"),"completed"]]),Se("SET"),Uc);const r=L.DomUtil.create("input");r.type="color",r.value=ei(a.getColor()),r.setAttribute("list","wasabee-colors-datalist"),this._addAction(t,Se("dialog.common.color"),r,Se("SET"),Pc),this._addAction(t,Se("COMMENT"),L.DomUtil.create("input"),Se("SET"),Bc);const s=L.DomUtil.create("input");s.type="number",this._addAction(t,Se("ORDER"),s,Se("SET"),(e=>function(e){if(isNaN(e)||!isFinite(e))return;const t=Re();for(const a of t.links)Ri(a)&&(a.order=e);for(const a of t.markers)Ri(a)&&(a.order=e);t.update()}(+e)));const l=L.DomUtil.create("input");l.type="number",this._addAction(t,Se("dialog.filter.actions.shift.label"),l,Se("dialog.filter.actions.shift.button"),(e=>function(e){if(isNaN(e)||!isFinite(e))return;const t=Re();for(const a of t.links)Ri(a)&&(a.order+=e);for(const a of t.markers)Ri(a)&&(a.order+=e);t.update()}(+e)));const c=L.DomUtil.create("button","delete-tasks",t);c.textContent=Se("dialog.filter.actions.delete_visible"),L.DomEvent.on(c,"click",(()=>Kc(!1)));const d=L.DomUtil.create("button","delete-tasks",t);return d.textContent=Se("dialog.filter.actions.delete_hidden"),L.DomEvent.on(d,"click",(()=>Kc(!0))),[e,t]}async _getContent(){const e=L.DomUtil.create("div","container"),t=Re(),a=[];a.push(await this._getFiltersTab()),t.canWrite()&&a.push(await this._getActionsTab());const o=L.DomUtil.create("div","ui-tabs tabs",e),n=L.DomUtil.create("ul","ui-tabs-nav nav",o);for(let e=0;e{for(const e of a)e[0].parentElement.classList.remove("ui-tabs-active"),e[1].style.display="none";t.parentElement.classList.add("ui-tabs-active"),i.style.display=null,this._activeTab=e,this._applyFilter()}))}return this._activeTab>=a.length&&(this._activeTab=0),a[this._activeTab][0].parentElement.classList.add("ui-tabs-active"),a[this._activeTab][1].style.display=null,e}_getFilter(){const e={op:"and",list:[]};for(const t in this._filters){const a=this._filters[t];a.enabled&&e.list.push(a.toFilter(a.selected))}return e}_applyFilter(){var e;!yi(e=this._getFilter())||(Di=e,0)?De("filter invalid"):window.map.fire("wasabee:filter")}async _displayDialog(){const e=await this._getContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("dialog.filter.title"),html:e,width:"auto",dialogClass:"filter",buttons:t,id:"wasabee-filter"})}}Gc.TYPE="settings";const Hc=Ht.extend({statics:{TYPE:"opButton"},initialize:function(e){this.type=Hc.TYPE,this.handler=this._toggleActions,this._container=e;const t=Re();this.button=this._createButton({container:this._container,className:"wasabee-toolbar-op",callback:this._toggleActions,context:this,title:Se("toolbar.op.title",{opName:t.name})}),this.setSubActions(this.getSubActions()),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{const e=Re();this.button.title=Se("toolbar.op.title",{opName:e.name}),this.setSubActions(this.getSubActions())}))},update:function(){Ht.prototype.update.call(this);const e=Re();this.button.title=Se("toolbar.op.title",{opName:e.name}),this.setSubActions(this.getSubActions())},getSubActions:function(){const e=[{title:Se("OP_SETTINGS_TITLE"),text:Se("OP_SETTINGS_BUTTON"),callback:()=>{this.disable(),(new Br).enable()},context:this},{title:Se("CHECKLIST BUTTON TITLE"),text:Se("CHECKLIST BUTTON"),callback:()=>{this.disable(),(new Ii).enable()},context:this},{title:Se("MARKER LIST TITLE"),text:Se("MARKER LIST"),callback:()=>{this.disable(),(new Sc).enable()},context:this},{title:Se("BLOCKER LIST TITLE"),text:Se("BLOCKER TITLE"),callback:()=>{this.disable(),(new kc).enable()},context:this},{title:Se("KEYS"),text:Se("KEYS"),callback:()=>{this.disable(),(new Nc).enable()},context:this},{title:Se("toolbar.op.filter"),text:Se("toolbar.op.filter"),callback:()=>{this.disable(),(new Gc).enable()},context:this}];return Cc.length>1&&e.push({title:Se("toolbar.op.undo"),text:Se("toolbar.op.undo"),accesskey:"z",callback:()=>{dt({id:"analytics",action:"undo"}),async function(){if(Cc.length<2)return!1;const e=Re();yc.push(Cc.pop()),Rc=!0;const t=Cc[Cc.length-1];t.fetched=e.fetched,t.fetchedOp=e.fetchedOp,t.lasteditid=e.lasteditid,await t.store(),await Pe(t.ID),Rc=!1}()},context:this}),yc.length>0&&e.push({title:Se("toolbar.op.redo"),text:Se("toolbar.op.redo"),accesskey:"y",callback:()=>{dt({id:"analytics",action:"redo"}),async function(){if(!yc.length)return!1;const e=Re();Cc.push(yc.pop()),Rc=!0;const t=Cc[Cc.length-1];t.fetched=e.fetched,t.fetchedOp=e.fetchedOp,t.lasteditid=e.lasteditid,await t.store(),await Pe(t.ID),Rc=!1}()},context:this}),e}}),zc=Hc,Fc=Kt.extend({statics:{TYPE:"linkDialog"},needWritePermission:!0,initialize:function(e){Kt.prototype.initialize.call(this,e);let t=localStorage[w.LINK_SOURCE_KEY];t&&(this._source=new ee(t)),t=localStorage[w.ANCHOR_ONE_KEY],t&&(this._anchor1=new ee(t)),t=localStorage[w.ANCHOR_TWO_KEY],t&&(this._anchor2=new ee(t))},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_addPortalSet(e,t,a,o,n){L.DomUtil.create("label",null,e).textContent=t;const i=L.DomUtil.create("button","set",e);if(i.textContent=Se("SET"),n){const t=L.DomUtil.create("button","add",e);t.textContent=n,L.DomEvent.on(t,"click",(e=>{if(L.DomEvent.stop(e),this._source&&this[a]){const e=Re();e.addLink(this._source,this[a],{description:this._desc.value,order:e.nextOrder})}else De("Select both Source and Anchor")}))}const r=L.DomUtil.create("span","portal",e);this[a]?r.appendChild(We(this[a])):r.textContent=Se("NOT_SET"),L.DomEvent.on(i,"click",(e=>{L.DomEvent.stop(e),this[a]=Ze(),this[a]?(localStorage[o]=JSON.stringify(this[a]),r.textContent="",r.appendChild(We(this[a]))):De(Se("PLEASE_SELECT_PORTAL"))}))},_displayDialog:function(){const e=L.DomUtil.create("div","container");this._addPortalSet(e,Se("SOURCE_PORT"),"_source",w.LINK_SOURCE_KEY),this._addPortalSet(e,Se("ANCHOR1"),"_anchor1",w.ANCHOR_ONE_KEY,Se("ADD1")),this._addPortalSet(e,Se("ANCHOR2"),"_anchor2",w.ANCHOR_TWO_KEY,Se("ADD2"));const t=L.DomUtil.create("button","drawb",e);t.textContent=Se("ADD_BUTTON_LINKS"),this._desc=L.DomUtil.create("input","desc",e),this._desc.placeholder=Se("DESCRIP_PLACEHOLD"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this._source||De(Se("SEL_SRC_PORT"));const t=Re();t.startBatchMode(),this._anchor1&&t.addLink(this._source,this._anchor1,{description:this._desc.value,order:t.nextOrder}),this._anchor2&&t.addLink(this._source,this._anchor2,{description:this._desc.value,order:t.nextOrder}),t.endBatchMode()}));const a={};a[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("ADD_LINKS"),html:e,width:"auto",dialogClass:"link",buttons:a,id:b.dialogNames.linkDialogButton})}}),Wc=Fc,Yc=Kt.extend({statics:{TYPE:"autodraw"},needWritePermission:!0,initialize:function(e){Kt.prototype.initialize.call(this,e),this._portalSets={}},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:op:select wasabee:op:change",this._opChange,this),this._mapRefreshHook=this._updatePortalSet.bind(this),window.addHook("mapDataRefreshEnd",this._mapRefreshHook),this._operation=Re()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:op:select wasabee:op:change",this._opChange,this),window.removeHook("mapDataRefreshEnd",this._mapRefreshHook)},_opChange:function(){this._operation=Re(),this._updatePortalSet()},_initPortalSet:function(e,t,a){const o=this._portalSets[e];o.zone=t,o.keys=a,o.portals=[]},_updatePortalSet:function(){for(const e in this._portalSets){const t=this._portalSets[e];if(t.keys){const e=this._operation.markers.filter((e=>e.type===X.constants.MARKER_TYPE_KEY));if(t.portals=e.map((e=>this._operation.getPortal(e.portalId))),t.zone){const e=this._operation.getZone(t.zone);e&&(t.portals=t.portals.filter((t=>e.contains(t.latLng))))}}else{const e=qe(this._operation);if(0==t.zone)t.portals=e;else{const a=new Set(t.portals.map((e=>e.id)));for(const o of e)a.has(o.id)||t.portals.push(o);const o=this._operation.getZone(t.zone);o&&(t.portals=t.portals.filter((e=>o.contains(e.latLng))))}}t.display.textContent=Se("PORTAL_COUNT",{count:t.portals.length})}},_addSetPortal:function(e,t,a,o,n){L.DomUtil.create("label","set-portal-label",a).textContent=e;const i=L.DomUtil.create("button","set-portal-button",a);i.textContent=Se("SET");const r=L.DomUtil.create("span","set-portal-display",a);this[t]?r.appendChild(We(this[t])):r.textContent=Se("NOT_SET"),L.DomEvent.on(i,"click",(()=>{this[t]=Ze(),this[t]?(o&&(localStorage[o]=JSON.stringify(this[t])),r.textContent="",r.appendChild(We(this[t]))):(r.textContent=Se("NOT_SET"),De(Se("PLEASE_SELECT_PORTAL"))),n&&n()}))},_addCheckbox:function(e,t,a,o,n){const i=L.DomUtil.create("label","checkbox-label",o);i.textContent=e,i.htmlFor=t;const r=L.DomUtil.create("input","checkbox-input",o);r.type="checkbox",r.id=t,r.checked=n,this[a]=n,L.DomEvent.on(r,"change",(()=>{this[a]=r.checked}))},_addSelectSet:function(e,t,a,o){L.DomUtil.create("label","select-set-label",a).textContent=e;const n=L.DomUtil.create("select","select-set-input",a),i=L.DomUtil.create("span","select-set-display",a);i.textContent=Se("NOT_SET");{const e=L.DomUtil.create("option",null,n);e.textContent=Se("MM_SET_ALL_PORTALS"),e.value="all",e.selected=o==e.value}{const e=L.DomUtil.create("option",null,n);e.textContent=Se("MM_SET_ALL_KEYS"),e.value="keys",e.selected=o==e.value}for(const e of this._operation.zones){const t=L.DomUtil.create("option",null,n);t.textContent=e.name,t.value=e.id,t.selected=o==t.value}for(const e of this._operation.zones){const t=L.DomUtil.create("option",null,n);t.textContent=Se("MM_SET_KEYS_ZONE",{zoneName:e.name}),t.value="keys"+e.id,t.selected=o==t.value}L.DomEvent.on(n,"change",(e=>{L.DomEvent.stop(e);const a="keys"===n.value.slice(0,4),o="all"===n.value||"keys"===n.value?0:+(a?n.value.slice(4):n.value);this._initPortalSet(t,o,a),this._updatePortalSet()})),this._portalSets[t]={portals:[],zone:0,keys:!1,display:i}}});function Zc(e,t,a){const o=function(e){const t=new Map,a=o=>{if(void 0===t.get(o)){const n={children:[],length:1,number:1},i="__start__"===o?Array.from(e.keys()):e.get(o).filter((e=>e!==o));for(const e of i){const t=a(e);t.length+1>n.length&&(n.length=t.length+1,n.children=[],n.number=0),t.length+1==n.length&&(n.children.push(e),n.number+=t.number)}t.set(o,n)}return t.get(o)};return{maxima:a("__start__").children,poset:t,number:a("__start__").number}}(e);if(!o.maxima.length)return[];const n=new Map;a||(a=()=>0);const i=e=>{if(void 0===n.get(e)){const t=o.poset.get(e);if(1==t.length)n.set(e,{seq:[e],dist:0});else{const o=t.children.map(i).reduce(((t,o)=>t.dist+a(e,t.seq[t.seq.length-1])e.dist[e.id,e]))),[i,r]=function(e,t,a){const o=new Map,n=new Map;for(const i of a){if(i.id===e.id||i.id===t.id)continue;const r=[],s=pe(e,t,i);for(const o of a)o.id!==e.id&&o.id!==t.id&&(i===o||pe(e,t,o)*s>0&&pe(t,i,o)*s>0&&pe(i,e,o)*s>0)&&r.push(o.id);s>0?o.set(i.id,r):n.set(i.id,r)}return[o,n]}(e,t,a),s=Zc(i,null,((e,t)=>window.map.distance(n.get(e).latLng,n.get(t).latLng))),l=Zc(r,null,((e,t)=>window.map.distance(n.get(e).latLng,n.get(t).latLng)));return o?[s.map((e=>n.get(e))),l.map((e=>n.get(e)))]:[(s.length>l.length?s:l).map((e=>n.get(e)))]}function Vc(e,t){if(e.id==t.id)throw Error("same portal");return e.latLng.lng==t.latLng.lng?e.latLng.lat>t.latLng.lat?0:Math.PI:new fe(e.latLng,t.latLng).bearing()}function jc(e,t){const a=new Map;for(const o of t){if(o.id==e.id)continue;const t=Vc(e,o);a.set(t,o)}return new Array(...a.entries()).sort(((e,t)=>e[0]-t[0])).map((e=>e[1]))}function Qc(e,t,a,o){const n=Vc(e,a);((Vc(e,o)-n)%(2*Math.PI)+2*Math.PI)%(2*Math.PI)>Math.PI&&([a,o]=[o,a]);const i=new Array;let r=0;for(r=0;t[r].id!=a.id;r++);for(;t[r%t.length].id!=o.id;r++)i.push(t[r%t.length]);return i.push(o),i}function Jc(e,t,a,o=!1){for(const e of t)e.order=0;if(!o&&aa&&(o.order+=t.length);for(const o of e.markers)o.order>a&&(o.order+=t.length)}for(const e of t)e.order=++a;return a}function Xc(e,t,a,o,n,i={}){const r=function(e,t,a,o={}){const n=[];let i=null;for(const r of a)n.push({from:r,to:e}),n.push({from:r,to:t}),o.backlink&&i&&n.push({from:r,to:i,back:!0}),i=r;return n}(t,a,o,i),s=i.commentPrefix||"",l=r.map((t=>e.addLink(t.from,t.to,{description:s+(t.back?"backlink":"link")}))).filter((e=>e));return Jc(e,l,n,i.noShift)}const $c=Yc.extend({statics:{TYPE:"multimaxDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);let t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchorOne=new ee(t)),t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY],t&&(this._anchorTwo=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog(),this._updatePortalSet()},_buildContent:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SELECT_INSTRUCTIONS"),L.DomUtil.create("div","desc",e).textContent=Se("SEL_SB_ANCHOR2"),this._addSetPortal(Se("ANCHOR1"),"_anchorOne",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY),this._addSetPortal(Se("ANCHOR2"),"_anchorTwo",e,window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY),this._addCheckbox(Se("ADD_BL"),"wasabee-multimax-backlink","_flcheck",e),this._addCheckbox(Se("MM_INSERT_ORDER"),"wasabee-multimax-insert-order","_orderFromEnd",e,!0),this._addCheckbox(Se("MM_BOTH_SIDE"),"wasabee-multimax-both-side","_bothSide",e,!1),this._addSelectSet(Se("MM_SPINE"),"spine",e,"all");const t=L.DomUtil.create("button","drawb",e);return t.textContent=Se("MULTI_M"),L.DomEvent.on(t,"click",(()=>{const e=this.doMultimax.call(this);2===e.length?ve(Se("autodraw.multimax.result_both_side",{count1:e[0],count2:e[1]})):ve(Se("autodraw.multimax.result",{count:e[0]}))})),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("MULTI_M_TITLE"),html:e,width:"auto",dialogClass:"multimax",buttons:t,id:b.dialogNames.multimaxButton})},MM:function(e,t,a,o=0,n=!0,i="multimax ",r=!1){const s=qc(e,t,a,r);n&&(o=Jc(this._operation,[this._operation.addLink(e,t,{description:i+"base"})],o));for(const a of s)o=Xc(this._operation,e,t,a,o,{commentPrefix:"multimax ",backlink:this._flcheck});return s.map((e=>e.length))},doMultimax:function(){const e=this._portalSets.spine.portals;if(!this._anchorOne||!this._anchorTwo||!e.length)return De(Se("INVALID REQUEST")),0;this._operation.startBatchMode(),console.log("starting multimax");const t=this.MM(this._anchorOne,this._anchorTwo,e,this._orderFromEnd?this._operation.nextOrder-1:0,!0,"multimax ",this._bothSide);return console.log("multimax done"),this._operation.endBatchMode(),t}}),ed=$c;const td=Yc.extend({statics:{TYPE:"FanfieldDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);let t=localStorage["wasabee-anchor-1"];t&&(this._anchor=new ee(t)),t=localStorage["wasabee-fanfield-start"],t&&(this._start=new ee(t)),t=localStorage["wasabee-fanfield-end"],t&&(this._end=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog(),this._updatePortalSet()},_displayDialog:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SELECT_FAN_PORTALS"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchor",e,"wasabee-anchor-1"),this._addSetPortal(Se("START_PORT"),"_start",e,"wasabee-fanfield-start"),this._addSetPortal(Se("END_PORT"),"_end",e,"wasabee-fanfield-end"),this._addSelectSet(Se("AUTODRAW_PORTALS_SET"),"set",e,"all"),L.DomUtil.create("div","desc secondary",e).textContent=Se("SELECT_FAN_PORTALS2");const t=L.DomUtil.create("button","drawb",e);t.textContent=Se("FANFIELD"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this.fanfield.call(this)}));const a={};a[Se("CLOSE")]=()=>{this.closeDialog()},a[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("FANFIELD2"),html:e,width:"auto",dialogClass:"fanfield",buttons:a,id:b.dialogNames.fanfield})},fanfield:function(){if(!this._anchor||!this._start||!this._end)return void De(Se("SET_3_PORT"));const[e,t]=function(e,t,a,o){let n=0;const i=[],r=function(e,t,a,o){return t.find((e=>e.id===a.id))||t.push(a),t.find((e=>e.id===o.id))||t.push(o),Qc(e,jc(e,t),a,o)}(e,t,a,o),s=Array.from(r);s.reverse();for(let t=s.length-1;t>=0;t--){const a=s[t];if(i.push({from:a,to:e,comment:"anchor"}),t+1==s.length)continue;let o=t+1,r=null;for(;ot;l--)i.push({from:a,to:s[l],comment:"double subfield"}),n+=2;s.splice(t+1,o-t-1)}return[i,n]}(this._anchor,this._portalSets.set.portals,this._start,this._end),a=Re();a.startBatchMode();const o=e.map((e=>a.addLink(e.from,e.to,{description:"fanfield "+e.comment}))).filter((e=>e));Jc(a,o,0),a.endBatchMode();const n=313*e.length+1250*t;ve(Se("autodraw.fanfield.result",{links:e.length,fields:t,ap:n}))}}),ad=td,od=Yc.extend({statics:{TYPE:"StarburstDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);const t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchor=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog()},_buildContent:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SEL_SB_ANCHOR"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchor",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY),L.DomUtil.create("div","desc secondary",e).textContent=Se("SEL_SB_ANCHOR2"),this._addSelectSet(Se("MM_SPINE"),"spine",e,"all");const t=L.DomUtil.create("button","drawb",e);return t.textContent=Se("STARBURST_DRAW"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this.starburst.call(this)})),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("STARBURST TITLE"),html:e,width:"auto",dialogClass:"starburst",buttons:t,id:b.dialogNames.starburst})},starburst:function(){if(!this._anchor)return void De(Se("SEL_SB_ANCHOR"));const e=Re();e.startBatchMode();const t=this._portalSets.spine.portals;for(const a of t)a.id!=this._anchor.id&&e.addLink(a,this._anchor,{description:"auto starburst"});e.endBatchMode()}}),nd=od,id=Yc.extend({statics:{TYPE:"SaveLinksDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);const t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchor=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SEL_SL_ANCHOR"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchor",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY);const t=L.DomUtil.create("button","drawb",e);t.textContent=Se("SAVELINKS_DRAW"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this.saveLinks.call(this)}));const a={};a[Se("CLOSE")]=()=>{this.closeDialog()},a[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("SAVELINKS TITLE"),html:e,width:"auto",dialogClass:"savelinks",buttons:a,id:b.dialogNames.savelinks})},saveLinks:function(){if(!this._anchor)return void De("Select an anchor portal");const e=Re();e.startBatchMode();for(const t of function(e,t){const a=[];for(const o in window.links){const n=window.links[o];if(e.containsLinkFromTo(n.options.data.oGuid,n.options.data.dGuid))continue;const i=new ee({id:n.options.data.oGuid,lat:(n.options.data.oLatE6/1e6).toFixed(6),lng:(n.options.data.oLngE6/1e6).toFixed(6),name:n.options.data.oGuid,comment:"in"}),r=new ee({id:n.options.data.dGuid,lat:(n.options.data.dLatE6/1e6).toFixed(6),lng:(n.options.data.dLngE6/1e6).toFixed(6),name:n.options.data.dGuid,comment:"out"});i.id===t.id&&a.push(r),r.id===t.id&&a.push(i)}return a}(e,this._anchor))t.id!=this._anchor.id&&("out"===t.comment?e.addLink(this._anchor,t,{description:"Save Links (Outbound from anchor)"}):e.addLink(t,this._anchor,{description:"Save Links (Inbound to anchor)"}));e.endBatchMode()}}),rd=id;function sd(e,t,a){return[[e,ld(e,t,a)],[t,ld(t,a,e)],[a,ld(a,e,t)]].sort(((e,t)=>t[1]-e[1])).map((e=>e[0]))}function ld(e,t,a){const o=window.map.project(t.latLng),n=window.map.project(e.latLng),i=window.map.project(a.latLng),r=Math.sqrt(Math.pow(n.x-o.x,2)+Math.pow(n.y-o.y,2)),s=Math.sqrt(Math.pow(n.x-i.x,2)+Math.pow(n.y-i.y,2)),l=Math.sqrt(Math.pow(i.x-o.x,2)+Math.pow(i.y-o.y,2));return Math.acos((s*s+r*r-l*l)/(2*s*r))}const cd=Yc.extend({statics:{TYPE:"OnionDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);const t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchor=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SELECT_ONION_PORTALS"),L.DomUtil.create("div","desc",e).textContent=Se("SEL_SB_ANCHOR2"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchor",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY),L.DomUtil.create("label",null,e).textContent=Se("autodraw.onion.variant"),this.optionMenu=L.DomUtil.create("select",null,e);for(const[e,t]of[[Se("autodraw.onion.variant.equilateral"),"equi"],[Se("autodraw.onion.variant.grow"),"grow"],[Se("autodraw.onion.variant.balanced"),"balanced"]]){const a=L.DomUtil.create("option",null,this.optionMenu);a.value=t,a.textContent=e}const t=L.DomUtil.create("button","drawb",e);t.textContent=Se("ONION"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),this.onion.call(this)}));const a={};a[Se("CLOSE")]=()=>{this.closeDialog()},a[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("ONION_WAS_TAKEN"),html:e,width:"auto",dialogClass:"onion",buttons:a})},onion:function(){if(this._operation=Re(),!this._anchor)return void De("no anchor selected");const e=["#f80c12","#ee1100","#ff3311","#ff4422","#ff6644","#ff9933","#feae2d","#ccbb33","#d0c310","#aacc22","#69d025","#22ccaa","#12bdb9","#11aabb","#4444dd","#3311bb","#3b0cbd","#442299"],t=qe(this._operation),a=function(e,t,a){if(t=t.filter((t=>t.id!==e.id)),t.length<2)return[];const o=new Map;for(const a of t){const t=window.map.distance(e.latLng,a.latLng);o.set(t,a)}const n=[...o.entries()].sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));let[i,r,s]=sd(e,n[0],n[1]);const l=[{from:r,to:i},{from:s,to:i},{from:s,to:r}];t=t.filter((e=>e.id!==r.id&&e.id!==s.id));const c="grow"===a?3:1;let d=c;for(;d>0&&t.length>0;){d-=1;const e=new Map;for(const a of t){const t=window.map.distance(i.latLng,a.latLng);e.set(t,a)}const o=[...e.entries()].sort(((e,t)=>e[0]-t[0])).map((e=>e[1])).find((e=>me(e,r,s,i)));o&&(d=c,t=t.filter((e=>e.id!==o.id)),l.push({from:o,to:r}),l.push({from:o,to:s}),l.push({from:o,to:i}),[i,r,s]="balanced"===a?[r,s,o]:sd(r,s,o)),dthis._operation.addLink(t.from,t.to,{order:a+1,color:e[a%e.length]}))),this._operation.endBatchMode()}}),dd=cd;function ud(e,t,a,o,n){const i=new Array;for(const r of t){const t=r.id||r.options.guid;t!==e.id&&t!==a.id&&t!==o.id&&t!==n.id&&i.push(r)}const r=new Array,s=new Array,l=new Array;for(const t of i)ge(t.latLng,a.latLng,e.latLng,o.latLng)||ge(t.latLng,a.latLng,e.latLng,n.latLng)?s.push(t):ge(t.latLng,o.latLng,e.latLng,a.latLng)||ge(t.latLng,o.latLng,e.latLng,n.latLng)?l.push(t):r.push(t);return[r,s,l]}function pd(e,t){const a=ue(t)._cartesian,o=new Map(e.map((e=>{return[e.id,(t=a,o=ue(e.latLng)._cartesian,function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]}([t[0]-o[0],t[1]-o[1],t[2]-o[2]]))];var t,o})));return e.sort(((e,t)=>o.get(e.id)-o.get(t.id)))}function md(e){return(3**(e-1)-1)/2}function hd(e,t,a,o,n){if(n<=1)return{success:!0,anchors:[t,a,o],split:0};let i={success:!1,anchors:[t,a,o],split:0,portal:null,children:null};if(!e.length)return i;pd(e,he(t,a,o));let r=e.length,s=[],l={};for(const n of e){const i=ud(n,new Array(...e),t,a,o),c=Math.max(i[0].length,i[1].length,i[2].length)-Math.min(i[0].length,i[1].length,i[2].length);if(cme(this._anchorOne,this._anchorTwo,this._anchorThree,e))),this._portalSets.portals.display.textContent=Se("PORTAL_COUNT",{count:this._portalSets.portals.portals.length}))},removeHooks:function(){window.removeLayerGroup(this._layerGroup),Yc.prototype.removeHooks.call(this)},_displayDialog:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("H-GEN_INST"),this._addSetPortal(Se("ANCHOR_PORTAL"),"_anchorOne",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY,this._updatePortalSet.bind(this)),this._addSetPortal(Se("ANCHOR_PORTAL2"),"_anchorTwo",e,window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY,this._updatePortalSet.bind(this)),this._addSetPortal(Se("ANCHOR_PORTAL3"),"_anchorThree",e,window.plugin.wasabee.static.constants.ANCHOR_THREE_KEY,this._updatePortalSet.bind(this)),this._addSelectSet(Se("AUTODRAW_PORTALS_SET"),"portals",e,"all"),this.spanPortalNeeded=L.DomUtil.create("span","",e),L.DomUtil.create("label",null,e).textContent=Se("MAX_SPLITS"),this.depthMenu=L.DomUtil.create("input",null,e),this.depthMenu.type="number",this.depthMenu.min=2,this.depthMenu.value=4,L.DomEvent.on(this.depthMenu,"change",(()=>{this.spanPortalNeeded.textContent=Se("autodraw.homogeneous.portals_required",{count:md(+this.depthMenu.value)})})),L.DomUtil.create("label",null,e).textContent=Se("autodraw.homogeneous.order"),this.orderMenu=L.DomUtil.create("select",null,e);for(const[e,t]of[[Se("FROM_DEPTH"),"core"],[Se("FROM_1-2"),"base12"],[Se("FROM_1-3"),"base13"],[Se("FROM_2-3"),"base23"]]){const a=L.DomUtil.create("option",null,this.orderMenu);a.value=t,a.textContent=e}this._addCheckbox(Se("HF_DEEP_SEARCH"),"wasabee-homogeneous-deep","_fullSearch",e,!0);const t=L.DomUtil.create("div",null,e);this._redrawButton=L.DomUtil.create("button",null,t),this._redrawButton.textContent=Se("HF_REDRAW_BUTTON"),this._redrawButton.style.display="none",L.DomEvent.on(this._redrawButton,"click",(e=>{L.DomEvent.stop(e),this._operation=Re(),this._tree&&this._draw.call(this)}));const a=L.DomUtil.create("button","drawb",e);a.textContent=Se("HF_DRAW_BUTTON"),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),this._operation=Re(),+this.depthMenu.value<2||(this._fullSearch?this.hdeepfield():this.hfield())}));const o={};o[Se("CLOSE")]=()=>{this.closeDialog()},o[Se("CLEAR LINKS")]=()=>{this._layerGroup.clearLayers(),Dr(Re())},this.createDialog({title:Se("HG"),html:e,width:"auto",dialogClass:"homogeneous",buttons:o})},hfield:function(){if(this._failed=0,this._layerGroup.clearLayers(),!this._anchorOne||!this._anchorTwo||!this._anchorThree)return void De("please select three anchors");const e=Array.from(this._portalSets.portals.portals);console.time("HF greedy");const t=hd(e,this._anchorOne,this._anchorTwo,this._anchorThree,+this.depthMenu.value);console.timeEnd("HF greedy"),this._tree=t,this._failed=md(+this.depthMenu.value)-t.split,this._draw(),this._failed>0&&Oe(Se("autodraw.homogeneous.missing_split",{count:this._failed}))},hdeepfield:function(){if(this._failed=0,this._layerGroup.clearLayers(),!this._anchorOne||!this._anchorTwo||!this._anchorThree)return void De("please select three anchors");const e=Array.from(this._portalSets.portals.portals);console.time("HF deep recurser");const t=function(e,t,a,o,n){const i=new Map;console.log("Expect at least",Math.max(0,md(n)-e.length),"missing splits");const r=(e,t,a,o,n)=>{if(e<=1)return{success:!0,anchors:[a,o,n],split:0};const s=[e,a.id,o.id,n.id].sort().toString();if(void 0===i.get(s)){const l=Math.min(md(e),t.length);let c={success:!1,anchors:[a,o,n],split:0,portal:null,children:null};pd(t,he(a,o,n));for(const i of t){const s=ud(i,new Array(...t),a,o,n);if(Math.min(md(e-1),s[0].length)+Math.min(md(e-1),s[1].length)+Math.min(md(e-1),s[2].length)+1<=c.split)continue;let d=r(e-1,new Array(...s[0]),a,o,i),u=r(e-1,new Array(...s[1]),o,n,i),p=r(e-1,new Array(...s[2]),a,n,i);const m=d.split+u.split+p.split+1;if(m>c.split&&(c.success=d.success&&u.success&&p.success,c.split=m,c.portal=i,c.children=[d,u,p]),m==l)break}i.set(s,c)}return i.get(s)};return r(n,e,t,a,o)}(e,this._anchorOne,this._anchorTwo,this._anchorThree,+this.depthMenu.value);console.timeEnd("HF deep recurser"),this._tree=t,this._failed=md(+this.depthMenu.value)-t.split,this._draw(),this._failed>0&&Oe(Se("autodraw.homogeneous.missing_split",{count:this._failed})),this._failed=0,this._anchorOne&&this._anchorTwo&&this._anchorThree||De("please select three anchors")},_draw:function(){this._colors=["#f80c12","#ee1100","#ff3311","#ff4422","#ff6644","#ff9933","#feae2d","#ccbb33","#d0c310","#aacc22","#69d025","#22ccaa","#12bdb9","#11aabb","#4444dd","#3311bb","#3b0cbd","#442299"],this._operation.startBatchMode(),"base12"==this.orderMenu.value?this._drawTreeBase(this._tree,this._anchorOne,this._anchorTwo):"base13"==this.orderMenu.value?this._drawTreeBase(this._tree,this._anchorOne,this._anchorThree):"base23"==this.orderMenu.value?this._drawTreeBase(this._tree,this._anchorTwo,this._anchorThree):this._drawTreeCore(this._tree),this._operation.endBatchMode(),this._operation.cleanPortalList(),this._redrawButton.style.display=""},_drawTreeCore:function(e){const t=+this.depthMenu.value-1,[a,o,n]=e.anchors,i=(e,t,a)=>{if(t.portal){a.set(t.portal.id,e);for(const o of t.children)i(e+1,o,a)}},r=new Map([[a.id,0],[o.id,0],[n.id,0]]);i(1,e,r);const s=(e,n)=>{let i=r.get(e.id),s=r.get(n.id);const l=(t-s)*(t-s-1)/2+1;return 0!=s||n.id==a.id?l+i-s-1:n.id==o.id?l+t+i:l+2*t+i+1},l=(e,t)=>{if(t.portal){const[a,o,n]=t.anchors.map((e=>[r.get(e.id),e])).sort().map((e=>e[1])),i=s(t.portal,a),c=s(t.portal,o),d=s(t.portal,n),u=[r.get(a.id)?[a,t.portal,"intern",i]:[a,t.portal,"anchor intern",i],r.get(o.id)>0?[t.portal,o,"early",d]:[o,t.portal,"anchor intern",c],0==r.get(n.id)?[n,t.portal,"anchor intern",d]:[t.portal,n,"to father",d]];for(const[e,t,a,o]of u)this._operation.addLink(e,t,{description:a,order:o,color:this._colors[o%this._colors.length],replace:!0});for(const a of t.children)l(e+1,a)}},c=(e,t)=>{if(t.portal)for(const a of t.children)c(e-1,a);if(!t.portal&&!t.success){const a=1==e?"orange":"red",o=[t.anchors[0].latLng,t.anchors[1].latLng,t.anchors[2].latLng,t.anchors[0].latLng];L.polygon(o,{color:a}).addTo(this._layerGroup)}};c(t,e),this._operation.addPortal(a),this._operation.addPortal(o),this._operation.addPortal(n),this._operation.addLink(o,a,{description:"Outer 1",order:t*(t-1)/2+t+1,color:this._colors[(t*(t-1)/2+t+1)%this._colors.length],replace:!0}),this._operation.addLink(n,a,{description:"Outer 2",order:t*(t-1)/2+2*t+2,color:this._colors[(t*(t-1)/2+2*t+2)%this._colors.length],replace:!0}),this._operation.addLink(n,o,{description:"Outer 3",order:t*(t-1)/2+2*t+2,color:this._colors[(t*(t-1)/2+2*t+2)%this._colors.length],replace:!0}),l(1,e)},_drawTreeBase:function(e,t,a){const o=+this.depthMenu.value-1,n=(e,t,a,o,i)=>{if(t.portal){const s=t.anchors.filter((e=>e.id!==a.id&&e.id!==o.id))[0];for(const n of t.children)n.anchors.every((e=>e.id!==s.id))&&(i=r(e+1,n,a,o,i));let l,c;for(const r of t.children)r.anchors.every((e=>e.id!==o.id))&&(l=n(e+1,r,a,t.portal,i));for(const r of t.children)r.anchors.every((e=>e.id!==a.id))&&(c=n(e+1,r,o,t.portal,i));i=Math.max(l,c)}return i},i=(e,t,a,n)=>{if(t.portal){this._operation.addLink(a,t.portal,{description:"intern link",order:n+1,color:this._colors[n%this._colors.length],replace:!0});for(const o of t.children)o.anchors.includes(a)&&i(e+1,o,a,n+1)}return n+o-e+1},r=(e,t,a,o,r=1)=>{r=n(e,t,a,o,r);const s=t.anchors.filter((e=>e.id!==a.id&&e.id!==o.id))[0];for(const e of[a,o])this._operation.addLink(s,e,{order:r+1,color:this._colors[r%this._colors.length],replace:!0});return t.portal?i(e,t,s,r+1):r+1},s=(e,t)=>{if(t.portal)for(const a of t.children)s(e-1,a);if(!t.portal&&!t.success){const a=1==e?"orange":"red",o=[t.anchors[0].latLng,t.anchors[1].latLng,t.anchors[2].latLng,t.anchors[0].latLng];L.polygon(o,{color:a}).addTo(this._layerGroup)}};s(o,e);for(const t of e.anchors)this._operation.addPortal(t);this._operation.addLink(a,t,{description:"Outer base",order:1,color:this._colors[0],replace:!0}),r(1,e,t,a)},_getCenter:function(e,t,a){const o=window.map.project(e.latLng||e._latlng),n=window.map.project(t.latLng||t._latlng),i=window.map.project(a.latLng||a._latlng),r=L.point((o.x+n.x+i.x)/3,(o.y+n.y+i.y)/3);return window.map.unproject(r)}}),fd=gd;function Ed(e,t,a,o,n){const[i]=qc(e,t,n,!1),r=i[i.length-1],[s]=qc(t,r,a.filter((a=>e.id==a.id||me(t,r,a,e))),!1),l=s[s.length-1],[c]=qc(r,l,o.filter((e=>t.id==e.id||me(r,l,e,t))),!1);return[s,c,i]}const _d=Yc.extend({statics:{TYPE:"madridDialog"},initialize:function(e){Yc.prototype.initialize.call(this,e);let t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY];t&&(this._anchorOne=new ee(t)),t=localStorage[window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY],t&&(this._anchorTwo=new ee(t))},addHooks:function(){Yc.prototype.addHooks.call(this),this._displayDialog(),this._updatePortalSet()},_buildContent:function(){const e=L.DomUtil.create("div","container");L.DomUtil.create("div","desc",e).textContent=Se("SELECT_INSTRUCTIONS"),this._addSetPortal(Se("ANCHOR1"),"_anchorOne",e,window.plugin.wasabee.static.constants.ANCHOR_ONE_KEY),this._addSelectSet(Se("MADRID_SET_1"),"setOne",e,"all"),this._addSetPortal(Se("ANCHOR2"),"_anchorTwo",e,window.plugin.wasabee.static.constants.ANCHOR_TWO_KEY),this._addSelectSet(Se("MADRID_SET_2"),"setTwo",e,"all"),L.DomUtil.create("label",null,e).textContent=Se("ANCHOR3"),L.DomUtil.create("span",null,e).textContent=Se("autodraw.madrid.auto_determined"),this._addSelectSet(Se("MADRID_SET_3"),"setThree",e,"all"),this._addCheckbox(Se("ADD_BL"),"wasabee-madrid-backlink","_flcheck",e),this._addCheckbox(Se("autodraw.madrid.balanced"),"wasabee-madrid-balanced","_balancedcheck",e);const t=L.DomUtil.create("label","newline",e),a=L.DomUtil.create("span",null,e);t.textContent="\0",a.textContent="\0",L.DomUtil.create("label","placeholder",e).textContent="⁣";const o=L.DomUtil.create("button","drawb",e);return o.textContent=Se("MADRID"),L.DomEvent.on(o,"click",(()=>{this._operation=Re();const e=this._balancedcheck?this.doBalancedMadrid.call(this):this.doMadrid.call(this);ve(Se("autodraw.madrid.result",{count:e}))})),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("MADRID_TITLE"),html:e,width:"auto",dialogClass:"madrid",buttons:t,id:b.dialogNames.madrid})},doBalancedMadrid:function(){if(!(this._anchorOne&&this._anchorTwo&&this._portalSets.setOne.portals.length&&this._portalSets.setTwo.portals.length&&this._portalSets.setThree.portals.length))return De(Se("INVALID REQUEST")),0;null==this._portalSets.setOne.portals.find((e=>this._anchorOne.id==e.id))&&this._portalSets.setOne.portals.push(this._anchorOne),null==this._portalSets.setTwo.portals.find((e=>this._anchorTwo.id==e.id))&&this._portalSets.setTwo.portals.push(this._anchorTwo);const e=Ed(this._anchorOne,this._anchorTwo,this._portalSets.setOne.portals,this._portalSets.setTwo.portals,this._portalSets.setThree.portals),t=e.map((e=>1/e.length));this._operation.startBatchMode(),this._operation.addLink(e[0][0],e[1][0],{description:"inner field"}),this._operation.addLink(e[1][0],e[2][0],{description:"inner field"}),this._operation.addLink(e[2][0],e[0][0],{description:"inner field"});const a=[1,1,1];for(;a.some(((t,a)=>ta[e]*t[e]-a[o]*t[o])),n=e[o[0]][a[o[0]]],i=e[o[0]][a[o[0]]-1],r=e[o[1]][a[o[1]]-1],s=e[o[2]][a[o[2]]-1];for(let t=0;(!n||!me(n,r,s,i))&&t<3;t++)this._operation.setPortalComment(i,"point of disbalance"),o=[o[1],o[2],o[0]],n=e[o[0]][a[o[0]]],i=e[o[0]][a[o[0]]-1],r=e[o[1]][a[o[1]]-1],s=e[o[2]][a[o[2]]-1];me(n,r,s,i)||console.log("well, this doesn't work here...");const l=this._operation.addLink(n,r,{description:"link"}),c=this._operation.addLink(n,s,{description:"link"});l.zone=o[0]+1,c.zone=o[0]+1,a[o[0]]+=1}return this._operation.endBatchMode(),a[0]+a[1]+a[2]-2},doMadrid:function(){if(!(this._anchorOne&&this._anchorTwo&&this._portalSets.setOne.portals.length&&this._portalSets.setTwo.portals.length&&this._portalSets.setThree.portals.length))return De(Se("INVALID REQUEST")),0;null==this._portalSets.setOne.portals.find((e=>this._anchorOne.id==e.id))&&this._portalSets.setOne.portals.push(this._anchorOne),null==this._portalSets.setTwo.portals.find((e=>this._anchorTwo.id==e.id))&&this._portalSets.setTwo.portals.push(this._anchorTwo);const e=Ed(this._anchorOne,this._anchorTwo,this._portalSets.setOne.portals,this._portalSets.setTwo.portals,this._portalSets.setThree.portals);this._operation.startBatchMode();let t=Jc(this._operation,[this._operation.addLink(this._anchorOne,this._anchorTwo,{description:"madrid base"})],this._operation.nextOrder-1);return t=Xc(this._operation,this._anchorOne,this._anchorTwo,e[2],t,{commentPrefix:"madrid ",backlink:this._flcheck}),t=Xc(this._operation,this._anchorTwo,e[2][e[2].length-1],e[0].slice(1),t,{commentPrefix:"madrid ",backlink:this._flcheck}),Xc(this._operation,e[2][e[2].length-1],e[0][e[0].length-1],e[1].slice(1),t,{commentPrefix:"madrid ",backlink:this._flcheck}),this._operation.endBatchMode(),e[0].length+e[1].length+e[2].length-2}}),wd=_d;function Td(e,t,a,o,n,i){const r=[],s=[t,a];i.get(t.id)>i.get(a.id)&&s.reverse();for(let t=n;t=0&&i.get(s[n].id)>i.get(a.id);)n--;for(;l{const e=this.doFanGun();ve(Se("autodraw.flipflop.result",{count:e}))})),e},_displayDialog:function(){const e=this._buildContent(),t={};t[Se("CLOSE")]=()=>{this.closeDialog()},t[Se("FLIP_FLOP_FIND_ANCHORS")]=()=>{this.findOtherAnchors()},t[Se("CLEAR LINKS")]=()=>{Dr(Re())},this.createDialog({title:Se("FLIP_FLOP_TITLE"),html:e,width:"auto",dialogClass:"flipflop",buttons:t,id:"flipflop"})},findOtherAnchors:function(){if(!this.best)return;this._operation=Re();const e=qe(this._operation),t=this.best.steps.map((e=>e[0])).concat([this.best.two,this.best.three]),a=[];for(const o of e){let e=!0;for(const[t,a,n]of this.best.steps)if(window.map.distance(o.latLng,t.latLng)>window.map.distance(o.latLng,a.latLng)||window.map.distance(o.latLng,t.latLng)>window.map.distance(o.latLng,n.latLng)){e=!1;break}if(!e)continue;const n=Qc(o,jc(o,t),this.best.two,this.best.three);if(n.length!==t.length)continue;const i=n.map((e=>e.id));let r=0,s=0;for(;r[t.id,window.map.distance(t.latLng,e.latLng)])));return this.distCache&&this.distCache.set(e.id,a),a},createFanLinks:function(e,t,a,o,n=0){this._operation.addLink(t,a,{description:"flipflop origin",order:n+1});for(const[e,t,a]of o)this._operation.addLink(e,t,{description:"flipflop origin",order:n+1}),this._operation.addLink(e,a,{description:"flipflop origin",order:n+1});n++,this._operation.addLink(e,t,{description:"flipflop fire",order:++n}),this._operation.addLink(e,a,{description:"flipflop fire",order:++n});for(const t of o){const a=t[0];this._operation.addLink(e,a,{description:"flipflop fire",order:++n})}},doFanGun:function(){if(!this._anchorOne)return De(Se("INVALID REQUEST")),0;this._operation=Re();const e=this._portalSets.set.portals.filter((e=>e.id!=this._anchorOne.id)),t=+this._nbSbul.value<0?0:+this._nbSbul.value>4?4:+this._nbSbul.value;console.log("starting fastfan"),this.distCache=new Map;const a=this.getDistances(this._anchorOne,e);e.sort(((e,t)=>a.get(t.id)-a.get(e.id)));const o=jc(this._anchorOne,e),n={two:null,three:null,steps:[]},i=8*(t+1)-2;for(let t=0;t[e.id,t]))),c=Td(this._anchorOne,a,t,e,r+1,l);if((!n.two||n.steps.lengthe.id)),n.steps.length>=i))break}if(n.steps.length>=i)break}return n.steps.length>i&&(n.steps=n.steps.slice(0,i)),n.two?(this.best=n,this._operation.startBatchMode(),this.createFanLinks(this._anchorOne,n.two,n.three,n.steps,this._operation.nextOrder-1),console.log("fastfan done"),this._operation.endBatchMode(),n.steps.length+2):(De(Se("INVALID REQUEST")),0)}}),Ad=bd,Ld=Kt.extend({statics:{TYPE:"autodraws"},needWritePermission:!0,initialize:function(e){Kt.prototype.initialize.call(this,e),this.menuItems=[{text:Se("MM"),callback:()=>{this.closeDialog(),(new ed).enable()}},{text:Se("MAX"),callback:()=>{this.closeDialog(),(new ad).enable()}},{text:Se("STARBURST"),callback:()=>{this.closeDialog(),(new nd).enable()}},{text:Se("ONION_WAS_TAKEN"),callback:()=>{this.closeDialog(),(new dd).enable()}},{text:Se("HG"),callback:()=>{this.closeDialog(),(new fd).enable()}},{text:Se("MADRID_WAS_TAKEN"),callback:()=>{this.closeDialog(),(new wd).enable()}},{text:Se("SAVELINKS"),callback:()=>{this._dialog.dialog("close"),(new rd).enable()}},{text:Se("FLIP_FLOP_NAME"),callback:()=>{this.closeDialog(),(new Ad).enable()}}]},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=L.DomUtil.create("div","container");for(const t of this.menuItems){const a=L.DomUtil.create("a",null,e);a.href="#",a.textContent=t.text,L.DomEvent.on(a,"click",L.DomEvent.stopPropagation).on(a,"mousedown",L.DomEvent.stopPropagation).on(a,"dblclick",L.DomEvent.stopPropagation).on(a,"click",L.DomEvent.preventDefault).on(a,"click",t.callback,this)}const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("AUTODRAWS"),html:e,width:"auto",dialogClass:"autodraws",buttons:t,id:b.dialogNames.autodraws})}}),kd=Ht.extend({statics:{TYPE:"LinkButton"},needWritePermission:!0,initialize:function(e){this.type=kd.TYPE,this.title=Se("LINKS BUTTON TITLE"),this.handler=this._toggleActions,this._container=e,this.button=this._createButton({container:this._container,className:"wasabee-toolbar-link",callback:this._toggleActions,context:this,title:this.title}),this.setSubActions(this.getSubActions()),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("LINKS BUTTON TITLE"),this.setSubActions(this.getSubActions())}))},getSubActions:function(){return[{title:Se("ADD LINK TITLE"),text:Se("ADD_LINKS"),callback:()=>{this.disable(),(new Wc).enable()},context:this},{title:Se("AUTO_DRAWS"),text:Se("AUTO_DRAWS"),callback:()=>{this.disable(),(new Ld).enable()},context:this}]}}),Sd=kd,vd=Kt.extend({statics:{TYPE:"markerButton"},needWritePermission:!0,addHooks:function(){Kt.prototype.addHooks.call(this);const e=this;this._pch=()=>{e.update()},window.addHook("portalSelected",this._pch),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.removeHook("portalSelected",this._pch)},update:async function(){if(this._selectedPortal&&Ze()&&this._selectedPortal.id!==Ze().id&&this._bulk.checked)return this._selectedPortal=Ze(),void(X.markerTypes.has(this._type.value)&&await this._addMarker(this._type.value,this._comment.value,this._zones.value,this._assign.value));this._zones.textContent="";const e=L.DomUtil.create("option",null,this._zones);e.value=0,e.textContent=Se("dialog.common.zone_all");for(const e of Re().zones){const t=L.DomUtil.create("option",null,this._zones);t.value=e.id,t.textContent=e.name}const t=await this._getAgentMenu();this._assign.textContent="";for(const e of t)this._assign.appendChild(e);if(this._type.textContent="",this._selectedPortal=Ze(),this._selectedPortal){this._portal.textContent="",this._portal.textContent="",this._portal.appendChild(We(this._selectedPortal)),this._zones.value=Re().determineZone(this._selectedPortal.latLng);let e=window.plugin.wasabee.static.constants.DEFAULT_MARKER_TYPE;null!=localStorage[window.plugin.wasabee.static.constants.LAST_MARKER_KEY]&&(e=localStorage[window.plugin.wasabee.static.constants.LAST_MARKER_KEY]);const t=Array.from(X.markerTypes).map((e=>[e,Se(e)]));t.sort(((e,t)=>e[1].localeCompare(t[1])));for(const[e,a]of t){const t=L.DomUtil.create("option",null,this._type);t.value=e,t.textContent=a}this._type.value=e}else this._portal.textContent=Se("PLEASE_SELECT_PORTAL");this.setTitle(Se("ADD MARKER TITLE"))},_displayDialog:async function(){this._marker=null;const e=L.DomUtil.create("div","content");this._portal=L.DomUtil.create("div","portal",e),L.DomUtil.create("label",null,e).textContent=Se("TYPE"),this._type=L.DomUtil.create("select",null,e),L.DomUtil.create("label",null,e).textContent=Se("ZONE"),this._zones=L.DomUtil.create("select",null,e),L.DomUtil.create("label",null,e).textContent=Se("AGENT"),this._assign=L.DomUtil.create("select",null,e),L.DomUtil.create("label",null,e).textContent=Se("ADD_BULK");const t=L.DomUtil.create("div","bulk",e);this._bulk=L.DomUtil.create("input","checkbox-input",t),this._bulk.type="checkbox",this._comment=L.DomUtil.create("input",null,e),this._comment.placeholder=Se("SET_COMMENT"),await this.update();const a=L.DomUtil.create("button",null,e);a.textContent=Se("ADD"),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),X.markerTypes.has(this._type.value)&&this._addMarker(this._type.value,this._comment.value,this._zones.value,this._assign.value)}));const o={};o[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("ADD MARKER TITLE"),html:e,width:"auto",dialogClass:"markeradd",buttons:o,id:b.dialogNames.markerButton})},_addMarker:async function(e,t,a,o){const n=Re(),i={comment:t,assign:o,zone:a};n.addMarker(e,Ze(),i)?(localStorage[window.plugin.wasabee.static.constants.LAST_MARKER_KEY]=e,X.isDestructMarkerType(e)&&z.removeBlocker(n,Ze().id),await this.update()):De(Se("ALREADY_HAS_MARKER"))},_getAgentMenu:async function(){const e=[],t=L.DomUtil.create("option",null);if(t.value="",t.textContent=Se("UNASSIGNED"),e.push(t),!$.isLoggedIn())return e;const a=Re();if(!a.isOnCurrentServer())return e;const o=new Set,n=await pt(),i=await ht(a.teamlist.map((e=>e.teamid)).filter((e=>n.teamJoined(e))),300);for(const t of i)for(const a of t.agents)if(!o.has(a.id)){o.add(a.id);const t=L.DomUtil.create("option");t.value=a.id,t.textContent=a.getName(),e.push(t)}return e}}),Od=vd,Dd=Ht.extend({statics:{TYPE:"MarkerButton"},needWritePermission:!0,initialize:function(e){this.type=Dd.TYPE,this.title=Se("ADD MARKER TITLE"),this.button=this._createButton({container:e,className:"wasabee-toolbar-marker",callback:()=>{(new Od).enable()},context:this,title:this.title}),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("ADD MARKER TITLE")}))}}),Nd=Dd,Cd=Ht.extend({statics:{TYPE:"uploadButton"},needWritePermission:!0,initialize:function(e){this.type=Cd.TYPE;const t=Re();this.title=Se("UPLOAD BUTTON HOVER",{opName:t.name}),this._container=e,this.button=this._createButton({title:this.title,container:this._container,className:"wasabee-toolbar-upload",context:this,callback:async()=>{const e=await Re();e.isServerOp()?this.doUpdate(e):this.doUpload(e)}}),window.map.on("wasabee:ui:skin wasabee:ui:lang",this.update,this)},update:function(){if(!$.isLoggedIn())return this._invisible(),this.title="",void(this.button.title=this.title);const e=Re();return e.isServerOp()?e.canWriteServer()&&e.localchanged?e.server&&e.server!=kt()?(this._invisible(),this.title="",void(this.button.title=this.title)):(this._visible(),this.title=Se("UPDATE HOVER",{opName:e.name}),void(this.button.title=this.title)):(this._invisible(),this.title="",void(this.button.title=this.title)):(this._visible(),this.title=Se("UPLOAD BUTTON HOVER",{opName:e.name}),void(this.button.title=this.title))},_visible:function(){this.button.style.display="block"},_invisible:function(){this.button.style.display="none",this.button.classList.remove("loading")},doUpload:async function(e){this.button.classList.add("loading");try{const e=await async function(){const e=Re(),t=e.toExport(),a=await Mt("/api/v1/draw",t,"application/json;charset=UTF-8");new $(a).store();const o=await Nt(e.ID);return o.localchanged=!1,await o.store(),o}();await Pe(e.ID),ve(Se("UPLOADED")),this.button.classList.remove("loading"),this.update()}catch(t){if(t instanceof Ne&&406==t.code)return void De(`Upload Failed: ${t.toString()}`);console.warn(t.toString()+": trying as update"),e.creator=$.localGet().id,this.doUpdate(e)}},doUpdate:async function(e,t=!1){const a="false"!==localStorage[window.plugin.wasabee.static.constants.REBASE_UPDATE_KEY];try{t&&delete e.lasteditid,this.button.classList.add("loading");const o=await async function(e){const t=e.toExport();try{const a=await Rt({url:`/api/v1/draw/${e.ID}`,method:"PUT",body:t,headers:e.lasteditid?{"Content-Type":"application/json;charset=UTF-8","If-Match":e.lasteditid}:{"Content-Type":"application/json;charset=UTF-8"}});return e.lasteditid=a.updateID,e.remoteChanged=!1,e.localchanged=!1,e.fetched=(new Date).toUTCString(),e.fetchedOp=t,e.server=kt(),!0}catch(t){if(!(t instanceof Ne))return console.error(t),Promise.reject(new Ne({code:-1,text:`Unexpected error: ${t}`}));switch(t.code){case 412:return!1;case 410:await xe(e.ID);default:return Promise.reject(t)}}}(e);if(o)await e.store(),e!=Re()&&await Pe(e.ID),this.update();else if(a){const t=await Nt(e.ID);new Or({title:Se("UPDATE_CONFLICT_TITLE"),opOwn:Re(),opRemote:t,updateCallback:e=>this.doUpdate(e,!0),cancelText:Se("dialog.conflict.cancel_upload")}).enable()}else new si({title:Se("UPDATE_CONFLICT_TITLE"),label:Se("UPDATE_CONFLICT_DESC"),type:"operation",callback:()=>this.doUpdate(e,!0)}).enable()}catch(e){console.error(e),De(`Update Failed: ${e.toString()}`)}this.button.classList.remove("loading")}}),yd=Cd,Rd=window.plugin.wasabee;class Id extends Ht{constructor(e){super(e),this.needWritePermission=!0,this.title=Se("toolbar.quick_delete.title"),this.type=Id.TYPE,this.handler=new Md(this),this.button=this._createButton({title:this.title,container:e,className:"wasabee-toolbar-quickdelete",context:this,callback:this.toggleActions}),this.state="off",this.setSubActions(this.getSubActions()),this._container.appendChild(this.actionsContainer),window.map.on("wasabee:op:change",this.opChange,this),window.map.on("wasabee:ui:skin wasabee:ui:lang",(()=>{this.button.title=Se("toolbar.quick_delete.title"),this.setSubActions(this.getSubActions())})),this.update()}opChange(){"on"==this.state?this.disable():"instant"==this.state&&(this.handler.disable(),this.handler.enable())}toggleActions(){"off"==this.state?(this.state="instant",this.enable(),this.setSubActions(this.getSubActions()),dt({id:"analytics",action:"quickdelete:instant"}),this.button.classList.add("blink")):"instant"==this.state?(this.disable(),this.state="on",this.enable(),this.setSubActions(this.getSubActions()),dt({id:"analytics",action:"quickdelete"})):this.disable()}actionApply(){const e=Re();e.markers=e.markers.filter((e=>!this.handler.deletedMarker.has(e.ID))),e.links=e.links.filter((e=>!this.handler.deletedLink.has(e.ID))),e.cleanAnchorList(),e.cleanPortalList(),e.update(!0),e.updateBlockers(),this.disable()}actionClear(){const e=Re();e.clearAllItems(),e.updateBlockers(),this.disable()}actionCancel(){this.disable()}getSubActions(){return"instant"===this.state?[{text:Se("toolbar.quick_delete.stop.text"),title:Se("toolbar.quick_delete.stop.title"),callback:this.disable,context:this},{text:Se("toolbar.quick_delete.clear.text"),title:Se("toolbar.quick_delete.clear.title"),callback:this.actionClear,context:this}]:[{text:Se("toolbar.quick_delete.apply.text"),title:Se("toolbar.quick_delete.apply.title"),callback:this.actionApply,context:this},{text:Se("toolbar.quick_delete.cancel.text"),title:Se("toolbar.quick_delete.cancel.title"),callback:this.actionCancel,context:this}]}enable(){return super.enable(),this.button.classList.add("active"),this.handler.enable(),this}disable(){return super.disable(),this.button.classList.remove("active"),this.button.classList.remove("blink"),this.handler.disable(),this.state="off",this}}Id.TYPE="QuickdeleteButton";class Md extends L.Handler{constructor(e){super(window.map),this.deletedMarker=new Set,this.deletedLink=new Set,this.control=e}clickMarker(e){if(!this.enabled())return;const t=e.target;t.closePopup(),this.toggleMarker(t)}toggleMarker(e){if("instant"==this.control.state)return Re().removeMarkerByID(e.options.id);this.deletedMarker.has(e.options.id)?(this.deletedMarker.delete(e.options.id),e.setOpacity(1)):(this.deletedMarker.add(e.options.id),e.setOpacity(.5))}clickLink(e){if(!this.enabled())return;const t=e.target;t.closePopup(),this.toggleLink(t)}toggleLink(e){if("instant"==this.control.state)return Re().removeLinkByID(e.options.linkID);this.deletedLink.has(e.options.linkID)?(this.deletedLink.delete(e.options.linkID),e.setStyle({opacity:window.plugin.wasabee.skin.linkStyle.opacity||1})):(this.deletedLink.add(e.options.linkID),e.setStyle({opacity:.5*(window.plugin.wasabee.skin.linkStyle.opacity||1)}))}clickAnchor(e){if(!this.enabled())return;const t=e.target;t.closePopup(),this.toggleAnchor(t)}toggleAnchor(e){const t=Re();if("instant"==this.control.state)return t.removeAnchor(e.options.portalId);const a=t.getPortal(e.options.portalId),o=t.getLinkListFromPortal(a);o.every((e=>this.deletedLink.has(e.ID)))?Rd.linkLayerGroup.eachLayer((e=>{o.find((t=>t.ID==e.options.linkID))&&this.toggleLink(e)})):Rd.linkLayerGroup.eachLayer((e=>{this.deletedLink.has(e.options.linkID)||o.find((t=>t.ID==e.options.linkID))&&this.toggleLink(e)}))}keyUpListener(e){this.enabled()&&27===e.originalEvent.keyCode&&this.control.disable()}addHooks(){Rd.portalLayerGroup.eachLayer((e=>{e.on("spiderfiedclick",this.clickAnchor,this)})),Rd.markerLayerGroup.eachLayer((e=>{e.on("spiderfiedclick",this.clickMarker,this)})),Rd.linkLayerGroup.eachLayer((e=>{e.on("click",this.clickLink,this)})),window.map.on("keyup",this.keyUpListener,this),this.tooltip=new Ut(window.map),this.tooltip.updateContent("instant"===this.control.state?Se("toolbar.quick_delete.tooltip.quick_mode"):Se("toolbar.quick_delete.tooltip.toggle_mode"))}removeHooks(){Rd.portalLayerGroup.eachLayer((e=>{e.off("spiderfiedclick",this.clickAnchor,this)})),Rd.markerLayerGroup.eachLayer((e=>{e.off("spiderfiedclick",this.clickMarker,this),e.setOpacity(1)})),Rd.linkLayerGroup.eachLayer((e=>{e.off("click",this.clickLink,this),e.setStyle({opacity:window.plugin.wasabee.skin.linkStyle.opacity||1})})),window.map.off("keyup",this.keyUpListener,this),this.tooltip.dispose()}}const Pd=Id,xd=Kt.extend({statics:{TYPE:"about"},addHooks:function(){Kt.prototype.addHooks.call(this),this._displayDialog()},_displayDialog:function(){const e=L.DomUtil.create("div",null);L.DomUtil.create("div",null,e).innerHTML=Se("SUPPORT_INSTRUCT"),this._smallScreen&&(L.DomUtil.create("div",null,e).innerHTML=Se("dialog.about.download_mobile_app")),L.DomUtil.create("div",null,e).innerHTML="

Show your love

Patreon",L.DomUtil.create("div",null,e).innerHTML="

About Wasabee-IITC

Current version: "+window.plugin.wasabee.info.version,L.DomUtil.create("div",null,e).innerHTML=Se("HOW_TO_VIDS");const t={};t[Se("CLOSE")]=()=>{this.closeDialog()},this.createDialog({title:Se("ABOUT_WASABEE"),html:e,width:"auto",dialogClass:"about",buttons:t})}}),Ud=Kt.extend({statics:{TYPE:"OnlineAgentList"},addHooks:function(){Kt.prototype.addHooks.call(this),window.map.on("wasabee:agentlocations",this.update,this),window.map.on("wasabee:logout",this.closeDialog,this),this._displayDialog()},removeHooks:function(){Kt.prototype.removeHooks.call(this),window.map.off("wasabee:agentlocations",this.update,this),window.map.off("wasabee:logout",this.closeDialog,this)},_displayDialog:function(){const e={};e[Se("CLOSE")]=()=>{this.closeDialog()},this.update(),this.createDialog({title:Se("dialog.online_agents.title"),html:this._table.table,width:"auto",dialogClass:"teamlist",buttons:e})},update:async function(){this._table=new pi,this._table.fields=[{name:Se("AGENT"),value:e=>e.getName(),sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>e.appendChild(ii(a))},{name:Se("dialog.online_agents.last_seen"),value:e=>e.date,sort:(e,t)=>e.localeCompare(t),format:(e,t,a)=>{a&&(e.textContent=ri(a))}},{name:Se("dialog.online_agents.actions"),value:e=>e.id,format:(e,t,a)=>{if(t){const t=L.DomUtil.create("a",null,e);t.textContent="🛰",t.href="#",L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),window.map.setView(a.latLng,7)}));const o=L.DomUtil.create("a",null,e);o.textContent="🚁",o.href="#",L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),window.map.setView(a.latLng,13)}))}}}],this._table.sortBy=0;const e=new Array,t=window.plugin.wasabee.idb.transaction(["agents"],"readonly"),a=IDBKeyRange.lowerBound(this._last_hour());let o=await t.store.index("date").openCursor(a);for(;o;)e.push(new H(o.value)),o=await o.continue();this._table.items=e},_last_hour:function(){const e=new Date(Date.now()-36e5),t=e.getUTCDate(),a=e.getUTCMonth()+1,o=e.getUTCFullYear(),n=e.getUTCHours(),i=e.getUTCMinutes(),r=e.getUTCSeconds();return o+"-"+(a<=9?"0"+a:a)+"-"+(t<=9?"0"+t:t)+" "+(n<=9?"0"+n:n)+":"+(i<=9?"0"+i:i)+":"+(r<=9?"0"+r:r)}}),Bd=Ud;async function Kd(e){if("permission-blocked"===e.data)return void Oe(Se("dialog.firebase.setup",{url:`${w.FIREBASE_IFRAME}`}),!0);const t=e.data.data;switch(t.cmd){case"Agent Location Change":console.debug("firebase update of whole team location: ",t),window.map.fire("wasabee:agentlocations");break;case"Delete":console.warn("server requested op delete: ",t.opID),await xe(t.opID),await Ie();break;case"Generic Message":{const e=await ut(t.sender),a=e?e.name:"[unknown sender]";ve(Se("dialog.team_message",{message:t.msg,sender:a}))}break;case"Login":console.debug("server reported teammate login: ",t.gid),window.map.fire("wasabee:agentlocations");break;case"Link Assignment Change":case"Link Status Change":case"Marker Assignment Change":case"Task Status Change":case"Task Assignment Change":case"Marker Status Change":case"Map Change":!async function(e){let t=e.updateID;if("Map Change"!==e.cmd&&(t+=e.cmd),window.plugin.wasabee._updateList.has(t))return void console.debug("skipping firebase requested update of op since it was our change",e.cmd,e.updateID);if(window.plugin.wasabee._updateList.set(t,Date.now()),!_e.load(e.opID))return void console.warn("Got operation change for an unknown op",e.opID);const a=Re(),o=a.ID===e.opID;switch(e.cmd){case"Link Assignment Change":o&&async function(e,t){const a=new q(await Ct(t.opID,t.linkID));e.assignLink(a.ID,a.assignedTo)}(a,e),console.log(e);break;case"Link Status Change":o&&async function(e,t){const a=new q(await Ct(t.opID,t.linkID));e.setLinkState(a.ID,a.state)}(a,e),console.log(e);break;case"Marker Assignment Change":o&&async function(e,t){const a=new X(await yt(t.opID,t.markerID));e.assignMarker(a.ID,a.assignedTo)}(a,e),console.log(e);break;case"Marker Status Change":o&&async function(e,t){const a=new X(await yt(t.opID,t.markerID));e.setMarkerState(a.ID,a.state)}(a,e),console.log(e);break;case"Map Change":try{const t=await _e.load(e.opID),a=await Nt(e.opID);await Cr(t,a)?(console.log("firebase trigger reload of current op: ",e),await Pe(a.ID)):console.debug("firebase trigger update of op",e.opID)}catch(e){console.error(e)}break;default:console.log(e)}}(t);break;case"Target":try{const e=JSON.parse(t.msg),a={id:e.ID,name:e.Name,lat:e.Lat,lng:e.Lon};ve(We(new ee(a)).outerHTML+"
Sent by: "+e.Sender,!0)}catch(e){console.error(e)}break;default:console.warn("unknown firebase command: ",t)}}function Gd(e,t){const a=e.split(".",3),o=t.split(".",3);return+a[0]<+o[0]||+a[0]==+o[0]&&+a[1]<+o[1]}const Hd=window.plugin.wasabee;Hd.static=b,window.plugin.wasabee.init=async()=>{if(Promise.allSettled||(Promise.allSettled=function(e){let t=e.map((e=>e.then((e=>({status:"fulfilled",value:e}))).catch((e=>({status:"rejected",reason:e})))));return Promise.all(t)}),Hd._inited)return;if(Hd._inited=!0,Object.freeze(Hd.static),null==window.iitcBuildDate||window.iitcBuildDate<"2020-01-18-170317")return void De("Wasabee won't work on this version of IITC; please update to 0.30.1 or newer from https://iitc.app. On desktop, do not use the IITC button, use the TamperMonkey/GreaseMonkey method.");try{Hd.idb=await G}catch(e){return De("Wasabee: unable to access the storage: "+e.toString()),void(plugin_info.error=e)}Hd._selectedOp=null,Hd._updateList=new Map,Hd.portalDetailQueue=[],hi(),function(){if(L.Browser.android)return;if(void 0!==window.google&&google.accounts&&google.accounts.oauth2)return void bt();const e=document.createElement("script");e.type="text/javascript",e.async=!0,e.defer=!0,e.src="https://accounts.google.com/gsi/client",e.onload=bt,(document.body||document.head||document.documentElement).appendChild(e)}(),await async function(){let e=await Be();null!=e&&0!=e.length||(await async function(){const e=await Me();await async function(){const e=await Be();await Promise.all(e.map(_e.delete)),e.map(z.removeBlockers)}(),e.update()}(),e=await Be());const t=[];for(const a of e)t.push(_e.migrate(a));await Promise.allSettled(t);let a=ye();null!=a&&null!=a||(a=e[0],Ce(a))}(),await async function(){if(null==window.plugin.wasabee._selectedOp){const e=ye();null==e?await Me():null==await _e.load(e)?(console.log("most recently loaded up not present in local store, starting with new default op"),await Me()):await Pe(e)}return Re()}(),kt();const e=[],t=localStorage[Hd.static.constants.SKIN_KEY];try{const a=JSON.parse(t);for(const t of a)e.push(t)}catch{e.push(t)}function a(e){window.map.fire("wasabee:portal:click",{portal:He(e.target)})}e.length>0&&(window.iitcLoaded?fi(e):window.addHook("iitcLoaded",(()=>{fi(e)}))),Hd.portalLayerGroup=new L.LayerGroup,Hd.linkLayerGroup=new L.LayerGroup,Hd.markerLayerGroup=new L.LayerGroup,Hd.agentLayerGroup=new L.LayerGroup,Hd.zoneLayerGroup=new L.FeatureGroup,window.addLayerGroup("Wasabee Draw Portals",Hd.portalLayerGroup,!0),window.addLayerGroup("Wasabee Draw Links",Hd.linkLayerGroup,!0),window.addLayerGroup("Wasabee Draw Markers",Hd.markerLayerGroup,!0),window.addLayerGroup("Wasabee Agents",Hd.agentLayerGroup,!0),window.addLayerGroup("Wasabee Zones",Hd.zoneLayerGroup,!0),Hd.zoneLayerGroup.bringToBack(),Hd.backgroundOpsGroup=new L.LayerGroup,window.addLayerGroup("Wasabee Background Ops",Hd.backgroundOpsGroup,!0),window.addHook("mapDataRefreshStart",(()=>{window.map.fire("wasabee:agentlocations")})),window.addHook("portalDetailsUpdated",(e=>{je({success:!0,guid:e.guid,details:e.portalDetails})})),window.addHook("portalAdded",(e=>e.portal.on("click",a))),window.addHook("mapDataEntityInject",Xi),window.map.on("wasabee:op:select",Xi),window.addHook("mapDataEntityInject",$i),window.map.on("wasabee:ui:skin",Yi),window.map.on("wasabee:filter",Yi),window.map.on("wasabee:op:change",Yi),window.map.on("wasabee:op:select",Yi),window.map.on("wasabee:agentlocations",Vi),window.map.on("wasabee:logout",Vi),window.map.on("wasabee:logout",Ge),window.map.on("wasabee:logout",Et),window.addResumeFunction((()=>{$.isLoggedIn()&&(window.map.fire("wasabee:agentlocations"),Gr())})),window.map.on("wasabee:op:select",(()=>{Zi()})),window.map.on("wasabee:op:background",(e=>{e.background?Hd._selectedOp&&Hd._selectedOp.ID!==e.opID&&_e.load(e.opID).then(qi):Zi()}));const o="true"===localStorage[Hd.static.constants.USE_PANES];window.isSmartphone()&&o&&new Bt({paneId:"wasabee",paneName:"Wasabee",default:()=>new Ii}),window.plugin.userLocation&&window.addHook("pluginUserLocation",Fd),window.map.on("layeradd",(e=>{e.layer!==Hd.portalLayerGroup&&e.layer!==Hd.linkLayerGroup&&e.layer!==Hd.markerLayerGroup&&e.layer!==Hd.zoneLayerGroup||Yi(),e.layer===Hd.backgroundOpsGroup&&Zi()})),window.map.on("layerremove",(e=>{e.layer!==Hd.portalLayerGroup&&e.layer!==Hd.linkLayerGroup&&e.layer!==Hd.markerLayerGroup&&e.layer!==Hd.zoneLayerGroup||e.layer.clearLayers()})),function(e){const t=L.DomUtil.create("iframe");t.width="0",t.height="0",t.src=w.FIREBASE_IFRAME,t.id="wasabeeFirebaseFrame",t.addEventListener("load",(()=>{ct.onmessage=t=>{"ready"===t.data&&(ct.onmessage=e,$.isLoggedIn()&&dt({id:"wasabeeLogin",method:"auto"}))},t.contentWindow.postMessage("init","*",[lt.port2])})),document.body.append(t)}(Kd),window.map.on("wasabee:crosslinks",nt),window.plugin.wasabee.crossLinkLayers=new L.FeatureGroup,window.plugin.wasabee._crosslinkCache=new Map,window.addLayerGroup("Wasabee Cross Links",window.plugin.wasabee.crossLinkLayers,!0),window.map.on("layeradd",(e=>{e.layer===window.plugin.wasabee.crossLinkLayers&&(window.plugin.wasabee._crosslinkCache=new Map,nt())})),window.map.on("layerremove",(e=>{e.layer===window.plugin.wasabee.crossLinkLayers&&(window.plugin.wasabee.crossLinkLayers.clearLayers(),delete window.plugin.wasabee._crosslinkCache)})),window.addHook("mapDataRefreshStart",rt),window.addHook("mapDataRefreshEnd",st),window.plugin.wasabee.defensiveLayers=Jl=new L.LayerGroup,window.addLayerGroup("Wasabee-D Keys",Jl,!1),window.map.on("wasabee:defensivekeys",$l),window.map.on("layeradd",(e=>{e.layer===Jl&&window.map.fire("wasabee:defensivekeys")})),window.map.on("layerremove",(e=>{e.layer===Jl&&Jl.clearLayers()})),"true"!==localStorage[Hd.static.constants.SEND_LOCATION_KEY]&&(localStorage[Hd.static.constants.SEND_LOCATION_KEY]="false"),Ic(),window.map.on("wasabee:op:change",Mc),window.map.on("wasabee:op:select",Ic),function(){if(window.plugin.wasabee.buttons)return;const e={container:L.DomUtil.create("ul","leaflet-bar"),position:"topleft",buttons:new Map};for(const t of[ic,zc,rr,Pd,Sd,Nd,sc,yd]){const a=new t(L.DomUtil.create("li",null,e.container));e.buttons.set(a.type,a)}window.plugin.wasabee.buttons=new Gt(e),window.map.addControl(window.plugin.wasabee.buttons),window.plugin.wasabee.buttons.update()}(),function(){const e=document.getElementById("toolbox"),t=L.DomUtil.create("a","wasabee",e);t.href="#",t.textContent=Se("ABOUT_WASABEE"),L.DomEvent.on(t,"click",(e=>{L.DomEvent.stop(e),(new xd).enable()}));const a=L.DomUtil.create("a","wasabee",e);a.href="#",a.textContent=Se("SETTINGS_TOOLBOX"),L.DomEvent.on(a,"click",(e=>{L.DomEvent.stop(e),(new Ql).enable()}));const o=L.DomUtil.create("a","wasabee",e);o.textContent=Se("SEND_LOC"),L.DomEvent.on(o,"click",(e=>{L.DomEvent.stop(e),navigator.geolocation.getCurrentPosition((async e=>{try{await vt(e.coords.latitude,e.coords.longitude),ve(Se("LOC_PROC"))}catch(e){console.error(e)}}),(e=>{console.error(e)}))}));const n=L.DomUtil.create("a","wasabee",e);n.textContent=Se("toolbox.teammates"),L.DomEvent.on(n,"click",(e=>{L.DomEvent.stop(e),(new Bd).enable()}))}(),window.map.fire("wasabee:agentlocations"),Yi(),Zi(),window.map.fire("wasabee:crosslinks"),$.isLoggedIn()?(pt(!0),window.map.fire("wasabee:defensivekeys")):async function(){const e=localStorage["wasabee-auth-state"];if(!e)return;const t=location.hash.substring(1),a={},o=/([^&=]+)=([^&]*)/g;let n;for(;n=o.exec(t);)a[decodeURIComponent(n[1])]=decodeURIComponent(n[2]);if(a.state===e&&a.access_token){delete localStorage["wasabee-auth-state"],location.hash="";const e=a.access_token,t=await wt(e);return dt({id:"wasabeeLogin",method:"oauth2"}),t}}().then((e=>{e&&(e.store(),window.map.fire("wasabee:login"),yr().then((e=>{e&&ve(Se("SYNC DONE"))})),e.querytoken&&Ot(window.PLAYER.nickname,window.PLAYER.team,e.querytoken))})).catch((e=>{e instanceof Ne?De(Se("AUTH TOKEN REJECTED",{error:e.toString()})):(De(e),dt({id:"exception",error:e}))})),window.map.on("wdialog",(e=>{dt({id:"analytics",action:e.dialogType})})),async function(){const e=await(await fetch("https://cdn2.wasabee.rocks/iitcplugin/prod/wasabee.meta.js")).text();for(const t of e.split("\n"))if(t.startsWith("// @version")){const e=t.slice(11).trim();return Gd(window.plugin.wasabee.info.version,e)}return!1}().then((e=>{e&&Oe(Se("dialog.update_warning"))}))};let zd=0;function Fd(e){const{event:t,data:a}=e;"onLocationChange"===t&&a.latlng&&"true"===localStorage[Hd.static.constants.SEND_LOCATION_KEY]&&(Date.now()-zd<5e3||$.isLoggedIn()&&(vt(a.latlng.lat,a.latlng.lng),zd=Date.now()))}})()})(); window.plugin.wasabee.init(); };