var v={},P={};function R(a){var t,r,i=P[a];if(i)return i;for(i=P[a]=[],t=0;t<128;t++)r=String.fromCharCode(t),/^[0-9a-z]$/i.test(r)?i.push(r):i.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t=55296&&s<=57343){if(s>=55296&&s<=56319&&i+1=56320&&o<=57343)){h+=encodeURIComponent(a[i]+a[i+1]),i++;continue}h+="%EF%BF%BD";continue}h+=encodeURIComponent(a[i])}return h}F.defaultChars=";/?:@&=+$,-_.!~*'()#";F.componentChars="-_.!~*'()";var Z=F,_={};function j(a){var t,r,i=_[a];if(i)return i;for(i=_[a]=[],t=0;t<128;t++)r=String.fromCharCode(t),i.push(r);for(t=0;t=55296&&n<=57343?u+="\uFFFD\uFFFD\uFFFD":u+=String.fromCharCode(n),f+=6;continue}if((o&248)===240&&f+91114111?u+="\uFFFD\uFFFD\uFFFD\uFFFD":(n-=65536,u+=String.fromCharCode(55296+(n>>10),56320+(n&1023))),f+=9;continue}u+="\uFFFD"}return u})}d.defaultChars=";/?:@&=+$,#";d.componentChars="";var M=d,G=function(t){var r="";return r+=t.protocol||"",r+=t.slashes?"//":"",r+=t.auth?t.auth+"@":"",t.hostname&&t.hostname.indexOf(":")!==-1?r+="["+t.hostname+"]":r+=t.hostname||"",r+=t.port?":"+t.port:"",r+=t.pathname||"",r+=t.search||"",r+=t.hash||"",r};function p(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var J=/^([a-z0-9.+-]+:)/i,K=/:[0-9]*$/,N=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Q=["<",">",'"',"`"," ","\r",` `," "],T=["{","}","|","\\","^","`"].concat(Q),V=["'"].concat(T),y=["%","/","?",";","#"].concat(V),U=["/","?","#"],W=255,z=/^[+a-z0-9A-Z_-]{0,63}$/,X=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,S={javascript:!0,"javascript:":!0},B={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Y(a,t){if(a&&a instanceof p)return a;var r=new p;return r.parse(a,t),r}p.prototype.parse=function(a,t){var r,i,f,s,o,e=a;if(e=e.trim(),!t&&a.split("#").length===1){var h=N.exec(e);if(h)return this.pathname=h[1],h[2]&&(this.search=h[2]),this}var c=J.exec(e);if(c&&(c=c[0],f=c.toLowerCase(),this.protocol=c,e=e.substr(c.length)),(t||c||e.match(/^\/\/[^@\/]+@[^@\/]+/))&&(o=e.substr(0,2)==="//",o&&!(c&&S[c])&&(e=e.substr(2),this.slashes=!0)),!S[c]&&(o||c&&!B[c])){var n=-1;for(r=0;r127?g+="x":g+=l[C];if(!g.match(z)){var O=m.slice(0,r),b=m.slice(r+1),D=l.match(X);D&&(O.push(D[1]),b.unshift(D[2])),b.length&&(e=b.join(".")+e),this.hostname=O.join(".");break}}}}this.hostname.length>W&&(this.hostname=""),A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var I=e.indexOf("#");I!==-1&&(this.hash=e.substr(I),e=e.slice(0,I));var $=e.indexOf("?");return $!==-1&&(this.search=e.substr($),e=e.slice(0,$)),e&&(this.pathname=e),B[f]&&this.hostname&&!this.pathname&&(this.pathname=""),this};p.prototype.parseHost=function(a){var t=K.exec(a);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),a=a.substr(0,a.length-t.length)),a&&(this.hostname=a)};var H=Y;v.encode=Z;v.decode=M;v.format=G;v.parse=H;export{v as m};